IaCのドリフト管理 CloudFormationのドリフト検出とAWS Configで構成を守る
コードでインフラを定義していても、緊急対応でマネジメントコンソールから直接変更されると、実体とテンプレートがずれていきます。これが構成ドリフトです。DOP-C02ではドリフトを検出する仕組みと、そもそも発生させない仕組みの両方が問われます。
覚え方は「検出する・戻す・起こさせない」の3つの観点
ドリフト対策は3層で考えます。検出はCloudFormationのドリフト検出とAWS Config、戻すのはスタックの再デプロイやConfigの修復アクション(Systems Manager Automation)、起こさせないのはIAMとSCPによる直接変更の禁止です。問題文が「検知したい」のか「自動で戻したい」のか「そもそも防ぎたい」のかで、答えるレイヤーが変わります。
CloudFormationのドリフト検出
スタックまたはスタックセットに対してドリフト検出を実行すると、テンプレートで定義したプロパティと実際のリソースの差分がリソース単位で報告されます。使いどころは、月次のガバナンスチェックや、変更セットを適用する前の事前確認。EventBridgeのスケジュールからDetectStackDriftをLambda経由で定期実行し、DRIFTEDが出たらSNSで通知する構成が典型です。なお、すべてのリソースタイプがドリフト検出に対応しているわけではない点は注意が必要です。
AWS Configによる継続的な評価
Configは設定変更をほぼリアルタイムに記録し、ルールに対する準拠・非準拠を継続的に評価します。使いどころは「セキュリティグループの全開放(インターネット全体からの許可)を検知して自動で閉じる」のように、リソース単位で常時監視して修復まで自動化したい場合。非準拠を検知したら修復アクションとしてSystems Manager Automationドキュメントを起動し、元の設定に戻せます。組織全体に適用するならConformance Packをまとめて配布します。
そもそも起こさせない設計
最も確実なのは、人がコンソールから本番リソースを変更できないようにすることです。使いどころとしては、本番アカウントの一般利用者には読み取り専用のIAMポリシーを与え、変更はパイプラインが引き受けるデプロイロールだけに許可する構成。さらにCloudFormationのスタックポリシーで重要リソースの更新や削除を拒否し、Organizations のSCPで特定APIを組織的に禁止すれば、ドリフトの発生源そのものを塞げます。
| 観点 | CloudFormationドリフト検出 | AWS Config |
|---|---|---|
| 評価のタイミング | 手動または定期実行 | 変更をトリガーに継続評価 |
| 比較の対象 | スタックのテンプレート定義 | ルールで定義した望ましい状態 |
| 自動修復 | なし(再デプロイで対応) | 修復アクションで自動化可能 |
| 得意な範囲 | IaCで作ったリソースの差分 | アカウント全体の設定準拠性 |
チェックリスト
- スタックのドリフトステータス(IN_SYNC、DRIFTED、NOT_CHECKED)を説明できる
- AWS Configルールと修復アクション、Automationドキュメントの連携を設計できる
- Conformance Packを組織全体へ配布する方法を知っている
- スタックポリシーとSCPで直接変更を抑止する構成を説明できる
- ドリフト検出をEventBridgeで定期実行し通知する構成を組める
まとめ
ドリフト対策は「検出・修復・予防」の3層で整理し、要件がどの層を求めているかを見極めるのが近道です。運用の現実として予防だけでは足りないため、検出と自動修復を組み合わせた多層構成を説明できるようにしておきましょう。 理解度の確認にはクイズが便利です。試験範囲や申し込みの最新情報はAWS認定 公式ページもあわせて確認してください。
DOP(DevOpsエンジニア) におすすめの教材
AWS認定 DevOpsエンジニア − プロフェッショナル DOP-C02 出題予想問題集 第2版
AWS認定 DevOpsエンジニア − プロフェッショナル DOP-C02 練習問題集
AWS認定DOP(DOP-C02)実践問題集(全範囲・225問)
AWS認定DOP 演習テスト(日本語)
本セクションにはAmazonアソシエイト・Udemyアフィリエイトのリンクが含まれます。