Do your AWS deployments match your Terraform definitions? Use SQL to find out.

আপনার AWS স্থাপনা আপনার Terraform এর সাথে মেলে কিনা

“কিভাবে এসকিউএল এপিআই-এ অ্যাক্সেসকে একত্রিত করতে পারে”-তে আমি এসকিউএল-এর ক্ষেত্রে একটি সাধারণ পরিবেশ হিসাবে তৈরি করেছি যেখানে অনেকগুলি ভিন্ন API থেকে ডেটা প্রবাহিত হওয়ার বিষয়ে যুক্তি দিতে হবে। সেই দৃশ্যের মূল সক্ষমকারী হল Steampipe, একটি Postgres-ভিত্তিক টুল যেখানে API প্লাগইনগুলির একটি ক্রমবর্ধমান স্যুট রয়েছে যা Postgres-এ বিদেশী টেবিলে API-কে ম্যাপ করে।

এই APIগুলি ছিল, প্রাথমিকভাবে, AWS, Azure, এবং GCP দ্বারা প্রদত্ত। এই ধরনের API গুলিকে সাধারণত boto3 এর মত মোড়কের মাধ্যমে ডেভেলপারদের কাছে আরও অ্যাক্সেসযোগ্য করে তোলা হয়। একটি সাধারণ এসকিউএল ইন্টারফেস যুক্তিযুক্তভাবে এই মেঘগুলির মধ্যে বিস্তৃত API ইকোসিস্টেমগুলির একটি ভাল একীফায়ার, এবং এটি মাল্টিক্লাউড পরিস্থিতিতে অবিশ্বাস্যভাবে সত্য। পোস্টগ্রেসের অধীনে, যাইহোক, আপনি এসকিউএল-এ সীমাবদ্ধ নন: আপনি পাইথন বা জাভাস্ক্রিপ্ট বা অন্য কোনও ভাষা পোস্টগ্রেসে হুক করতে পারেন এবং সেই ভাষাগুলি থেকেও সাধারণ এসকিউএল ইন্টারফেসটি ব্যবহার করতে পারেন।

Steampipe ইকোসিস্টেম তারপর GitHub, Google Workspace, IMAP, Jira, LDAP, Shodan, Slack, Stripe, এবং Zendesk সহ আরও অনেক পরিষেবার জন্য প্লাগইনগুলির সাথে প্রসারিত হয়। এই API গুলি জুড়ে যোগদান করা এই উদাহরণের দ্বারা সর্বোত্তমভাবে প্রমাণিত একটি সুপারপাওয়ার যা খুব মৌলিক SQL এর মাত্র 10 লাইনে Shodan দুর্বলতার সাথে Amazon EC2 এন্ডপয়েন্টে যোগ দেয়।

select
  a.instance_id,
  s.ports
  s.vulns
from
  aws_ec2_instance a
left join
  shodan_host s on a.public_ip_address = s.ip
where
  a.public_ip_address is not null;

+---------------------+----------+--------------------+
| instance_id         | ports    | vulns              |
+---------------------+----------+--------------------+
| i-0dc60dd191cb84239 | null     | null               |
| i-042a51a815773780d | [80,22]  | null               |
| i-00cf426db9b8a58b6 | [22]     | null               |
| i-0e97f373db42dfa3f | [22,111] | ["CVE-2018-15919"] |
+---------------------+----------+--------------------+

ফাইলগুলিও এপিআই

কিন্তু একটি API কি, সত্যিই? এটি কি সর্বদা পরিষেবার শেষ পয়েন্টগুলিতে HTTP অনুরোধগুলি অন্তর্ভুক্ত করতে হবে? আরও বিস্তৃতভাবে API হল ডেটা উৎস যা অন্যান্য স্বাদেও আসে। ওয়েব পৃষ্ঠাগুলি প্রায়ই, এখনও, ডি ফ্যাক্টো API। আমি বছরের পর বছর ধরে চিন্তা করার চেয়ে আরও বেশি ওয়েব স্ক্র্যাপিং করেছি এবং দক্ষতাটি কার্যকর রয়েছে।

ফাইলগুলিও ডেটা উত্স: কনফিগারেশন ফাইল (INI, YAML, JSON), অবকাঠামো-এ-কোড ফাইলগুলি (Terraform, CloudFormation), ডেটা ফাইল (CSV)৷ যখন এই উত্সগুলির জন্য প্লাগইনগুলি মিশ্রণে যোগ দিতে শুরু করে, তখন স্টিম্পাইপ আরও শক্তিশালী হয়ে ওঠে।

প্রথমে এসেছিল CSV প্লাগইন, যা সব ধরনের দরকারী প্রশ্ন আনলক করে। বিবেচনা করুন, উদাহরণস্বরূপ, আমরা প্রায়শই স্প্রেডশীটগুলিকে ডাটাবেস হিসাবে ভান করি। এটি করার মাধ্যমে আমরা অনুমান করতে পারি যে রেফারেন্সিয়াল অখণ্ডতা আছে যখন সত্যিই নেই। আপনি যদি CSV-তে স্প্রেডশীট ডেটা রপ্তানি করেন, আপনি সেই ত্রুটিপূর্ণ অনুমানগুলি খুঁজে পেতে SQL ব্যবহার করতে পারেন। এবং ডাটা এক্সচেঞ্জের জন্য বিশ্বের শীর্ষস্থানীয় ফাইল বিন্যাস অনুসন্ধান করার জন্য আমি এসকিউএল ব্যবহার করে কল্পনা করতে পারি এমন অন্তহীন উপায়গুলির মধ্যে একটি মাত্র।

কপিরাইট © 2022 IDG Communications, Inc.