アカウントと共有されたデータロケーションに対する許可の付与
Data Catalog リソースが AWS アカウントと共有されたら、データレイク管理者として、そのリソースに対する許可をアカウント内の他のプリンシパルに付与することができます。共有テーブルに対する ALTER
許可が付与されており、そのテーブルが登録された Amazon S3 ロケーションをポイントする場合は、そのロケーションに対するデータロケーション許可も付与する必要があります。同様に、共有データベースに対する CREATE_TABLE
または ALTER
許可が付与されており、そのデータベースに登録されたロケーションをポイントするロケーションプロパティがある場合は、そのロケーションに対するデータロケーション許可も付与する必要があります。
共有ロケーションに対するデータロケーション許可をアカウント内のプリンシパルに付与するには、そのロケーションに対する grant オプション付きの DATA_LOCATION_ACCESS
許可がアカウントに付与されている必要があります。その後、アカウント内の別のプリンシパルに DATA_LOCATION_ACCESS
を付与するときは、所有者アカウントの Data Catalog ID (AWS アカウント ID) を含める必要があります。所有者アカウントは、ロケーションを登録したアカウントです。
データロケーション許可は、AWS Lake Formation コンソール、API、または AWS Command Line Interface ( AWS CLI ) を使用して付与することができます。
アカウントと共有されたデータロケーションに対する許可を付与する (コンソール)
-
「データロケーション許可の付与 (同じアカウント)」の手順を実行します。
[Storage locations] (ストレージのロケーション) には、ロケーションを入力する必要があります。[Registered account location] (登録されたアカウントのロケーション) には、所有者アカウントの AWS アカウント ID を入力します。
アカウントと共有されたデータロケーションに対する許可を付与する (AWS CLI)
-
以下のコマンドのいずれかを入力して、ユーザーまたはロールに許可を付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:user/<user-name>
--permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"CatalogId":"<owner-account-ID>
","ResourceArn":"arn:aws:s3:::<s3-location>
"}}' aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>
:role/<role-name>
--permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"CatalogId":"<owner-account-ID>
","ResourceArn":"arn:aws:s3:::<s3-location>
"}}'