ある開発チームがAmazon ECRにDockerイメージをプッシュして管理している。誤って同じタグ(例: latest)を使って古いイメージが上書きされる問題が発生しており、意図しないバージョンのイメージが本番環境にデプロイされるインシデントが起きた。最小限の設定変更でこの問題を防ぐ最も適切な方法はどれか。
- A. ECRリポジトリにイメージタグのイミュータビリティ(immutability)を有効化し、同一タグへの上書きプッシュを禁止する
- B. ECRリポジトリにリソースベースポリシーを設定してinitiatePushアクションを特定のIAMロールのみに制限する
- C. ECRリポジトリのライフサイクルポリシーで古いイメージを自動削除するルールを設定する
- D. CodeBuildでDockerイメージをビルドする際に常にlatestタグを使わずUUIDを生成してタグ付けするよう buildspec.yml を修正する
解答と解説を見る
正解: A
ECRリポジトリのイメージタグイミュータビリティを有効化すると、既存のタグに対して上書きプッシュが禁止される。例えばlatestタグが既にプッシュされている状態で再度latestタグをプッシュしようとするとエラーになる。これによりタグが指すイメージの変更を防止し、デプロイの再現性と追跡可能性を担保できる。設定変更はECRリポジトリの1項目のみであり最小限の変更で実現できる。Cのライフサイクルポリシーは古いイメージを自動削除するためのものであり、同一タグ上書きの防止とは無関係である。DはbuildspecのCIパイプラインを変更する方法で有効だが、他のチームや別のパイプラインからの上書きを防げず、リポジトリレベルの保護にならない。BのIAMポリシーによるプッシュ制限はアクセス制御であり、同一タグ上書きを技術的に防ぐものではない。
📚 関連サービスの解説: Amazon ECR