

# クローラーと登録された Amazon S3 ロケーションが異なるアカウントに存在する場合は、セットアップが必要になります (クロスアカウントクローリング)
<a name="cross-account-crawling"></a>

クローラーが Lake Formation の認証情報を使用して別のアカウントのデータストアにアクセスできるようにするには、まず Amazon S3 のデータロケーションを Lake Formation で登録する必要があります。次に、以下の手順を実行して、クローラーのアカウントにデータロケーション許可を付与します。

AWS マネジメントコンソール または AWS CLI を使用して、次のステップを実行できます。

------
#### [ AWS マネジメントコンソール ]

1. Amazon S3 ロケーションが登録されているアカウント (アカウント B) では、次の操作を行います。

   1. Lake Formation で Amazon S3 パスを登録します。詳細については、「[Amazon S3 ロケーションの登録](https://docs.aws.amazon.com/lake-formation/latest/dg/register-location.html)」を参照してください。

   1.  クローラーを実行するアカウント (アカウント A) に**データロケーション**許可を付与します。詳細については、「[Grant data location permissions](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-location-permissions-local.html)」(データロケーション許可を付与する) を参照してください。

   1. 基盤となるロケーションをターゲットの Amazon S3 ロケーションとして、Lake Formation に空のデータベースを作成します。詳細については、「[データベースの作成](https://docs.aws.amazon.com/lake-formation/latest/dg/creating-database.html)」を参照してください。

   1. アカウント A (クローラーを実行するアカウント) に、前のステップで作成したデータベースへのアクセス権を付与します。詳細については、「[Granting database permissions](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-database-permissions.html)」(データベース許可の付与) を参照してください。

1. クローラーが作成され実行されるアカウント (アカウント A) では、次の操作を行います。

   1.  AWS RAM コンソールを使用して、外部アカウント (アカウント B) から共有されたデータベースを受け入れます。詳細については、「[AWS Resource Access Manager からのリソース共有招待の承諾](https://docs.aws.amazon.com/lake-formation/latest/dg/accepting-ram-invite.html)」を参照してください。

   1.  クローラー用の IAM ロールを作成します。ロールに `lakeformation:GetDataAccess` ポリシーを追加します。

   1.  Lake Formation コンソール ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)) で、ターゲットの Amazon S3 ロケーションに対する**データロケーション**許可をクローラーの実行に使用される IAM ロールに付与して、クローラーが Lake Formation の送信先からデータを読み込めるようにします。詳細については、「[Granting data location permissions](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-location-permissions-local.html)」(データロケーション許可の付与) を参照してください。

   1.  共有データベースでリソースリンクを作成します。詳細については、「[Create a resource link](https://docs.aws.amazon.com/lake-formation/latest/dg/create-resource-link-database.html)」(リソースリンクを作成する) を参照してください。

   1.  クローラーロールに共有データベースと (`Describe`) リソースリンクに対するアクセス許可 (`Create`) を付与します。リソースリンクはクローラーの出力で指定されます。

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

      クロスアカウントクローリングの場合は、ターゲットの Amazon S3 ロケーションが Lake Formation で登録されている AWS アカウント ID を指定します。アカウント内クローリングでは、accountId フィールドはオプションです。  
![アカウント ID フィールドに 111111111111 が表示されている Lake Formation 設定セクション。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/cross-account-crawler.png)

------
#### [ 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://amzn-s3-demo-bucket"
                }
                ]
                },
   "SchemaChangePolicy": {
      "UpdateBehavior": "LOG",
      "DeleteBehavior": "LOG"
  },
  "RecrawlPolicy": {
    "RecrawlBehavior": "CRAWL_EVERYTHING"
  },
  "LineageConfiguration": {
    "CrawlerLineageSettings": "DISABLE"
  },
  "LakeFormationConfiguration": {
    "UseLakeFormationCredentials": true,
    "AccountId": "111111111111"
  },
  "Configuration": {
           "Version": 1.0,
           "CrawlerOutput": {
             "Partitions": { "AddOrUpdateBehavior": "InheritFromTable" },
             "Tables": {"AddOrUpdateBehavior": "MergeNewColumns" }
           },
           "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" }
         },
  "CrawlerSecurityConfiguration": "",
  "Tags": {
    "KeyName": ""
  }
}'
```

------

**注記**  
Lake Formation 認証情報を使用するクローラーは、Amazon S3 およびデータカタログターゲットでのみサポートされます。
Lake Formation 認証情報供給を使用するターゲットの場合、基盤となる Amazon S3 ロケーションは同じバケットに属している必要があります。例えば、すべてのターゲットロケーションが同じバケット (amzn-s3-demo-bucket1) にある限り、ユーザーは複数のターゲット (s3://amzn-s3-demo-bucket1/folder1、s3://amzn-s3-demo-bucket1/folder2) を使用できます。別のバケット (s3://amzn-s3-demo-bucket1/folder1、s3://amzn-s3-demo-bucket2/folder2) を指定することはできません。
現在、データカタログのターゲットクローラーでは、単一のカタログテーブルを含む単一のカタログターゲットのみが許可されています。