ある企業がAWS CloudFormationのスタックセット(StackSets)を使って、AWS Organizationsの10のメンバーアカウントに同一のIAMロールとS3バケットを展開している。あるメンバーアカウントのエンジニアがCloudFormationを経由せずに直接IAMロールのポリシーを手動で変更した。管理アカウントのチームがこの差異を検出し、CloudFormationのテンプレートの定義に戻したい。最も適切な対応方法はどれか。
- A. 対象アカウントでCloudFormationのドリフト検出を実行してから、スタックインスタンスのドリフトを検出し、スタックセットからそのアカウントのスタックインスタンスを削除して再作成する
- B. 管理アカウントからスタックセットの更新を実行し、変更のあったアカウントにテンプレートを再適用する
- C. AWS Configのマネージドルールを使って手動変更を検知し、Lambda関数で自動修復する
- D. 対象アカウントに直接ログインしてIAMポリシーを手動で元に戻してから、スタックセットのドリフト検出を実行する
解答と解説を見る
正解: B
CloudFormationスタックセットの更新操作は、テンプレートや設定を変更しない場合でも再適用を強制できる(既存テンプレートのまま更新することでターゲットアカウントのスタックがテンプレートの状態に戻る)。管理アカウントからスタックセット更新を実行することで、ドリフトしたアカウントのリソースをテンプレート定義の状態に戻すことができ、スケーラブルな管理が可能である。Aはスタックインスタンスの削除・再作成を含むため、リソース削除のリスクがあり過剰な操作である。Cはシステムの複雑性を増す方法であり、CloudFormationが持つ修復機能を直接使う方が効率的である。Dは対象アカウントへの手動ログインが必要で、多くのアカウントにスケールしない。スタックセットの再適用が最もシンプルかつスケーラブルな解決策である。