AWS Lake Formation では、複数の AWS アカウントにまたがって Amazon Simple Storage Service (Amazon S3) ロケーションを登録することができます。例えば、AWS Glue Data Catalog がアカウント A にある場合、アカウント A のユーザーは、アカウント B にある Amazon S3 バケットを登録することができます。
AWS アカウント A にある AWS Identity and Access Management (IAM) ロールを使用して AWS アカウント B にある Amazon S3 バケットを登録するには、以下の許可が必要です。
-
アカウント A のロールが、アカウント B のバケットに対する許可を付与する必要があります。
-
アカウント B のバケットポリシーが、アカウント A のロールにアクセス許可を付与する必要があります。
重要
[Requester pays] (リクエスタ支払い) が有効になっている Amazon S3 バケットの登録は避けてください。Lake Formation に登録されたバケットの場合、バケットの登録に使用されるロールは常にリクエスト元であると見なされます。別の AWS アカウントがそのバケットにアクセスしていて、ロールがバケット所有者と同じアカウントに属する場合、バケット所有者にデータアクセスの料金が請求されます。
Lake Formation サービスリンクロールを使用して、別のアカウントにあるロケーションを登録することはできません。その代わりに、ユーザー定義のロールを使用する必要があります。このロールは、「ロケーションの登録に使用されるロールの要件」の要件を満たす必要があります。サービスリンクロールの詳細については、「Lake Formation のサービスリンクロールの許可」を参照してください。
開始する前に
「ロケーションの登録に使用されるロールの要件」を確認してください。
別の AWS アカウントにあるロケーションを登録する
注記
ロケーションが暗号化されている場合は、代わりに「AWS アカウント間での暗号化された Amazon S3 ロケーションの登録」の手順を実行してください。
以下の手順は、Data Catalog が含まれるアカウント 1111-2222-3333 のプリンシパルが、アカウント 1234-5678-9012 にある Amazon S3 バケット awsexamplebucket1
を登録したいという状況を前提としています。
-
アカウント 1111-2222-3333 で AWS Management Consoleにサインインして、IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
新しいロールを作成するか、「ロケーションの登録に使用されるロールの要件」の要件を満たす既存のロールを表示します。ロールが
awsexamplebucket1
に対する Amazon S3 許可を付与することを確認します。 -
Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。アカウント 1234-5678-9012 でサインインします。 -
[Bucket name] (バケット名) リストで、
awsexamplebucket1
というバケット名を選択します。 -
[Permissions] (アクセス許可) を選択します。
-
[Permissions] (アクセス許可) ページで、[Bucket Policy] (バケットポリシー) を選択します。
-
[Bucket policy editor] (バケットポリシーエディタ) に、以下のポリシーを貼り付けます。
<role-name>
をロールの名前に置き換えます。{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::111122223333:role/
<role-name>
" }, "Action":"s3:ListBucket", "Resource":"arn:aws:s3:::awsexamplebucket1" }, { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::111122223333:role/<role-name>
" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource":"arn:aws:s3:::awsexamplebucket1/*" } ] } -
[Save] (保存) を選択します。
-
AWS Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/
) を開きます。データレイク管理者として、またはロケーションを登録するために十分な許可を持つユーザーとして、アカウント 1111-2222-3333 にサインインします。 -
ナビゲーションペインの [管理] で、[データレイクのロケーション] を選択します。
-
[データレイクのロケーション] ページで、[ロケーションを登録] を選択します。
-
[Register location] (ロケーションの登録) ページで、[Amazon S3 path] (Amazon S3 パス) にバケット名
s3://awsexamplebucket1
を入力します。注記
クロスアカウントバケットは [Browse] (参照) を選択してもリストに表示されないため、バケット名を入力する必要があります。
-
[IAM role] (IAM ロール) でロールを選択します。
-
[Register location] (ロケーションを登録) を選択します。