Q19 — AWS DOP-C02 第3章
第 19/100 問 | ← 第3章
セキュリティ監査により、AWS CodeBuildプロジェクトが認証されていないリクエストを使用してAmazon S3バケットからデータベース初期化スクリプトをダウンロードしていることが判明しました。セキュリティチームは、CodeBuildプロジェクトのS3バケットに対する認証されていないリクエストを許可しません。 この問題を最も安全な方法で修正するにはどうすればよいですか?
- A. バケット名をCodeBuildプロジェクト設定のAllowedBucketsセクションに追加します。ビルド仕様を更新し、AWS CLIを使用してデータベース初期化スクリプトをダウンロードします。
- B. S3バケット設定を変更してHTTPS基本認証を有効化し、トークンを指定します。ビルド仕様を更新し、cURLを使用してトークンを渡してデータベース初期化スクリプトをダウンロードします。
- C. バケットポリシーを使用してS3バケットからの認証されていないアクセスを削除します。CodeBuildプロジェクトのサービスロールを変更し、Amazon S3へのアクセス権限を含めます。AWS CLIを使用してデータベース初期化スクリプトをダウンロードします。 ✓
- D. バケットポリシーを使用してS3バケットからの認証されていないアクセスを削除します。IAMアクセスキーとシークレットアクセスキーを使用してAWS CLIでデータベース初期化スクリプトをダウンロードします。
正解: C. バケットポリシーを使用してS3バケットからの認証されていないアクセスを削除します。CodeBuildプロジェクトのサービスロールを変更し、Amazon S3へのアクセス権限を含めます。AWS CLIを使用してデータベース初期化スクリプトをダウンロードします。
解説
本問の核心は、S3バケットへの不正アクセスを阻止しつつ、CodeBuildによる正当なアクセスを保証することです。AWSセキュリティモデルによれば、バケットポリシーで公開アクセス(認証されていないアクセス)を無効化し、同時にIAMサービスロールによってCodeBuildへのアクセス権限を付与すべきです。選択肢Cは、バケットポリシーで匿名アクセスを遮断し、CodeBuildプロジェクトのサービスロールにS3アクセス権限を付与することで、一時的なセキュリティ資格情報を利用してバケットにアクセス可能となり、最小権限の原則に合致します。選択肢Dは長期的な資格情報を使用するため漏洩リスクがあり、選択肢BのHTTPS基本認証はAWSの認証メカニズムに適合せず、選択肢AのAllowedBucketsはネイティブなS3権限制御手段ではありません。