Control Tower環境で予防コントロール・検出コントロールを有効化してみる
はじめに
かつまたです。Control Tower 学習の一環として、組織全体の AWS アカウントに対してガバナンスとコンプライアンスを自動的に適用するためのルールセットである「コントロール」を組織内の OU に対して適用して動作を確認してみました。
今回は予防コントロール、検出コントロールの 2 つを試してみました。
-
予防コントロール
目的: 問題が発生する前に、不適切なアクションを事前に防ぐ
仕組み: SCP を使用して IAM レベルでアクションを制限
効果: リアルタイムでアクションをブロック -
検出コントロール
目的: 既存のリソースや設定のコンプライアンス違反を検出
仕組み: AWS Config ルールを使用して継続的に監視
効果: 違反を検出し、アラートや自動修復をトリガー
今回は AWS Workshop を参考にそれぞれのコントロールについて構築してみました。
やってみた
予防コントロール
-
組織管理アカウントの Control Tower から「Control Catalog」を開き、利用したいコントロールを探します。
今回は「[AWS-GR_AUDIT_BUCKET_ENCRYPTION_ENABLED] Disallow Changes to Encryption Configuration for Amazon S3 Buckets」を選択し、有効化しました。
これにより既存バケットに対しての暗号化の変更を禁止する仕組みが構築されます。
-
コントロールを有効にすると、選択した組織(OU)に対して SCP が適用されます。コントロールのアーティファクト、または Organizations から OU に適用されている SCP を確認すると以下のようなポリシーが反映されていることが確認できます。
- 既存の S3 バケットに対して、バケット暗号化を変更(無効化)するように設定しようとすると、以下のように明示的に拒否されている旨の権限エラーを確認できました。
検出コントロール
- 組織管理アカウントの Control Tower から「Control Catalog」を開き、「[AWS-GR_S3_VERSIONING_ENABLED] Detect whether versioning for Amazon S3 buckets is enabled」を選択し、有効化しました。
このコントロールにより、バージョニングが有効化されていない S3 バケットが作成された際に検知する仕組みが構築されます。
- コントロールを適用したい組織または組織全体を選択します。
- 検出コントロールは Stacksets により選択した組織に Config ルール等がデプロイされます。コントロール有効化後、組織管理アカウントで Stacksets の確認や、メンバーアカウントで Config ルールの確認をすることができます。
-
バージョニングが有効でない S3 バケットを作成します。デフォルト設定ですでにバージョニングは無効化設定となっています。
-
バケット作成後、組織管理アカウントのControl Tower コントロールやメンバーアカウントの Config ルールから、非準拠リソースが検出されていることを確認できました。
Config ルール
Control Tower
おわりに
ご覧いただきありがとうございました。
Control Tower のコントロール機能を実際に構築してみることで、以下のポイントが理解できました。
- 予防コントロールは事前にリスクを防ぐ強力な仕組み
- 検出コントロールは継続的なコンプライアンス監視に有効
- 両方を組み合わせることで、多層防御のセキュリティ体制を構築可能
- 自動修復機能も併せて構築すれば、運用負荷を大幅に軽減できる
今回触れなかった、プロアクティブなコントロールについても、構築を試してみたいと思います。
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。