Lake Formation 認証情報を使用するようにクローラーを設定する - AWS Glue

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lake Formation 認証情報を使用するようにクローラーを設定する

AWS Lake Formation 認証情報を使用するようにクローラーを設定すると、同じ AWS アカウント または別の AWS アカウント 内の基盤となる Amazon S3 ロケーションで Amazon S3 データストアまたはデータカタログテーブルにアクセスできます。クローラーとデータカタログテーブルが同じアカウントに存在する場合は、既存のデータカタログテーブルをクローラーのターゲットとして設定できます。現在、Data Catalog テーブルをクローラーのターゲットとして使用する場合、単一のカタログテーブルを含む単一のカタログターゲットのみが許可されています。

注記

データカタログテーブルをクローラーターゲットとして定義する場合、データカタログテーブルの基盤となるロケーションが Amazon S3 ロケーションであることを確認してください。Lake Formation の認証情報を使用するクローラーは、基盤となる Amazon S3 ロケーションを備えたデータカタログターゲットのみをサポートしています。

クローラーと登録された Amazon S3 ロケーションまたはデータカタログテーブルが同じアカウントに存在する場合は、セットアップが必要になります (アカウント内クローリング)

クローラーが Lake Formation の認証情報を使用してデータストアまたはデータカタログテーブルにアクセスできるようにするには、データロケーションを Lake Formation で登録する必要があります。また、クローラーの IAM ロールには、Amazon S3 バケットが登録されている送信先からデータを読み込む許可が付与されている必要があります。

AWS Management Console または AWS Command Line Interface (AWS CLI) を使用して、次の設定手順を完了できます。

AWS Management Console
  1. クローラーソースにアクセスするようにクローラーを設定する前に、データストアまたはデータカタログのデータロケーションを Lake Formation で登録します。Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/) で、クローラーが定義されている AWS アカウント で Amazon S3 ロケーションをデータレイクのルートロケーションとして登録します。詳細については、「Amazon S3 ロケーションの登録」を参照してください。

  2. クローラーの実行に使用される IAM ロールにデータロケーション許可を付与し、クローラーが Lake Formation の送信先からデータを読み込めるようにします。詳細については、「データロケーション許可の付与 (同じアカウント)」を参照してください。

  3. クローラーロールにデータベースへのアクセス権限 (Create) を付与します。 このデータベースは出力データベースとして指定されています。詳細については、「Lake Formation コンソールと名前付きリソース方式を使用したデータベース許可の付与」を参照してください。

  4. IAM コンソール (https://console.aws.amazon.com/iam/) で、クローラー用の IAM ロールを作成します。ロールに lakeformation:GetDataAccess ポリシーを追加します。

  5. AWS Glue コンソール (https://console.aws.amazon.com/glue/) で、クローラーを設定する際に、オプション [Use Lake Formation credentials for crawling Amazon S3 data source] (Amazon S3 データソースのクローリングに Lake Formation の認証情報を使用する) を選択してください。

    注記

    accountId フィールドは、アカウント内クローリングのためのオプションです。

AWS CLI
aws glue --profile demo create-crawler --debug --cli-input-json '{ "Name": "prod-test-crawler", "Role": "arn:aws:iam::111122223333:role/service-role/AWSGlueServiceRole-prod-test-run-role", "DatabaseName": "prod-run-db", "Description": "", "Targets": { "S3Targets":[ { "Path": "s3://crawl-testbucket" } ] }, "SchemaChangePolicy": { "UpdateBehavior": "LOG", "DeleteBehavior": "LOG" }, "RecrawlPolicy": { "RecrawlBehavior": "CRAWL_EVERYTHING" }, "LineageConfiguration": { "CrawlerLineageSettings": "DISABLE" }, "LakeFormationConfiguration": { "UseLakeFormationCredentials": true, "AccountId": "111122223333" }, "Configuration": { "Version": 1.0, "CrawlerOutput": { "Partitions": { "AddOrUpdateBehavior": "InheritFromTable" }, "Tables": {"AddOrUpdateBehavior": "MergeNewColumns" } }, "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" } }, "CrawlerSecurityConfiguration": "", "Tags": { "KeyName": "" } }'