AWS CloudFormation Guard

AWS CloudFormation Guard の特徴

AWS CloudFormation Guard は、CloudFormation テンプレートや各種 JSON/YAML の設定値が、組織のポリシーに違反していないかを事前にチェックするための Policy as Code ツールです。CloudFormation Guard は、オープンソースの汎用ポリシー評価ツールであり、専用の DSL でルールを書き、構造化データを検証できる CLI です。

例えば、「S3 バケットは必ず暗号化する」、「セキュリティグループで 0.0.0.0/0 を 22 番ポートに許可しない」などのルールを作り、デプロイしてから Config や Security Hub で違反を見つけるのではなく、デプロイ前にテンプレート段階で止めるために使用します。

一番のメリットはシフトレフト(Shift Left)です。インフラを作ってから修正するのではなく、Pull Request や CI/CD の段階で不適切な設定を弾けます。CloudFormation Guard のルールで IaC テンプレートやサービス構成を検証することで、ガバナンスとコンプライアンスを予防できます。

cfn-guard

cfn-guard コマンドの例

# テンプレートに対してルールを検証
cfn-guard validate \
  --data template.yaml \
  --rules security_rules.guard

# 結果例(違反あり)
template.yaml Status = FAIL
FAILED rules
  security_rules.guard/s3_encryption_required    FAIL
  └── S3バケット「MyBucket」に暗号化設定がありません

# 結果例(準拠)
template.yaml Status = PASS