AWS認定資格 WEB問題集&徹底解説
デベロッパー–アソシエイト
解説
正解はA です。Amazon S3 でサーバーサイド暗号化(SSE-S3)を強制するには、PutObject リクエストのリクエストヘッダーに `x-amz-server-side-encryption: AES256` を付与する必要があります。`AES256` は SSE-S3 を示す正式な値です。さらに、S3 バケットポリシーで `aws:RequestObjectTag` ではなく `s3:x-amz-server-side-encryption` 条件キーを使用し、このヘッダーが存在しないリクエストを `Deny` することで、暗号化なしのアップロードを確実にブロックできます。バケットポリシーによる強制が「guarantee(保証)」の要件を満たす唯一の手段です。
選択肢 B:`x-amz-server-side-encryption: aws:kms` は SSE-KMS(AWS KMS マネージドキーによる暗号化)を指定するための値であり、SSE-S3 ではありません。要件は SSE-S3 の使用を義務付けているため、この選択肢は不正解です。
選択肢 C:S3 のデフォルト暗号化を設定しても、暗号化ヘッダーなしで送信されたリクエストを拒否することはできません。デフォルト暗号化はヘッダーが省略された場合に自動で暗号化を適用しますが、「ヘッダーのないリクエストを拒否する(guarantee)」という要件を満たしません。
選択肢 D:SSE-S3 ではアプリケーション側が暗号化キーを管理・送信する仕組みはありません。HTTP ボディに暗号化キー情報を埋め込む方法は SSE-C(顧客提供キー)に関連する概念であり、SSE-S3 の仕様とは無関係です。
AWS Identity and Access Management (AWS IAM)
選択肢 B:`x-amz-server-side-encryption: aws:kms` は SSE-KMS(AWS KMS マネージドキーによる暗号化)を指定するための値であり、SSE-S3 ではありません。要件は SSE-S3 の使用を義務付けているため、この選択肢は不正解です。
選択肢 C:S3 のデフォルト暗号化を設定しても、暗号化ヘッダーなしで送信されたリクエストを拒否することはできません。デフォルト暗号化はヘッダーが省略された場合に自動で暗号化を適用しますが、「ヘッダーのないリクエストを拒否する(guarantee)」という要件を満たしません。
選択肢 D:SSE-S3 ではアプリケーション側が暗号化キーを管理・送信する仕組みはありません。HTTP ボディに暗号化キー情報を埋め込む方法は SSE-C(顧客提供キー)に関連する概念であり、SSE-S3 の仕様とは無関係です。
関連サービスの解説
Amazon Simple Storage Service (Amazon S3)AWS Identity and Access Management (AWS IAM)
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 57%
No.11 解説
あるアプリケーションは、Amazon S3 バケットをストレージとして利用しており、REST API 経由でオブジェクトのアップロード・取得を行っています。セキュリティポリシーにより、S3 バケットへのすべてのオブジェクトアップロードは、Amazon S3 マネージドキー(SSE-S3)によるサーバーサイド暗号化を必須としています。
暗号化ヘッダーが付与されていないアップロードリクエストを確実に拒否するには、どのような対策を実施すべきですか?
暗号化ヘッダーが付与されていないアップロードリクエストを確実に拒否するには、どのような対策を実施すべきですか?
- PutObject リクエストのヘッダーに `x-amz-server-side-encryption: AES256` を設定し、このヘッダーが含まれていないアップロードリクエストを拒否するバケットポリシーを S3 バケットに適用する
- PutObject リクエストのヘッダーに `x-amz-server-side-encryption: aws:kms` を設定し、このヘッダーが含まれていないアップロードリクエストを拒否するバケットポリシーを S3 バケットに適用する
- S3 バケットのデフォルト暗号化を SSE-S3 に設定するだけで、バケットポリシーによる制御は不要とする
- PutObject リクエストの HTTP ボディに暗号化キー情報を埋め込み、このキー情報が含まれていないアップロードリクエストを拒否するバケットポリシーを S3 バケットに適用する