Steampipeとはどんなクエリツールか
Steampipeは、クラウドAPIやSaaSサービスを標準SQLで直接クエリできるゼロETLツールだ。内蔵のPostgreSQLインスタンスがSQLクエリをライブAPIコールに変換し、データウェアハウスやETLパイプラインを構築せずにリアルタイムでインフラ情報を取得できる。
AWS、Azure、GCP、GitHub、Kubernetesなど150以上のサービスに対応し、2,000以上のテーブルが用意されている。
主な機能とAWSセキュリティ監査での活用
- 標準SQLでクラウドをクエリ:
SELECT * FROM aws_ec2_instanceのようなSQLでリソース情報を取得 - ゼロETL:データの事前取り込み不要。クエリ実行時にAPIを直接呼び出す
- 150以上のプラグイン:AWS、Azure、GCP、GitHub、Slack、Kubernetes など主要サービスをカバー
- 2,000以上のテーブル:各サービスのリソースが構造化されたテーブルとして定義済み
- インタラクティブコンソール:対話型のSQLシェルで即座にクエリを実行
- Powerpipe連携:ダッシュボードやコンプライアンスベンチマークの可視化が可能
インストールとAWSリソースの検索方法
# macOS
brew install turbot/tap/steampipe
# Linux / WSL
sudo /bin/sh -c "$(curl -fsSL https://steampipe.io/install/steampipe.sh)"
AWSプラグインのインストール:
steampipe plugin install aws
クエリの実行:
steampipe query
-- 全リージョンのEC2インスタンス一覧
SELECT region, instance_id, instance_type, instance_state
FROM aws_ec2_instance;
-- パブリックアクセス可能なS3バケット
SELECT name, region, bucket_policy_is_public
FROM aws_s3_bucket
WHERE bucket_policy_is_public = true;
-- 90日以上ローテーションされていないIAMキー
SELECT user_name, access_key_id, create_date
FROM aws_iam_access_key
WHERE create_date < now() - interval '90 days';
セキュリティ監査の実践例
CIS AWS Benchmarkに基づくコンプライアンスチェックを実行できる:
# Powerpipeでベンチマーク実行
powerpipe benchmark run aws_compliance.benchmark.cis_v300
特定のセキュリティ問題を調査するクエリ例:
-- 暗号化されていないEBSボリューム
SELECT volume_id, size, encrypted
FROM aws_ebs_volume
WHERE encrypted = false;
-- デフォルトVPCが残っているリージョン
SELECT region, vpc_id, is_default
FROM aws_vpc
WHERE is_default = true;
競合ツールとの比較
| ツール | クエリ言語 | データ取得 | 対応サービス | 用途 |
|---|---|---|---|---|
| Steampipe | SQL(Postgres) | リアルタイム | 150以上 | 監査・調査 |
| CloudQuery | SQL | 同期ベース | 多数 | 資産管理 |
| AWS Config | AWS独自 | 準リアルタイム | AWS | コンプライアンス |
| Cartography | Cypher(Neo4j) | 定期同期 | 主要クラウド | セキュリティグラフ |
差別化ポイント:SteampipeはゼロETLかつリアルタイムでクエリできる点が最大の強み。CloudQueryはETLで一度データを同期する必要があり、AWS Configは対象がAWSに限定される。SQLという広く知られた言語で即座にクラウドを検索できる手軽さは、他のツールにはない利点だ。
AWSインフラ管理ワークフローとの連携
Pulumiでインフラを構築し、Infracostでコストを見積もり、Steampipeで監査するという流れが効果的だ。Apache AirflowのDAGからSteampipeクエリを定期実行すれば、セキュリティ監査の自動化も実現できる。
まとめ:Steampipeが向いているケース
Steampipeは「クラウドリソースの現状をSQLで素早く把握したい」エンジニアに最適だ。AWS CLIやboto3スクリプトを書く代わりに、SQLの知識だけでセキュリティ監査やリソース棚卸しを実行できる。