DOP構成管理と Infrastructure as Code (IaC)
あなたの会社のセキュリティチームは、AWS CDK で構築されたすべてのアプリケーションに対して「すべての S3 バケットでサーバーサイド暗号化(SSE)を強制し、パブリックアクセスをブロックすること」を一貫して適用するよう求めています。CDK アプリには複数のスタックと数十の S3 バケット定義が存在しますが、個々のバケット定義を修正することなく、この要件をアプリ全体に横断的かつメンテナンス性高く適用する方法はどれですか?
ACDK アプリのすべてのスタックファイルを検索し、aws_s3.Bucket コンストラクトが使われている箇所をすべて手動で修正して encryption プロパティと blockPublicAccess プロパティを追加する。
手動修正は、数十のバケット定義を個別に修正する必要があり、バケット追加のたびに対応が必要でメンテナンス性が低くスケールしません。
BCDK Aspects(アスペクト)を使用して、visit() で CfnBucket を検出した際に SSE とパブリックアクセスブロックを付与する Aspect クラスを作成し、Aspects.of(app).add() でアプリ全体に適用する。
✓ 正解
CDK Aspects(アスペクト)は IAspect インターフェースを実装したクラスで、CDK コンストラクトツリー全体を走査し、対象ノードに横断的な処理を適用できます。visit() メソッドで CfnBucket を検出して SSE・パブリックアクセスブロックを強制設定することで、個別バケット定義を変更せずにセキュリティポリシーを一元適用できます。
CAWS CloudFormation Guard(cfn-guard)ルールを作成し、SSE とパブリックアクセスブロックが設定されていない S3 バケットを CI/CD パイプライン上で検知してビルドを失敗させる。
AWS CloudFormation Guard(cfn-guard)ルールを作成するアプローチは、検知・検証には有効ですが、CDK のシンセシス(合成)段階で予防的に適用する手段としては Aspects が最適です。
DAWS Config のマネージドルール s3-bucket-server-side-encryption-enabled を有効化し、準拠していないバケットを AWS Config 自動修復アクションで SSE 有効化する。
AWS Config のマネージドルール s3-bucket-server-side-encryption-enabled を有効化するアプローチは、検知・修復には有効ですが、CDK のシンセシス段階で予防的に適用する手段としては Aspects が最適です。
解説
CDK Aspects(アスペクト)は IAspect インターフェースを実装したクラスで、CDK コンストラクトツリー全体を走査し、対象ノードに横断的な処理を適用できます。visit() メソッドで CfnBucket を検出して SSE・パブリックアクセスブロックを強制設定することで、個別バケット定義を変更せずにセキュリティポリシーを一元適用できます。
選択肢Aの手動修正は、数十のバケット定義を個別に修正する必要があり、バケット追加のたびに対応が必要でメンテナンス性が低くスケールしません。
選択肢CのAWS CloudFormation Guard(cfn-guard)ルールを作成するアプローチは、検知・検証には有効ですが、CDK のシンセシス(合成)段階で予防的に適用する手段としては Aspects が最適です。
選択肢DのAWS Config のマネージドルール s3-bucket-server-side-encryption-enabled を有効化するアプローチは、検知・修復には有効ですが、CDK のシンセシス段階で予防的に適用する手段としては Aspects が最適です。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →