c4.4 IAM ポリシー生成パイプラインを構築する
多数のアプリとアカウントがあると、IAM ガバナンスにはパイプラインが必要です。チームが最小権限ポリシーをコードとして提案し、自動チェックが過度に広いアクセス(ワイルドカード)を却下し、承認してデプロイします。チームに自律性を与えつつ、セキュリティチームをクリティカルパスから外します。
実装ガイダンス
IAM as Code
多数のアプリとアカウントがあると、場当たり的なポリシー作成はスケールしません。まず、各チームが必要な IAM ポリシーを AWS CloudFormation(または CDK)テンプレートとして定義し、レビュー・承認し、Git でバージョン管理してからデプロイします。
ガバナンスパイプラインを追加する
チームに自律性を与え、セキュリティチームの運用負荷を減らすため、チームが新しいポリシーを提案(最小権限を尊重)できるようにし、自動チェック(たとえば AWS Lambda 関数)で "Action": "" や "Resource": "" のような不合理な要求を却下します。セキュリティは環境やポリシーに応じて自動または手動で承認し、パイプラインがデプロイします。AWS CodePipeline は、アプリケーションデリバリーと同様にこれらのステップをオーケストレーションできます。How to manage security governance using DevOps methodologies を参照してください。
なぜ有効か
自動化されたポリシーガバナンスは、大規模でも最小権限を維持し、チームに迅速なセルフサービスを提供し、ポリシー変更のたびにセキュリティチームが手動のボトルネックになることを防ぎます。
How to validate
- IAM ポリシーはコードとして定義され、バージョン管理され、デプロイ前にレビューされていますか?
- 自動チェックが、過度に広い要求(ワイルドカードのアクション/リソース)をパイプラインで却下しますか?
- セキュリティチームが手動のボトルネックにならずに、チームがポリシーを提案するセルフサービスの経路がありますか?
Threats addressed
- 大規模での手動・場当たり的な IAM ポリシー作成は、一貫性のない過剰な権限のポリシーを生み、セキュリティチームをボトルネックにします。その結果、チームは迂回したり、速く進めるために過剰に付与したりします。
Cloud Security Maturity Model