AWS dağıtımlarınız Terraform tanımlarınızla eşleşiyor mu? Öğrenmek için SQL kullanın.


“SQL, API’lere erişimi nasıl birleştirebilir” bölümünde, birçok farklı API’den akan veriler hakkında akıl yürütmek için ortak bir ortam olarak SQL’i savundum. Bu senaryonun temel etkinleştiricisi, Buhar borusubüyüyen bir pakete sahip Postgres tabanlı bir araç API eklentileri API’leri Postgres’teki yabancı tablolarla eşleyen.

Bu API’ler başlangıçta AWS, Azure ve GCP tarafından sağlananlardı. Bu tür API’ler, geliştiriciler için genellikle aşağıdaki gibi paketleyiciler aracılığıyla daha erişilebilir hale getirilir: boto3. Ortak bir SQL arayüzü tartışmasız daha iyi bir birleştirici Bu bulutlardaki genişleyen API ekosistemlerinin sayısı ve bu, çoklu bulut senaryolarında tartışmasız bir şekilde doğrudur. Bu arada Postgres kaputun altındayken, SQL ile sınırlı değilsiniz: Python veya JavaScript veya başka bir dili Postgres’e bağlayabilir ve bu dillerdeki ortak SQL arayüzünden de yararlanabilirsiniz.

Steampipe ekosistemi daha sonra genişledi eklentiler GitHub, Google Workspace, IMAP, Jira, LDAP, Shodan, Slack, Stripe ve Zendesk dahil olmak üzere diğer birçok hizmet için. Bu API’ler arasında birleştirmek, Amazon EC2 uç noktalarını Shodan güvenlik açıklarıyla yalnızca 10 satırlık çok temel SQL’de birleştiren bu örnekle kanıtlanmış bir süper güçtür.

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"] |
+---------------------+----------+--------------------+

Dosyalar da API’dir

Ama gerçekten bir API nedir? Hizmet uç noktalarına her zaman HTTP isteklerini gerektirmeli mi? Daha geniş anlamda API’ler, başka şekillerde de gelen veri kaynaklarıdır. Web sayfaları genellikle hala fiili API’lerdir. Yıllar boyunca düşündüğümden daha fazla web kazıma yaptım ve beceri faydalı olmaya devam ediyor.

Dosyalar aynı zamanda veri kaynaklarıdır: yapılandırma dosyaları (INI, YAML, JSON), kod olarak altyapı dosyaları (Terraform, BulutFormasyonu), veri dosyaları (CSV). Bu kaynaklar için eklentiler karışıma katılmaya başladığında Steampipe daha da güçlü hale geldi.

İlk olarak, her türlü faydalı sorgunun kilidini açan CSV eklentisi geldi. Örneğin, elektronik tabloların genellikle veritabanları olduğunu varsaydığımızı düşünün. Bunu yaparken, gerçekten olmadığında referans bütünlüğü olduğunu varsayabiliriz. E-tablo verilerini CSV’ye aktarırsanız, SQL’i şu şekilde kullanabilirsiniz: bu kusurlu varsayımları bul. Ve bu, veri alışverişi için dünyanın önde gelen dosya formatını sorgulamak için SQL kullanmayı hayal edebileceğim sonsuz yollardan sadece biri.

Telif Hakkı © 2022 IDG Communications, Inc.


Kaynak : https://www.infoworld.com/article/3659794/do-your-aws-deployments-match-your-terraform-definitions-use-sql-to-find-out.html#tk.rss_all

Yorum yapın