Q68 — AWS DOP-C02 第2章

第 68/100 問 | ← 第2章

DevOpsエンジニアが企業向けにアプリケーションを開発しています。このアプリケーションは、ファイルをAmazon S3に永続的に保存する必要があります。アプリケーションは、企業が定義する異なるセキュリティ分類(機密、個人、一般)のファイルをアップロードする必要があります。機密分類のファイルは、アップロードしたユーザー以外誰も閲覧できないようにする必要があります。アプリケーションは、ユーザーのIAMロールを使用してS3 API操作を呼び出します。DevOpsエンジニアは、アプリケーションを変更し、各機密ファイルのS3へのアップロード時にDataClassificationタグの値を'confidential'、Ownerタグの値をアップロードユーザーのIDとするようにしました。

正解: B. S3バケットポリシーを変更し、aws:ResourceTag/DataClassificationが機密であり、s3:ExistingObjectTag/Ownerが${aws:userid}と等しい場合にs3:GetObject操作を許可します。S3バケットに対するs3:GetObject操作を許可するIAMポリシーを作成し、これをS3バケットへのアクセスを必要とするユーザーのIAMロールにアタッチします。

解説

企業の要件(機密分類のファイルをアップロードしたユーザーのみが閲覧可能)を満たすには、リソースのタグ(ResourceTag)および既存オブジェクトのタグ(ExistingObjectTag)に基づくアクセス制御が必要です。S3バケットポリシーは、リソースレベルのアクセス制御を提供し、aws:ResourceTag/DataClassificationおよびs3:ExistingObjectTag/Ownerなどの条件キーをサポートします。s3:ExistingObjectTagは、オブジェクトがすでに存在する場合のタグ値を参照するため、アップロード後のアクセス制御に適しています。一方、aws:RequestTagはリクエスト時のタグ値を参照し、GET操作では使用できません。ACLはタグベースの制御をサポートしないため、選択肢AおよびDは不適切です。選択肢Cはaws:RequestTagを使用しており、GET操作では無効です。選択肢Bは、S3バケットポリシーで適切な条件キーを用いてアクセスを制御し、IAMポリシーで基本的なアクセス権限を付与する、正しいアプローチです。