Q86 — AWS SCS-C02 第1章
第 86/100 問 | ← 第1章
会社Aは、アカウントAという名前のAWSアカウントを持っています。会社Aは最近、アカウントBという名前のAWSアカウントを持つ会社Bを買収しました。会社Bは、Amazon S3バケットにファイルを保存しています。管理者は、アカウントAのユーザーにアカウントBのS3バケットへの完全なアクセス権限を与える必要があります。 管理者がアカウントAのユーザーのIAM権限を調整してアカウントBのS3バケットへのアクセスを可能にした後も、ユーザーはS3バケット内のファイルに一切アクセスできません。 この問題を解決するソリューションはどれですか?
- A. アカウントBで、アカウントAのユーザーがアカウントBのS3バケットにアクセスできるよう、バケットACLを作成します。
- B. アカウントBで、アカウントAのユーザーがアカウントBのS3バケット内のすべてのオブジェクトにアクセスできるよう、オブジェクトACLを作成します。
- C. アカウントBで、アカウントAのユーザーがアカウントBのS3バケットにアクセスできるよう、バケットポリシーを作成します。 ✓
- D. アカウントBで、アカウントAのユーザーがアカウントBのS3バケットにアクセスできるよう、ユーザーポリシーを作成します。
正解: C. アカウントBで、アカウントAのユーザーがアカウントBのS3バケットにアクセスできるよう、バケットポリシーを作成します。
解説
AWSにおけるクロスアカウントのS3バケットアクセスには、リソースレベルでのポリシーによる承認が必要です。IAMポリシーは要求元アカウント内でのみ有効であり、S3リソースポリシー(バケットポリシー)は、対象リソースが属するアカウントにアタッチする必要があります。AWS公式ドキュメントでは、クロスアカウントのS3アクセスにおいて、リソース側(アカウントB)がバケットポリシーを設定し、外部アカウント(アカウントA)のエンティティに明示的にアクセスを許可することが明記されています。選択肢AおよびBのACLは限定的な権限しか提供せず、単独ではクロスアカウント問題を解決できません。選択肢Dのユーザーポリシーは他アカウントのユーザーには適用できません。唯一、アカウントBでバケットポリシー(選択肢C)を設定することで、アカウントAのユーザーに直接アクセス権限を付与できます。この解答は、AWSのクロスアカウントアクセスに関するベストプラクティスに合致します。