Q75 — AWS DOP-C02 第1章
第 75/100 問 | ← 第1章
セキュリティ監査により、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を使用してデータベース初期化スクリプトをダウンロードします。
解説
選択肢Cが正解です。バケットポリシーで認証されていないアクセスを禁止し、CodeBuildプロジェクトのサービスロールに適切なS3アクセス権限を付与することで、最小権限の原則に従った安全なアクセス制御が実現されます。AWS CLIはロールベースの認証をネイティブにサポートしており、アクセスキーのハードコーディング(選択肢D)や追加の認証機構(選択肢B)を回避できます。選択肢AはAllowedBuckets機能がCodeBuildに存在せず、誤った前提に基づいています。