Amazon Simple Storage Service (Amazon S3) ロケーションを登録するときは、AWS Identity and Access Management (IAM) ロールを指定する必要があります。Lake Formation は、そのロケーションにあるデータにアクセスする統合された AWS のサービスに一時的な認証情報を提供するときに、そのロールを引き受けます。
重要
[Requester pays] (リクエスタ支払い) が有効になっている Amazon S3 バケットの登録は避けてください。Lake Formation に登録されたバケットの場合、バケットの登録に使用されるロールは常にリクエスト元であると見なされます。別の AWS アカウントがそのバケットにアクセスしていて、ロールがバケット所有者と同じアカウントに属する場合、バケット所有者にデータアクセスの料金が請求されます。
Amazon S3 ロケーションの登録には、AWS Lake Formation コンソール、Lake Formation API、または AWS Command Line Interface (AWS CLI) を使用できます。
開始する前に
「ロケーションの登録に使用されるロールの要件」を確認してください。
ロケーションを登録する (コンソール)
重要
以下の手順は、Amazon S3 ロケーションが Data Catalog と同じ AWS アカウントにあり、そのロケーション内のデータが暗号化されていないことを前提としています。クロスアカウント登録と暗号化されたロケーションの登録については、本章の他のセクションで説明されています。
-
AWS Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/
) を開きます。データレイク管理者、または lakeformation:RegisterResource
IAM 許可を持つユーザーとしてサインインします。 -
ナビゲーションペインの [管理] で、[データレイクのロケーション] を選択します。
-
[Register location] (ロケーションを登録) を選択してから、[Browse](参照) を選択して Amazon Simple Storage Service (Amazon S3) パスを選択します。
-
(強く推奨されるオプション) [ロケーションのアクセス許可のレビュー] を選択して、選択した Amazon S3 ロケーションにあるすべての既存のリソースおよびアクセス許可のリストを確認します。
選択されたロケーションの登録により、Lake Formation ユーザーがそのロケーションにすでに存在するデータにアクセスできるようになる可能性があります。このリストの確認は、既存のデータのセキュリティが確保されていることを確実にするために役立ちます。
-
[IAM role] (IAMロール) には、
AWSServiceRoleForLakeFormationDataAccess
サービスリンクロール (デフォルト)、または「ロケーションの登録に使用されるロールの要件」の要件を満たすカスタム IAM ロールを選択します。登録したロケーションやその他の詳細を更新できるのは、カスタム IAM ロールを使用して登録した場合のみです。サービスにリンクされたロールを使用して登録したロケーションを編集するには、ロケーションの登録を解除して再度登録する必要があります。
[Data Catalog フェデレーションを有効にする] オプションを選択し、Lake Formation に対して、ロールの引き受け、統合された AWS のサービスへの一時的な認証情報の提供、フェデレーションデーターベースのテーブルへのアクセスを許可します。ロケーションが Lake Formation に登録されていて、フェデレーションデータベースのテーブルにも同じロケーションを使用する場合は、同じロケーションを [Data Catalog フェデレーションを有効にする] オプションで登録する必要があります。
-
Lake Formation 許可をデフォルトで有効にしない場合は、[ハイブリッドアクセスモード] を選択します。Amazon S3 ロケーションをハイブリッドアクセスモードで登録すると、そのロケーションにあるデータベースとテーブルのプリンシパルをオプトインすることで、Lake Formation 許可を有効にできます。
ハイブリッドアクセスモードアクセスの設定の詳細については、「ハイブリッドアクセスモード」を参照してください。
-
[ロケーションを登録] を選択します。
ロケーションを登録するには (AWS CLI)
-
新しいロケーションを Lake Formation に登録します。
この例では、サービスにリンクされたロールを使用してロケーションを登録します。その代わりに
--role-arn
引数を使用して、独自のロールを提供することができます。<s3-path>
を有効な Amazon S3 パスに置き換え、アカウント番号を有効な AWS アカウントに置き換えます。また、<s3-access-role>
を、データロケーションを登録するためのアクセス許可を持つ IAM ロールに置き換えます。注記
ロケーションの登録にサービスにリンクされたロールを使用した場合、登録したロケーションのプロパティは編集できません。
aws lakeformation register-resource \ --resource-arn arn:aws:s3:::
<s3-path>
\ --use-service-linked-role次の例では、カスタムロールを使用してロケーションを登録します。
aws lakeformation register-resource \ --resource-arn arn:aws:s3:::
<s3-path>
\ --role-arn arn:aws:iam::<123456789012>
:role/<s3-access-role>
-
Lake Formation に登録したロケーションを更新するには
登録したロケーションは、カスタム IAM ロールを使用して登録している場合にのみ編集できます。サービスにリンクされたロールに登録されているロケーションについては、ロケーションの登録を解除してから再度登録する必要があります。詳細については、「Amazon S3 ロケーションの登録解除」を参照してください。
aws lakeformation update-resource \ --role-arn arn:aws:iam::
<123456789012>
:role/<s3-access-role>
\ --resource-arn arn:aws:s3:::<s3-path>
aws lakeformation update-resource \ --resource-arn arn:aws:s3:::
<s3-path>
\ --use-service-linked-role -
ハイブリッドアクセスモードでデータロケーションをフェデレーションに登録します。
aws lakeformation register-resource \ --resource-arn arn:aws:s3:::
<s3-path>
\ --role-arn arn:aws:iam::<123456789012>
:role/<s3-access-role>
\ --hybrid-access-enabledaws lakeformation register-resource \ --resource-arn arn:aws:s3:::
<s3-path>
\ --role-arn arn:aws:iam::<123456789012>
:role/<s3-access-role>
\ --with-federationaws lakeformation update-resource \ --resource-arn arn:aws:s3:::
<s3-path>
\ --role-arn arn:aws:iam::<123456789012>
:role/<s3-access-role>
\ --hybrid-access-enabled
詳細については、「RegisterResource」を参照してください。
注記
Amazon S3 ロケーションが登録されると、そのロケーション (またはその子ロケーション) をポイントするすべての AWS Glue テーブルが、GetTable
コールで IsRegisteredWithLakeFormation
パラメータの値を true
として返します。GetTables
および SearchTables
などの Data Catalog API 操作が IsRegisteredWithLakeFormation
パラメータの値を更新せず、デフォルト値の false を返すという既知の制限があります。IsRegisteredWithLakeFormation
パラメータの正しい値を表示するには、GetTable
API を使用することが推奨されます。