SAA-C03セキュアなアーキテクチャの設計MEDIUM単一選択

ある企業が、Amazon S3 バケットへの意図しないパブリックアクセスを組織全体で確実に防止したい。現在の構成では、開発者が新しい S3 バケットを作成する際に、パブリックアクセスブロック設定を無効化してしまうことがある。コードの変更なしに、組織の全アカウントで新規・既存バケットへのパブリックアクセスを確実にブロックする最も適切な方法はどれか。

  1. A. S3 バケットポリシーで各バケットに個別にパブリックアクセスを拒否するポリシーを追加する。
  2. B. 各アカウントでアカウントレベルの S3 パブリックアクセスブロック(4 項目すべて有効)を設定する。この設定はアカウント内のすべてのバケットに適用される。
  3. C. AWS Config ルール(s3-account-level-public-access-blocks)を全アカウントに展開して非準拠を検知する。
  4. D. AWS Organizations の SCP と AWS Config のアカウントレベルの S3 パブリックアクセスブロック設定を組み合わせる。AWS Organizations の SCP で s3:PutBucketPublicAccessBlock の Deny 条件を設定し、さらに各アカウントの S3 アカウントレベルのパブリックアクセスブロックを Systems Manager Automation で有効化する。
解答と解説を見る

正解: B

Amazon S3 のアカウントレベルのパブリックアクセスブロックは、アカウント内の全バケット(既存・新規)に対してパブリックアクセスを一律にブロックする設定である。4 つのブロック設定(BlockPublicAcls、IgnorePublicAcls、BlockPublicPolicy、RestrictPublicBuckets)をすべて有効にすることで、バケット単体の設定に関係なく組織全体でパブリックアクセスを防止できる。AWS Organizations の SCP や Automation で全アカウントへの自動適用も可能。選択肢CのAWS Config ルールは非準拠を検知するが、設定を強制する(予防的制御)ものではなく「検出・修復」(事後的制御)である。選択肢Dは正確な組み合わせ策だが、選択肢Bのアカウントレベルのパブリックアクセスブロックだけでも 4 項目すべて有効にすれば全バケットへの適用が可能であり、シンプルさの点で最適。選択肢AのS3 バケットポリシーによる個別設定は全バケットへの手動適用が必要で管理コストが高い。

▸ この試験を本気で演習する(全150問・無料)