Configurer plusieurs comptes AWS Glue accès à Athena pour Spark - Amazon Athena

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.

Configurer plusieurs comptes AWS Glue accès à Athena pour Spark

Cette rubrique explique comment le compte consommateur 666666666666 et compte propriétaire 999999999999 peut être configuré pour plusieurs comptes AWS Glue accès. Lorsque les comptes sont configurés, le compte client peut exécuter des requêtes depuis Athena pour Spark sur le AWS Glue bases de données et tables.

Étape 1 : Entrée AWS Glue, donner accès aux rôles des consommateurs

Entrée AWS Glue, le propriétaire crée une politique qui permet aux rôles du consommateur d'accéder à ceux du propriétaire AWS Glue catalogue de données.

Pour ajouter un AWS Glue politique qui autorise un rôle de consommateur à accéder au catalogue de données du propriétaire
  1. À l'aide du compte du propriétaire du catalogue, connectez-vous au AWS Management Console.

  2. Ouvrez le fichier AWS Glue console à https://console.aws.amazon.com/glue/.

  3. Dans le panneau de navigation, développez Catalogue de données, puis choisissez Paramètres du catalogue.

  4. Sur la page des paramètres du catalogue de données, dans la section Autorisations, ajoutez une politique similaire à la suivante. Cette politique définit les rôles du compte client 666666666666 accès au catalogue de données dans le compte propriétaire 999999999999.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Cataloguers", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::666666666666:role/Admin", "arn:aws:iam::666666666666:role/AWSAthenaSparkExecutionRole" ] }, "Action": "glue:*", "Resource": [ "arn:aws:glue:us-west-2:999999999999:catalog", "arn:aws:glue:us-west-2:999999999999:database/*", "arn:aws:glue:us-west-2:999999999999:table/*" ] } ] }

Étape 2 : Configuration du compte client pour l'accès

Dans le compte client, créez une politique pour autoriser l'accès au AWS Glue Data Catalog, des bases de données et des tables, et attachez la politique à un rôle. L'exemple suivant utilise un compte client 666666666666.

Pour créer un AWS Glue politique d'accès au AWS Glue Data Catalog
  1. À l'aide du compte client, connectez-vous au AWS Management Console.

  2. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

  3. Dans le panneau de navigation, développez Gestion des accès, puis choisissez Politiques.

  4. Choisissez Create Policy (Créer une politique).

  5. Sur la page Spécifier les autorisations, sélectionnez JSON.

  6. Dans l'éditeur de stratégie, entrez une JSON instruction semblable à la suivante qui permet AWS Glue actions sur le catalogue de données du compte propriétaire.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glue:*", "Resource": [ "arn:aws:glue:us-east-1:999999999999:catalog", "arn:aws:glue:us-east-1:999999999999:database/*", "arn:aws:glue:us-east-1:999999999999:table/*" ] } ] }
  7. Choisissez Suivant.

  8. Sur la page Examiner et créer, dans Nom de la politique, saisissez un nom pour la politique.

  9. Choisissez Create Policy (Créer une politique).

Ensuite, vous utilisez la IAM console du compte client pour associer la politique que vous venez de créer au IAM ou aux rôles que le compte client utilisera pour accéder au catalogue de données du propriétaire.

Pour joindre le AWS Glue politique relative aux rôles dans le compte client
  1. Dans le volet de navigation de IAM la console du compte client, sélectionnez Rôles.

  2. Sur la page Rôles, recherchez le rôle auquel vous souhaitez attacher la politique.

  3. Choisissez Ajouter des autorisations, puis Attacher des politiques.

  4. Recherchez la politique que vous venez de créer.

  5. Cochez la case correspondant à la politique, puis choisissez Ajouter des autorisations.

  6. Répétez les étapes pour ajouter la politique aux autres rôles que vous souhaitez utiliser.

Étape 3 : Configuration d'une session et création d'une requête

Dans Athena Spark, dans le compte du demandeur, à l'aide du rôle spécifié, créez une session pour tester l'accès en créant un bloc-notes ou en modifiant une session en cours. Lorsque vous configurez les propriétés de session, spécifiez l'une des options suivantes :

  • Le AWS Glue séparateur de catalogue  : avec cette approche, vous incluez l'identifiant du compte du propriétaire dans vos requêtes. Utilisez cette méthode si vous comptez utiliser la session pour interroger des catalogues de données provenant de différents propriétaires.

  • Le AWS Glue ID du catalogue  : avec cette approche, vous interrogez directement la base de données. Cette méthode est plus pratique si vous comptez utiliser la session pour interroger uniquement le catalogue de données d'un seul propriétaire.

Lorsque vous modifiez les propriétés de session, ajoutez les éléments suivants :

{ "spark.hadoop.aws.glue.catalog.separator": "/" }

Lorsque vous exécutez une requête dans une cellule, utilisez une syntaxe similaire à celle décrite dans l'exemple suivant. Notez que dans la clause FROM, l'ID du catalogue et le séparateur sont requis devant le nom de la base de données.

df = spark.sql('SELECT requestip, uri, method, status FROM `999999999999/mydatabase`.cloudfront_logs LIMIT 5') df.show()

Lorsque vous modifiez les propriétés de session, entrez la propriété suivante. Remplacez 999999999999 avec le numéro de compte du propriétaire.

{ "spark.hadoop.hive.metastore.glue.catalogid": "999999999999" }

Lorsque vous exécutez une requête dans une cellule, utilisez une syntaxe similaire à celle ci-dessous. Notez que dans la clause FROM, l'ID du catalogue et le séparateur ne sont pas requis devant le nom de la base de données.

df = spark.sql('SELECT * FROM mydatabase.cloudfront_logs LIMIT 10') df.show()

Ressources supplémentaires

Configurer l'accès entre comptes à AWS Glue catalogues de données

Gérer les autorisations entre comptes en utilisant les deux AWS Glue et Lake Formation dans le AWS Lake Formation Guide du développeur.

Configurer l'accès entre comptes à un compte partagé AWS Glue Data Catalog utilisation d'Amazon Athena dans AWS Modèles d'orientation prescriptifs.