

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.

# Accès à Amazon S3 Tables à l’aide du point de terminaison AWS Glue Iceberg REST
<a name="s3-tables-integrating-glue-endpoint"></a>

Une fois que vos compartiments de tables S3 sont intégrés au, AWS Glue Data Catalog vous pouvez utiliser le AWS GlueIceberg REST point de terminaison pour vous connecter à vos tables S3 à partir de clients Apache Iceberg compatibles, tels que PyIceberg ou. Spark Le AWS Glue Iceberg REST point de terminaison implémente la [spécification Iceberg REST Catalog Open API](https://github.com/apache/iceberg/blob/main/open-api/rest-catalog-open-api.yaml) qui fournit une interface standardisée pour interagir avec Iceberg les tables. Pour accéder aux tables S3 à l'aide du point de terminaison, vous devez configurer les autorisations via une combinaison de politiques et d' AWS Lake Formation autorisations IAM. Les sections suivantes expliquent comment configurer l’accès, notamment en créant le rôle IAM nécessaire, en définissant les politiques requises et en établissant les autorisations Lake Formation pour l’accès à la base de données et au niveau de la table. 

Pour une description détaillée de l’utilisation de bout en bout avec PyIceberg, consultez [Accès aux données dans Amazon S3 Tables avec PyIceberg via le point de terminaison AWS Glue Iceberg REST](https://aws.amazon.com/blogs/storage/access-data-in-amazon-s3-tables-using-pyiceberg-through-the-aws-glue-iceberg-rest-endpoint/).

**Conditions préalables**
+ [Intégrez vos compartiments de table aux services d' AWS analyse](s3-tables-integrating-aws.md)
+ [Créer un espace de noms de table](s3-tables-namespace-create.md)
+ [Avoir accès à un compte d’administrateur de lac de données](https://docs.aws.amazon.com//lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin)

## Création d’un rôle IAM pour votre client
<a name="glue-endpoint-create-iam-role"></a>

Pour accéder aux tables via des AWS Glue points de terminaison, vous devez créer un rôle IAM avec des autorisations AWS Glue et des actions Lake Formation. Cette procédure explique comment créer ce rôle et configurer ses autorisations.

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

1. Dans le volet de navigation de gauche, choisissez **Politiques**.

1. Choisissez **Créer une politique**, puis **JSON** dans l’éditeur de politique.

1. Ajoutez la politique intégrée suivante qui accorde des autorisations d'accès AWS Glue et des actions relatives à Lake Formation :

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "glue:GetCatalog",
                   "glue:GetDatabase",
                   "glue:GetDatabases",
                   "glue:GetTable",
                   "glue:GetTables",
                   "glue:CreateTable",
                   "glue:UpdateTable"
               ],
               "Resource": [
                   "arn:aws:glue:us-east-1:111122223333:catalog",
                   "arn:aws:glue:us-east-1:111122223333:catalog/s3tablescatalog",
                   "arn:aws:glue:us-east-1:111122223333:catalog/s3tablescatalog/amzn-s3-demo-table-bucket",
                   "arn:aws:glue:us-east-1:111122223333:table/s3tablescatalog/amzn-s3-demo-table-bucket/{{<namespace>}}/*",
                   "arn:aws:glue:us-east-1:111122223333:database/s3tablescatalog/amzn-s3-demo-table-bucket/{{<namespace>}}"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "lakeformation:GetDataAccess"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Une fois que vous avez créé cette politique, créez un rôle IAM et choisissez **Politique d’approbation personnalisée** comme **Type d’entité approuvée**.

1. Entrez ce qui suit pour la **Politique d’approbation personnalisée**.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::{{111122223333}}:role/{{Admin_role}}"
               },
               "Action": "sts:AssumeRole",
               "Condition": {}
           }
       ]
   }
   ```

------

## Définition de l’accès dans Lake Formation
<a name="define-access-lakeformation"></a>

Lake Formation fournit un contrôle précis des accès pour vos tables de lac de données. Lorsque vous avez intégré votre compartiment S3 au AWS Glue Data Catalog, vos tables ont été automatiquement enregistrées en tant que ressources dans Lake Formation. Pour accéder à ces tables, vous devez accorder des autorisations spécifiques à Lake Formation pour votre identité IAM, en plus de ses autorisations de politique IAM.

Les étapes suivantes expliquent comment appliquer les contrôles d’accès Lake Formation pour permettre à votre client Iceberg de se connecter à vos tables. Vous devez vous connecter en tant qu’administrateur du lac de données pour appliquer ces autorisations.

### Autorisation des moteurs externes à accéder aux données des tables
<a name="allow-external-engines"></a>

Dans Lake Formation, vous devez activer l’accès complet aux tables pour que les moteurs externes puissent accéder aux données. Cela permet aux applications tierces d’obtenir des informations d’identification temporaires auprès de Lake Formation lorsqu’elles utilisent un rôle IAM disposant d’autorisations complètes sur la table demandée.

Ouvrez la console Lake Formation à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Ouvrez la console Lake Formation à l'[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)adresse et connectez-vous en tant qu'administrateur de lac de données.

1. Dans le panneau de navigation, sous **Administration**, choisissez **Paramètres d’intégration des applications**.

1. Sélectionnez **Autoriser les moteurs externes à accéder aux données dans les emplacements Amazon S3 avec un accès complet aux tables**. Ensuite, choisissez **Save** (Enregistrer).

### Octroi des autorisations Lake Formation sur vos ressources de table
<a name="grant-lakeformation-permissions"></a>

Accordez ensuite des autorisations Lake Formation pour le rôle IAM que vous avez créé pour votre client compatible avec Iceberg. Ces autorisations permettront au rôle de créer et de gérer des tables dans votre espace de noms. Vous devez fournir des autorisations au niveau de la base de données et au niveau de la table. Pour de plus amples informations, veuillez consulter [Octroi de l’autorisation Lake Formation sur une table ou une base de données](grant-permissions-tables.md#grant-lf-table).

## Configuration de votre environnement pour utiliser le point de terminaison
<a name="setup-client-glue-irc"></a>

Après avoir configuré le rôle IAM avec les autorisations requises pour accéder aux tables, vous pouvez l'utiliser pour exécuter des Iceberg clients depuis votre machine locale en le configurant AWS CLI avec votre rôle, à l'aide de la commande suivante :

```
aws sts assume-role --role-arn "arn:aws:iam::{{<accountid>}}:role/{{<glue-irc-role>}}" --role-session-name {{<glue-irc-role>}}
```

Pour accéder aux tables via le AWS Glue REST point de terminaison, vous devez initialiser un catalogue dans votre client Iceberg compatible. Cette initialisation nécessite de spécifier des propriétés personnalisées, notamment les propriétés sigv4, l’URI du point de terminaison et l’emplacement de l’entrepôt. Spécifiez ces propriétés comme suit :
+ Propriétés Sigv4 : Sigv4 doit être activé, le nom de signature est `glue`
+ Emplacement de l’entrepôt : il s’agit de votre compartiment de table, spécifié dans ce format : `{{<accountid>}}:s3tablescatalog/{{<table-bucket-name>}}`
+ URI du point de terminaison : reportez-vous au guide de référence des points AWS Glue de terminaison de service pour le point de terminaison spécifique à la région

L’exemple suivant montre comment initialiser un catalogue pyIceberg.

```
rest_catalog = load_catalog(
        {{s3tablescatalog}},
**{
"type": "rest",
"warehouse": "{{<accountid>}}:s3tablescatalog/{{<table-bucket-name>}}",
"uri": "https://glue.{{<region>}}.amazonaws.com/iceberg",
"rest.sigv4-enabled": "true",
"rest.signing-name": "glue",
"rest.signing-region": region
        }
)
```

Pour plus d’informations sur l’implémentation du point de terminaison AWS Glue Iceberg REST, consultez [Connexion au catalogue de données à l’aide du point de terminaison AWS Glue Iceberg REST](https://docs.aws.amazon.com/glue/latest/dg/connect-glu-iceberg-rest.html) dans le *Guide de l’utilisateur AWS Glue *.