

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 l' AWS Glue accès entre comptes dans Athena pour Spark
<a name="spark-notebooks-cross-account-glue"></a>

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

## Étape 1 : Entrez AWS Glue, donnez accès aux rôles des consommateurs
<a name="spark-notebooks-cross-account-glue-in-aws-glue-provide-access-to-the-consumer-account"></a>

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

**Pour ajouter une 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 à la AWS Management Console.

1. Ouvrez la AWS Glue console à l'adresse [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

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

1. Sur la page des **paramètres du catalogue de données**, dans la section **Autorisations**, ajoutez une politique similaire à la suivante. Cette politique fournit des rôles pour l'*666666666666*accès du compte client au catalogue de données du compte propriétaire*999999999999*.

------
#### [ JSON ]

****  

   ```
   {
       "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 consommateur pour l’accès
<a name="spark-notebooks-cross-account-glue-configure-the-consumer-account-for-access"></a>

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

**Pour créer une AWS Glue politique d'accès au AWS Glue Data Catalog**

1. À l'aide du compte consommateur, connectez-vous à la AWS Management Console.

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

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

1. Choisissez **Create Policy** (Créer une politique).

1. Sur la page **Spécifier les autorisations**, choisissez **JSON**.

1. Dans l'**éditeur de politiques**, entrez une instruction JSON comme la suivante qui autorise AWS Glue des actions sur le catalogue de données du compte propriétaire.

------
#### [ JSON ]

****  

   ```
   {
       "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/*"
               ]
           }
       ]
   }
   ```

------

1. Choisissez **Suivant**.

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

1. Choisissez **Create Policy** (Créer une politique).

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

**Pour associer la AWS Glue politique aux rôles du compte client**

1. Dans le panneau de navigation de la console IAM du compte consommateur, sélectionnez **Rôles**.

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

1. Choisissez **Ajouter des autorisations**, puis **Attacher des politiques**.

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

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

1. 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
<a name="spark-notebooks-cross-account-glue-configure-a-session-and-create-a-query"></a>

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](notebooks-spark-getting-started.md#notebooks-spark-getting-started-creating-your-own-notebook) ou en [modifiant une session en cours](notebooks-spark-getting-started.md#notebooks-spark-getting-started-editing-session-details). Lorsque vous [configurez les propriétés de session](notebooks-spark-custom-jar-cfg.md#notebooks-spark-custom-jar-cfg-console), spécifiez l'une des options suivantes :
+ **Le séparateur de AWS Glue 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.
+ **L'ID du AWS Glue 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.

### Utiliser le séparateur de AWS Glue catalogue
<a name="spark-notebooks-cross-account-glue-using-the-glue-catalog-separator-approach"></a>

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()
```

### Utiliser l'ID du AWS Glue catalogue
<a name="spark-notebooks-cross-account-glue-using-the-glue-catalog-id-approach"></a>

Lorsque vous modifiez les propriétés de session, entrez la propriété suivante. Remplacez *999999999999* par 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
<a name="spark-notebooks-cross-account-glue-additional-resources"></a>

[Configuration de l'accès entre comptes aux catalogues de AWS Glue données](security-iam-cross-account-glue-catalog-access.md)

[Gérer les autorisations entre comptes à l'aide des deux AWS Glue et de Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/hybrid-cross-account.html) dans le *guide du AWS Lake Formation développeur*.

[Configurez l'accès entre comptes à un partage à AWS Glue Data Catalog l'aide d'Amazon](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-a-shared-aws-glue-data-catalog-using-amazon-athena.html) Athena *AWS dans Prescriptive* Guidance Patterns.