Q72 — AWS SAP-C02 第1章
第 72/75 問 | ← 第1章
Q147. ソリューションアーキテクトは、あるAWSアカウント内のAmazon S3バケットから、新しいAWSアカウント内の新しいS3バケットへデータをコピーする必要があります。このソリューションはAWS CLIを使用して実装しなければなりません。データを正常にコピーするために必要な手順の組み合わせはどれですか?(3つ選択)
- A. ソースバケットのコンテンツを一覧表示し、宛先バケットにオブジェクトを配置し、オブジェクトのACLを設定することを許可するバケットポリシーを作成します。このバケットポリシーを宛先バケットにアタッチします。
- B. 宛先アカウント内のユーザーがソースバケットのコンテンツを一覧表示し、ソースバケットのオブジェクトを読み取ることを許可するバケットポリシーを作成します。このバケットポリシーをソースバケットにアタッチします。 ✓
- C. ソースアカウント内でIAMポリシーを作成します。このポリシーを、ソースアカウント内のユーザーに対して、ソースバケットのコンテンツを一覧表示・オブジェクト取得を許可するとともに、宛先バケットのコンテンツ一覧表示・オブジェクト配置・オブジェクトACL設定を許可するように設定します。このポリシーをユーザーにアタッチします。
- D. 宛先アカウント内でIAMポリシーを作成します。このポリシーを、宛先アカウント内のユーザーに対して、ソースバケットのコンテンツ一覧表示・オブジェクト取得を許可するとともに、宛先バケットのコンテンツ一覧表示・オブジェクト配置・オブジェクトACL設定を許可するように設定します。このポリシーをユーザーにアタッチします。 ✓
- E. ソースアカウント内のユーザーとしてaws s3 syncコマンドを実行します。データをコピーするため、ソースおよび宛先バケットを指定します。
- F. 宛先アカウント内のユーザーとしてaws s3 syncコマンドを実行します。データをコピーするため、ソースおよび宛先バケットを指定します。 ✓
正解: B. 宛先アカウント内のユーザーがソースバケットのコンテンツを一覧表示し、ソースバケットのオブジェクトを読み取ることを許可するバケットポリシーを作成します。このバケットポリシーをソースバケットにアタッチします。, D. 宛先アカウント内でIAMポリシーを作成します。このポリシーを、宛先アカウント内のユーザーに対して、ソースバケットのコンテンツ一覧表示・オブジェクト取得を許可するとともに、宛先バケットのコンテンツ一覧表示・オブジェクト配置・オブジェクトACL設定を許可するように設定します。このポリシーをユーザーにアタッチします。, F. 宛先アカウント内のユーザーとしてaws s3 syncコマンドを実行します。データをコピーするため、ソースおよび宛先バケットを指定します。
解説
クロスアカウントS3データコピーでは、ソースバケットへの読み取りアクセスと宛先バケットへの書き込みアクセスの両方が必要です。適切なアクセス権限を付与するには、以下の3つのステップが必要です:(1)ソースバケットにバケットポリシーを設定し、宛先アカウントのユーザー(またはロール)がソースバケットのリストおよびオブジェクト取得(s3:ListBucket, s3:GetObject)を実行できるようにする(選択肢B)。(2)宛先アカウント内で、そのユーザーがソースバケットから読み取り、かつ宛先バケットへ書き込み(s3:ListBucket, s3:PutObject, s3:PutObjectAclなど)できるようIAMポリシーを作成・アタッチする(選択肢D)。(3)このユーザー(宛先アカウント内)としてAWS CLIのaws s3 syncコマンドを実行する(選択肢F)。選択肢Aは宛先バケットにポリシーをアタッチしていますが、これはソース側のアクセス許可ではなく、不適切です。選択肢Cはソースアカウント内のユーザーに宛先バケットへの書き込み権限を与えるものですが、ソースアカウントのユーザーは宛先アカウントのリソースに直接アクセスできません(クロスアカウントでは、宛先側で明示的な許可が必要)。選択肢Eはソースアカウントのユーザーがsyncを実行するものですが、そのユーザーは宛先バケットへの書き込み権限を持たないため失敗します。したがって、正解はB、D、Fです。