Configuration requise lorsque le crawler et l'emplacement Amazon S3 enregistré se trouvent dans des comptes différents (indexation de site web entre comptes) - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration requise lorsque le crawler et l'emplacement Amazon S3 enregistré se trouvent dans des comptes différents (indexation de site web entre comptes)

Pour permettre au crawler d'accéder à un magasin de données sur un autre compte à l'aide des informations d'identification Lake Formation, vous devez d'abord enregistrer l'emplacement des données Amazon S3 auprès de Lake Formation. Ensuite, vous accordez des autorisations de localisation des données au compte du crawler en procédant comme suit.

Vous pouvez effectuer les étapes suivantes à l'aide du AWS Management Console ou AWS CLI.

AWS Management Console
  1. Dans le compte sur lequel l'emplacement Amazon S3 est enregistré (compte B) :

    1. Enregistrez un chemin Amazon S3 dans Lake Formation. Pour plus d'informations, consultez la rubrique Enregistrement d'un emplacement Amazon S3.

    2. Accordez des autorisations Data location (Emplacement des données) au compte (compte A) sur lequel le crawler sera exécuté. Pour plus d'informations, consultez la rubrique Octroi d'autorisations d'emplacement de données.

    3. Créez une base de données vide dans Lake Formation avec l'emplacement sous-jacent comme emplacement Amazon S3 cible. Pour plus d'informations, consultez la rubrique Création d'une base de données.

    4. Accordez au compte A (le compte sur lequel le crawler sera exécuté) l'accès à la base de données que vous avez créée à l'étape précédente. Pour plus d'informations, consultez la rubrique Octroi d'autorisations de base de données.

  2. Dans le compte sur lequel le crawler est créé et sera exécuté (compte A) :

    1. À l'aide de la AWS RAM console, acceptez la base de données partagée depuis le compte externe (compte B). Pour plus d'informations, consultez la section Acceptation d'une invitation de partage de ressources provenant de AWS Resource Access Manager.

    2. Créez un rôle IAM pour le crawler. Ajoutez une stratégie lakeformation:GetDataAccess au rôle.

    3. Dans la console Lake Formation (https://console.aws.amazon.com/lakeformation/), accordez des autorisations Data location (Emplacement des données) sur l'emplacement Amazon S3 cible au rôle IAM utilisé pour l'exécution du crawler afin que le crawler puisse lire les données depuis la destination dans Lake Formation. Pour plus d'informations, consultez la rubrique Octroi d'autorisations d'emplacement de données.

    4. Créez un lien de ressource sur la base de données partagée. Pour plus d'informations, consultez la rubrique Création d'un lien de ressources.

    5. Accordez les autorisations d'accès au rôle de crawler (Create) sur la base de données partagée et (Describe) le lien de ressource. Le lien de ressource est spécifié dans la sortie du crawler.

    6. Dans la AWS Glue console (https://console.aws.amazon.com/glue/), lors de la configuration du robot d'exploration, sélectionnez l'option Utiliser les informations d'identification de Lake Formation pour analyser la source de données Amazon S3.

      Pour l'exploration entre comptes, spécifiez l' Compte AWS ID auquel l'emplacement Amazon S3 cible est enregistré auprès de Lake Formation. Le champ accountId est facultatif pour l'indexation de site web intégrée au compte.

      IAM role selection and Lake Formation configuration options for AWS Glue crawler security settings.
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": "111111111111" }, "Configuration": { "Version": 1.0, "CrawlerOutput": { "Partitions": { "AddOrUpdateBehavior": "InheritFromTable" }, "Tables": {"AddOrUpdateBehavior": "MergeNewColumns" } }, "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" } }, "CrawlerSecurityConfiguration": "", "Tags": { "KeyName": "" } }'
Note
  • Un crawler utilisant les informations d'identification Lake Formation n'est pris en charge que pour les cibles Amazon S3 et du catalogue de données.

  • Pour les cibles utilisant le distributeur d'informations d'identification Lake Formation, les emplacements Amazon S3 sous-jacents doivent appartenir au même compartiment. Par exemple, les clients peuvent utiliser plusieurs cibles (s3://bucket1/folder1, s3://bucket1/folder2) à condition que tous les emplacements cibles se trouvent dans le même compartiment (bucket1). La spécification de différents compartiments (s3://bucket1/folder1, s3://bucket2/folder2) n'est pas autorisée.

  • Actuellement, pour les crawlers de cible du catalogue de données, une seule cible de catalogue avec une seule table de catalogue est autorisée.