Cloud Custodian
クラウドリソースを照会し、フィルタで絞り込み、タグ付け・停止・削除などのアクションを実行する YAML ポリシーエンジン。ガバナンスルールを場当たり的なスクリプトではなくコードとして管理する。
- カテゴリ: Security & Compliance
- CNCF 成熟度: Incubating
- 言語: Python
- ライセンス: Apache-2.0
- リポジトリ: cloud-custodian/cloud-custodian
- ドキュメント基準コミット:
3d8a562(0.9.51 系, 2026-06-22)
何をするものか
Cloud Custodian (パッケージと CLI の名前は c7n) はクラウドガバナンスのためのルールエンジンである。ポリシーは YAML で書く。各ポリシーは対象の resource 型、集合を絞り込む filters のリスト、残ったものに実行する actions のリストを持つ。CLI コマンド custodian run がポリシーをクラウドアカウントに対して評価し、マッチした内容のレポートを書き出す。
ポリシーの実行方法は大きく 2 つある。既定の pull モードはオンデマンドでプロバイダ API を照会し、フィルタを適用して結果にアクションする。サーバレスモードはポリシーを AWS Lambda 関数としてデプロイし、CloudTrail イベント・スケジュール・AWS Config をトリガに動かす。実行時だけでなく継続的にルールが自分自身を施行する。同じ DSL が検出と是正を 1 ファイルにまとめる。
出発点は AWS であり、現在も AWS 中心で c7n/resources/ 配下に約 120 のリソースファイルを持つ。tools/ 配下の別パッケージが Azure・GCP・Oracle Cloud・Tencent Cloud・Kubernetes admission・IaC スキャンを追加し、通知 (c7n_mailer)・マルチアカウント実行 (c7n_org) のヘルパも揃う。
いつ使うか
- AWS・Azure・GCP を横断してクラウドリソースの検出と是正を 1 つの宣言的言語で行いたい場合 (クラウドごとのスクリプトを避けたい)。
- 継続的な施行が必要な場合: 未タグのインスタンス停止、公開スナップショットの削除、スケジュールやイベントによる時間外シャットダウンなど。
- 検出と是正を同じツールで行いたい場合 (検出だけのスキャナではなく)。
- ガバナンスの境界が Kubernetes admission control の場合は不向き。Kyverno や OPA Gatekeeper のほうが API サーバに近い。
- 姿勢評価とレポートだけが必要な場合も不向き。読み取り専用スキャナのほうが簡潔。
このディープダイブの構成
- 歴史: Capital One での起源、CNCF Sandbox、Incubating 昇格。
- アーキテクチャ: レジストリ駆動の DSL と
pull実行の流れ。 - 採用事例・エコシステム: 出典付きの採用組織、GitHub シグナル、周辺ツール。
- 内部実装: ソースから読んだ Policy・レジストリ・クエリの型。
- はじめに:
c7nのインストールと EC2 への最初のポリシー実行。
出典
- cloud-custodian/cloud-custodian on GitHub (2026-06-24)
- Cloud Custodian becomes a CNCF incubating project (2026-06-24)
- Cloud Custodian - CNCF project (2026-06-24)
- c7n on PyPI (2026-06-24)
- cloudcustodian/c7n on Docker Hub (2026-06-24)
- Cloud Custodian ADOPTERS.md (2026-06-24)
- Cloud Custodian GOVERNANCE.md (2026-06-24)
- Cloud Custodian README.md (2026-06-24)
- Cloud Custodian docs (2026-06-24)
- GitHub REST API repos/cloud-custodian/cloud-custodian (2026-06-24)