

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.

# Intégration d'Amazon S3 Tables avec AWS Glue Data Catalog et AWS Lake Formation
<a name="create-s3-tables-catalog"></a>

[Les tables Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables.html) fournissent un stockage S3 spécifiquement optimisé pour les charges de travail d'analyse, améliorant ainsi les performances des requêtes tout en réduisant les coûts. Les données figurant dans S3 Tables sont stockées dans un nouveau type de compartiment : un *compartiment de tables*, qui stocke les tables en tant que sous-ressources. Les tables S3 prennent en charge la norme Apache Iceberg, qui vous permet d'interroger facilement des données tabulaires dans des compartiments de tables Amazon S3 à l'aide de moteurs de requête populaires tels qu'Apache Spark.

Vous pouvez intégrer les tables Amazon S3 à AWS Glue Data Catalog l'aide de contrôles d'accès IAM ou de subventions IAM et Lake Formation :
+ **Contrôle d'accès IAM** : utilise des politiques IAM pour contrôler l'accès aux tables S3 et au catalogue de données. Dans cette approche de contrôle d'accès, vous avez besoin d'autorisations IAM sur les ressources des tables S3 et sur les objets du catalogue de données pour accéder aux ressources.
+ **Contrôle d'accès à Lake Formation** : utilise AWS Lake Formation des autorisations en plus des autorisations AWS Glue IAM pour contrôler l'accès aux tables S3 via le catalogue de données. Dans ce mode, les principaux ont besoin d'autorisations IAM pour interagir avec le catalogue de données, et les subventions de Lake Formation déterminent les ressources du catalogue (bases de données, tables, colonnes, lignes) auxquelles le principal peut accéder. Ce mode prend en charge à la fois un contrôle d'accès grossier (autorisations au niveau de la base de données et au niveau de la table) et un contrôle d'accès détaillé (sécurité au niveau des colonnes et au niveau des lignes). Lorsqu'un rôle enregistré est configuré et que la vente d'informations d'identification est activée, les autorisations IAM de S3 Tables ne sont pas requises pour le principal, car Lake Formation vend les informations d'identification au nom du principal en utilisant le rôle enregistré. Le contrôle d'accès à Lake Formation prend également en charge la vente d'informations d'identification pour les moteurs d'analyse tiers.

Cette section fournit des conseils pour configurer l'intégration avec AWS Lake Formation pour les scénarios suivants :
+ **Scénario A** : vous avez intégré les tables S3 et le catalogue de données à l'aide des contrôles d'accès IAM et vous prévoyez maintenant de les utiliser AWS Lake Formation. Pour en savoir plus, consultez [Modification des contrôles d'accès pour l'intégration des tables S3](manage-s3tables-catalog-integration.md).
+ **Scénario B** : Vous prévoyez d'intégrer les tables S3 et le catalogue de données à l'aide de votre compte AWS Lake Formation et de votre région, mais vous ne les avez pas intégrés à votre compte et à votre région aujourd'hui. Commencez par la [Conditions préalables à l'intégration du catalogue de tables Amazon S3 au catalogue de données et à Lake Formation](s3tables-catalog-prerequisites.md) section et suivez[Activation de l'intégration des tables Amazon S3](enable-s3-tables-catalog-integration.md).
+ **Scénario C** : Vous avez intégré les tables S3 et le catalogue de données à l'aide d'IAM AWS Lake Formation et vous prévoyez maintenant d'utiliser IAM. Pour en savoir plus, consultez [Modification des contrôles d'accès pour l'intégration des tables S3](manage-s3tables-catalog-integration.md).

Assurez-vous de suivre les étapes décrites dans la [section Intégration des tables S3 aux services d' AWS analyse](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html) afin de disposer des autorisations appropriées pour accéder aux AWS Glue Data Catalog ressources de vos tables et pour utiliser les services d' AWS analyse.

**Topics**
+ [Comment fonctionne l'intégration du catalogue de données et de la Lake Formation](#w2aac13c27c19)
+ [Conditions préalables à l'intégration du catalogue de tables Amazon S3 au catalogue de données et à Lake Formation](s3tables-catalog-prerequisites.md)
+ [Activation de l'intégration des tables Amazon S3](enable-s3-tables-catalog-integration.md)
+ [Création de bases de données et de tables dans le catalogue de tables S3](create-databases-tables-s3-catalog.md)
+ [Enregistrement d'un compartiment de table Amazon S3 dans un autre AWS compte](register-cross-account-s3-table-bucket.md)
+ [Octroi d’autorisations](s3-tables-grant-permissions.md)

## Comment fonctionne l'intégration du catalogue de données et de la Lake Formation
<a name="w2aac13c27c19"></a>

Lorsque vous intégrez le catalogue de tables S3 au catalogue de données et à Lake Formation, le AWS Glue service crée un catalogue fédéré unique appelé `s3tablescatalog` dans le catalogue de données par défaut de votre compte, spécifique à votre Région AWS compte. L'intégration mappe toutes les ressources du bucket de tables Amazon S3 de votre compte Région AWS et du catalogue fédéré de la manière suivante :
+ Les compartiments de table Amazon S3 deviennent un catalogue à plusieurs niveaux dans le catalogue de données.
+ L'espace de noms Amazon S3 associé est enregistré en tant que base de données dans le catalogue de données.
+ Les tables Amazon S3 du compartiment de tables deviennent des tables du catalogue de données.

![\[Cartographie d'objets entre les tables S3 et AWS Glue Data Catalog.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/S3Tables-glue-catalog.png)


 Après l'intégration à Lake Formation, vous pouvez créer des tables Apache Iceberg dans le catalogue de compartiments de tables et y accéder via des moteurs AWS d'analyse intégrés tels qu' Amazon Athena Amazon EMR ainsi que des moteurs d'analyse tiers. 

Lorsque vous activez également l'intégration de Lake Formation, cela permet un contrôle d'accès précis. AWS Lake Formation Cette approche de sécurité signifie qu'en plus des autorisations Gestion des identités et des accès AWS (IAM), vous devez accorder à votre principal IAM des autorisations Lake Formation sur vos tables avant de pouvoir travailler avec elles.

Il existe deux principaux types d’autorisations dans AWS Lake Formation :
+ Les autorisations d’accès aux métadonnées contrôlent la capacité de créer, de lire, de mettre à jour et de supprimer des bases de données et des tables de métadonnées dans le catalogue de données.
+ Les autorisations d’accès aux données sous-jacentes contrôlent la capacité à lire et à écrire des données dans les emplacements Amazon S3 sous-jacents vers lesquels pointent les ressources du catalogue de données.

Lake Formation utilise une combinaison de son propre modèle d’autorisations et du modèle d’autorisations IAM pour contrôler l’accès aux ressources des catalogues de données et aux données sous-jacentes :
+ Pour qu’une demande d’accès aux ressources du catalogue de données ou aux données sous-jacentes aboutisse, elle doit passer les contrôles d’autorisation par IAM et Lake Formation.
+ Les autorisations IAM contrôlent l'accès à la Formation AWS Glue APIs et aux ressources du lac, tandis que les autorisations Lake Formation contrôlent l'accès aux ressources du catalogue de données, aux sites Amazon S3 et aux données sous-jacentes.

Les autorisations Lake Formation ne s’appliquent que dans la région dans laquelle elles ont été accordées, et un principal doit être autorisé par un administrateur de lac de données ou un autre principal disposant des autorisations nécessaires pour obtenir les autorisations Lake Formation.

# Conditions préalables à l'intégration du catalogue de tables Amazon S3 au catalogue de données et à Lake Formation
<a name="s3tables-catalog-prerequisites"></a>

Vous trouverez ci-dessous les conditions requises pour activer l'intégration des tables Amazon S3 avec AWS Glue Data Catalog et AWS Lake Formation.

1.  Lorsque vous activez l'intégration des tables Amazon S3, Lake Formation enregistre automatiquement l'emplacement des tables S3. Pour enregistrer l'emplacement du bucket de table auprès de Lake Formation, vous avez besoin d'un IAM role/user avec `lakeformation:RegisterResource``lakeformation:RegisterResourceWithPrivilegedAccess`, et `lakeformation:CreateCatalog` autorisations. Lorsqu'un utilisateur non administrateur disposant de ces autorisations enregistre l'emplacement d'un catalogue, Lake Formation lui accorde automatiquement l'`DATA_LOCATION_ACCESS`autorisation pour cet emplacement, ce qui permet au principal appelant d'effectuer toutes les opérations de Lake Formation prises en charge sur l'emplacement de données enregistré.

1. <a name="step3-permissions"></a> Lorsque vous activez l'intégration des tables S3, vous devez choisir un rôle IAM pour que Lake Formation fournisse des informations d'identification permettant l'accès aux données. Créez un rôle IAM pour accéder aux données de Lake Formation à vos compartiments de tables S3. Le rôle IAM utilisé lors de l'enregistrement du bucket de table auprès de Lake Formation nécessite les autorisations suivantes : 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "LakeFormationPermissionsForS3ListTableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:ListTableBuckets"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:CreateTableBucket",
                   "s3tables:GetTableBucket",
                   "s3tables:CreateNamespace",
                   "s3tables:GetNamespace",
                   "s3tables:ListNamespaces",
                   "s3tables:DeleteNamespace",
                   "s3tables:DeleteTableBucket",
                   "s3tables:CreateTable",
                   "s3tables:DeleteTable",
                   "s3tables:GetTable",
                   "s3tables:ListTables",
                   "s3tables:RenameTable",
                   "s3tables:UpdateTableMetadataLocation",
                   "s3tables:GetTableMetadataLocation",
                   "s3tables:GetTableData",
                   "s3tables:PutTableData"
               ],
               "Resource": [
                   "arn:aws:s3tables:us-east-1:123456789012:bucket/*"
               ]
           }
       ]
   }
   ```

------

   Pour de plus amples informations, veuillez consulter [Exigences relatives aux rôles utilisés pour enregistrer des sites](registration-role.md).

1.  Ajoutez la politique de confiance suivante au rôle IAM pour permettre au service Lake Formation d'assumer le rôle et de vendre des informations d'identification temporaires aux moteurs d'analyse intégrés. 

   ```
   {
     "Effect": "Allow",
     "Principal": {
       "Service": "lakeformation.amazonaws.com"
     },
     "Action": [
       "sts:AssumeRole",
       "sts:SetSourceIdentity",
       "sts:SetContext"  # add action to trust relationship when using IAM Identity center principals with Lake Formation
     ]
   }
   ```

**Note**  
Le processus d'intégration des services d' AWS analyse a été mis à jour. Si vous avez configuré l’intégration avec la version préliminaire, vous pouvez continuer à utiliser votre intégration actuelle. Cependant, le processus d'intégration mis à jour permet d'améliorer les performances. Pour mettre à jour l'intégration :  
Supprimez d'abord votre catalogue de tables S3 existant dans Lake Formation. Pour supprimer le catalogue, sélectionnez-le dans `s3tablescatalog` la liste des catalogues, puis choisissez **Supprimer** des **actions**.
Ensuite, désenregistrez l'emplacement des données pour. `s3tablescatalog`  
Sur la console Lake Formation, dans la section **Administrations**, choisissez **Data Locations**.
Sélectionnez un emplacement, puis dans le menu **Actions**, choisissez **Supprimer**.
Lorsque vous êtes invité à confirmer, choisissez **Supprimer**.  
Pour obtenir des instructions détaillées sur le désenregistrement d'un emplacement de données, consultez la section. [Annulation de l'enregistrement d'un site Amazon S3](unregister-location.md)
Suivez ensuite les étapes d'intégration mises à jour dans la [Activation de l'intégration des tables Amazon S3](enable-s3-tables-catalog-integration.md) section.

# Activation de l'intégration des tables Amazon S3
<a name="enable-s3-tables-catalog-integration"></a>

Vous pouvez créer des compartiments de table Amazon S3 à l'aide de la console Amazon S3 et les intégrer aux services AWS d'analyse. Pour plus d'informations, consultez [Utilisation des tables Amazon S3 avec des services AWS d'analyse](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html). 

 Dans AWS Lake Formation, vous pouvez activer l'intégration d'Amazon S3 Tables avec AWS Glue Data Catalog et AWS Lake Formation à l'aide de la console Lake Formation ou utiliser AWS CLI. 

## Pour intégrer les tables Amazon S3 au catalogue de données et à Lake Formation (console)
<a name="w2aac13c27c23b7b1"></a>

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

1. Dans le volet de navigation, sélectionnez **Catalogues** sous **Catalogue de données**.

1. Choisissez **Activer l'intégration des tables S3** sur la page **Catalogues**.   
![\[L'option d'activation de l'intégration des tables S3 sur la page des catalogues.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/enable-s3-table-integration.png)

1.  Choisissez un rôle IAM doté des autorisations requises pour que Lake Formation puisse assumer la vente d'informations d'identification aux moteurs de requêtes analytiques. Pour connaître les autorisations requises pour que le rôle puisse accéder aux données, consultez [step3-permissions](s3tables-catalog-prerequisites.md#step3-permissions) la section sur les conditions préalables.   
![\[L'écran d'activation de l'intégration S3 avec le rôle IAM.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/enable-s3-table-catalog.png)

1.  Sélectionnez **Autoriser les moteurs externes à accéder aux données dans les emplacements Amazon S3 avec l'option d'accès complet aux tables**. Lorsque vous activez l'accès complet aux tables pour des moteurs tiers, Lake Formation renvoie directement les informations d'identification au moteur tiers sans effectuer de validation des balises de session IAM. Cela signifie que vous ne pouvez pas appliquer de contrôles d'accès précis à Lake Formation aux tables auxquelles vous accédez. 

1. Sélectionnez **Activer**. Le nouveau catalogue des tables S3 est ajouté à la liste des catalogues. Lorsque vous activez l'intégration du catalogue de tables S3, le service enregistre l'emplacement des données du compartiment de tables S3 auprès de Lake Formation.

1. Choisissez le catalogue pour afficher les objets du catalogue et accorder des autorisations aux autres principaux.   
![\[Le catalogue de tables S3\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/s3-table-catalog.png)

   Pour créer des catalogues à plusieurs niveaux, consultez la section [Création d'un compartiment de tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) dans le guide de l'utilisateur d'Amazon Simple Storage Service.

## Pour intégrer les tables Amazon S3 au catalogue de données et au Lake Formation (CLI)
<a name="w2aac13c27c23b7b3"></a>

En suivant la section sur les conditions préalables, créez un rôle de service IAM qui permet à Lake Formation d'accéder aux ressources de votre table.

1. Créez un fichier `Role-Trust-Policy.json` contenant la stratégie d’approbation suivante :

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
         {
           "Sid": "LakeFormationDataAccessPolicy",
           "Effect": "Allow",
           "Principal": {
             "Service": "lakeformation.amazonaws.com"
           },
           "Action": [
               "sts:AssumeRole",
               "sts:SetContext",
               "sts:SetSourceIdentity"
           ],
           "Condition": {
             "StringEquals": {
               "aws:SourceAccount": "111122223333"
             }
           }
         }
       ]
   }
   ```

1. Créez le rôle de service IAM à l’aide de la commande suivante :

   ```
   aws iam create-role \
     --role-name S3TablesRoleForLakeFormation \
     --assume-role-policy-document file://Role-Trust-Policy.json
   ```

1. Créez un fichier `LF-GluePolicy.json` contenant la stratégie suivante :

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "LakeFormationPermissionsForS3ListTableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:ListTableBuckets"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Sid": "LakeFormationDataAccessPermissionsForS3TableBucket",
               "Effect": "Allow",
               "Action": [
                   "s3tables:CreateTableBucket",
                   "s3tables:GetTableBucket",
                   "s3tables:CreateNamespace",
                   "s3tables:GetNamespace",
                   "s3tables:ListNamespaces",
                   "s3tables:DeleteNamespace",
                   "s3tables:DeleteTableBucket",
                   "s3tables:CreateTable",
                   "s3tables:DeleteTable",
                   "s3tables:GetTable",
                   "s3tables:ListTables",
                   "s3tables:RenameTable",
                   "s3tables:UpdateTableMetadataLocation",
                   "s3tables:GetTableMetadataLocation",
                   "s3tables:GetTableData",
                   "s3tables:PutTableData"
               ],
               "Resource": [
                   "arn:aws:s3tables:us-east-1:111122223333:bucket/*"
               ]
           }
       ]
   }
   ```

1. Attachez la stratégie au rôle en utilisant la commande suivante :

   ```
   aws iam put-role-policy \
     --role-name S3TablesRoleForLakeFormation \
     --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \
     --policy-document file://LF-GluePolicy.json
   ```

1. Créez un fichier `input.json` contenant ce qui suit :

   ```
   {
       "ResourceArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/*",
       "WithFederation": true,
       "RoleArn": "arn:aws:iam::111122223333:role/S3TablesRoleForLakeFormation"
   }
   ```

1. Enregistrez les compartiments de table auprès de Lake Formation en utilisant la commande suivante :

   ```
   aws lakeformation register-resource \
     --region us-east-1 \
     --with-privileged-access \
     --cli-input-json file://input.json
   ```

1. Créez un fichier `catalog.json` contenant le catalogue qui suit :

   ```
   {
      "Name": "s3tablescatalog",
      "CatalogInput": {
         "FederatedCatalog": {
             "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*",
             "ConnectionName": "aws:s3tables"
          },
          "CreateDatabaseDefaultPermissions": [],
          "CreateTableDefaultPermissions": [],
          "AllowFullTableExternalDataAccess": "True"
      }
   }
   ```

1. Créez le catalogue `s3tablescatalog` à l’aide de la ligne de commande suivante. La création de ce catalogue remplit le AWS Glue Data Catalog avec des objets correspondant à des compartiments de tables, à des espaces de noms et à des tables.

   ```
   aws glue create-catalog \
     --region us-east-1 \
     --cli-input-json file://catalog.json
   ```

1. Vérifiez que le `s3tablescatalog` catalogue a été ajouté à AWS Glue l'aide de la commande suivante :

   ```
   aws glue get-catalog --catalog-id s3tablescatalog
   ```

# Création de bases de données et de tables dans le catalogue de tables S3
<a name="create-databases-tables-s3-catalog"></a>

 Vous pouvez créer des bases de données pour organiser vos tables Apache Iceberg, ainsi que des tables pour définir le schéma et l'emplacement de vos données dans le catalogue de tables S3. 

## Création d'une base de données (console)
<a name="w2aac13c27c25b5b1"></a>

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

1. Dans le volet de navigation, sélectionnez **Bases de données** sous **Catalogue de données**.

1. Choisissez **Créer une base de données**.

1.  Sur la page **Créer une base** de données, choisissez l'option **Base** de données et entrez les informations suivantes : 
   + **Nom : nom** unique pour la base de données
   + **Catalogue de données** : choisissez le catalogue de tables S3. La base de données résidera dans ce catalogue.
   + **Description** — (Facultatif) Ajoutez une description et un emplacement. 
   + **Contrôle d'accès IAM pour les nouvelles tables** : sélectionnez éventuellement Utiliser uniquement le contrôle d'accès IAM pour les nouvelles tables de cette base de données. Pour plus d'informations sur cette option, consultez la section [Modification des paramètres par défaut de votre lac de données](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html). 
   + Choisissez **Créer une base de données**. Vous pouvez voir la base de données créée dans le catalogue des tables S3.

## Créez une base de données à l'aide de AWS CLI
<a name="w2aac13c27c25b5b3"></a>

La commande CLI suivante montre comment créer une base de données dans le catalogue de tables S3.

```
aws glue create-database 
--region us-east-1 \
--catalog-id "123456789012:s3tablescatalog/test" \
--database-input \
 '{ "Name": "testglueclidbcreation" }'
```

## Création d'une table (AWS Management Console)
<a name="w2aac13c27c25b5b5"></a>

 Vous pouvez créer des tables de métadonnées Apache Iceberg dans le catalogue de tables S3 à l'aide de la console Lake Formation ou de l' AWS Glue `CreateTable`API. 

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 ou en tant qu'utilisateur `CreateTable` autorisé.

1. Dans le volet de navigation, sélectionnez **Tables** sous Catalogue de données.

1. Choisissez Créer un tableau.

1. Sur la page **Créer une table**, entrez les détails de la table :  
![\[Le catalogue de tables S3\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/s3-catalog-create-table.png)
   + **Nom** — Entrez un nom unique pour la table.
   + **Catalogue** — Choisissez le catalogue des tables S3 comme catalogue.
   + **Base de données** — Choisissez la base de données dans le catalogue des tables S3.
   +  **Description** — Entrez une description pour le tableau. 
   + **Schéma** — Choisissez Ajouter des colonnes pour ajouter des colonnes et les types de données des colonnes. Vous avez la possibilité de créer une table vide et de mettre à jour le schéma ultérieurement. Iceberg vous permet de faire évoluer le schéma et la partition après avoir créé la table. Vous pouvez utiliser des requêtes Athena pour mettre à jour le schéma de table et des requêtes Spark pour mettre à jour les partitions. 

1. Sélectionnez **Soumettre**.

## Création d'une table (AWS CLI)
<a name="w2aac13c27c25b5b7"></a>

```
aws glue create-table \ 
--database-name "testglueclidbcreation" \ 
--catalog-id "123456789012:s3tablescatalog/test" \ 
--region us-east-1 \ 
--table-input \ 
'{ "Name": "testtablegluecli", "Parameters": { "format": "ICEBERG" }, "StorageDescriptor": { "Columns": [ {"Name": "x", "Type": "int", "Parameters": {"required": "true"}} ] } }'
```

# Enregistrement d'un compartiment de table Amazon S3 dans un autre AWS compte
<a name="register-cross-account-s3-table-bucket"></a>

Vous pouvez enregistrer des compartiments de table Amazon S3 individuels (format ARN :`arn:aws:s3tables:us-east-1:account-id:bucket/bucket-name`) à partir d'un AWS compte auprès de Lake Formation sur un autre compte. Par exemple, vous pouvez enregistrer un seau de tables depuis le compte A dans Lake Formation du compte B.

## Conditions préalables
<a name="w2aac13c27c27b5"></a>

Avant de commencer l'enregistrement du bucket entre comptes :
+ Créez un compartiment de table dans le compte A.
+ Créez un rôle IAM dans le compte B avec les autorisations appropriées pour l'enregistrement du bucket.

  Pour plus d'informations sur les autorisations requises pour enregistrer un bucket de table auprès de Lake Formation, consultez[Conditions préalables à l'intégration du catalogue de tables Amazon S3 au catalogue de données et à Lake Formation](s3tables-catalog-prerequisites.md).
+ Enregistrez le compartiment de tables dans le compte sur lequel vous allez créer le catalogue de tables S3.
+  Pour l'accès entre comptes, le rôle spécifié lors de l'enregistrement du compartiment de table doit être un rôle intégré au compte avec les autorisations appropriées pour accéder au compartiment entre comptes. Le rôle nécessite les actions IAM S3 Tables nécessaires pour accéder aux ressources du bucket.

## Enregistrement d'un bucket de table entre comptes
<a name="w2aac13c27c27b7"></a>

Dans les procédures suivantes, le compte A est le compte propriétaire de la ressource, et le compte B est l'endroit où le bucket de table sera enregistré pour gérer les autorisations d'accès.

1. Connectez-vous AWS Management Console au compte A.

   Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1.  Créez un compartiment de tables. Pour plus d'informations, consultez la section [Création d'un compartiment de table](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) dans le guide de l'utilisateur Amazon S3. 

1. Enregistrez le bucket de table dans le compte B.

   Utilisez le AWS CLI pour enregistrer le seau de table du compte A avec Lake Formation dans le compte B.

   ```
   aws lakeformation register-resource \
   --resource-arn 'arn:aws:s3tables:us-east-1:account-A-id:bucket/single-bucket-name' \
   --role-arn arn:aws:iam::account-B-id:role/role-name \
   --region us-east-1
   ```

   Remplacez account-A-id, single-bucket-name account-B-id, et role-name par vos valeurs spécifiques.

1. Créez ensuite un catalogue pour le compartiment de table dans le compte B.

   Créez un catalogue à l'aide du AWS CLI.

   ```
   aws glue create-catalog --region us-east-1 \
   --cli-input-json \
   '{
      "Name": "catalog-name",
      "CatalogInput" : {
         "FederatedCatalog": {
            "Identifier": "arn:aws:s3tables:us-east-1:account A:bucket/single-bucket-name",
            "ConnectionName": "aws:s3tables"
         },
         "CreateDatabaseDefaultPermissions": [],
         "CreateTableDefaultPermissions": []      
      }
   }'
   ```

   Remplacez catalog-name et bucket-name par vos valeurs spécifiques. account-A-id

    L'exemple de CLI suivant montre comment afficher les détails du catalogue. 

   ```
    aws glue get-catalog \
     --catalog-id account-id:catalog-name \
     --region us-east-1
   ```

1. Ensuite, créez des bases de données et des tables dans le catalogue nouvellement créé dans le compte B.

   Créez une base de données.

   ```
   aws glue create-database \
     --region us-east-1 \
     --catalog-id "account-B-id:catalog-name" \
     --database-input \
   '{
     "Name": "database-name"
   }'
   ```

   Créer une table.

   ```
   aws glue create-table \
     --database-name database-name \
     --catalog-id account-B-id:catalog-name\
     --region us-east-1 \
     --table-input \
     '{
           "Name": "table-name",
           "Parameters": {
               "format": "ICEBERG"
           },
           "StorageDescriptor": {
              "Columns": [
           {"Name": "x", "Type": "int", "Parameters": {"required": "true"}}
             ]
           }
   }'
   ```

   Remplacez database-name account-B-id, catalog-name et table-name par vos valeurs spécifiques.

1. Les exemples suivants montrent comment afficher les objets du catalogue.

   Afficher les détails de la base de données.

   ```
   aws glue get-database \
     --name database-name \
     --catalog-id account-B-id:catalog-name \
     --region us-east-1
   ```

   Afficher les détails du tableau.

   ```
   aws glue get-table \
     --name table-name \
     --database-name database-name \
     --catalog-id account-B-id:catalog-name \
     --region us-east-1
   ```

   Remplacez database-name account-B-id, catalog-name et table-name par vos valeurs spécifiques.

# Octroi d’autorisations
<a name="s3-tables-grant-permissions"></a>

 Après avoir intégré vos tables S3 AWS Lake Formation, vous pouvez accorder des autorisations sur le catalogue des tables S3 et les objets du catalogue (compartiments de tables, bases de données, tables) à d'autres rôles IAM et utilisateurs de votre compte. Les autorisations de Lake Formation vous permettent de définir des contrôles d'accès au niveau de la granularité au niveau des tables, des colonnes et des lignes pour les utilisateurs de moteurs d'analyse intégrés tels qu'Amazon Redshift Spectrum et Athena. 

 Vous pouvez accorder des autorisations en utilisant la méthode des ressources nommées ou la méthode de contrôle d'accès basé sur les balises Lake Formation (LF-TBAC). Avant d'accorder des autorisations à l'aide de balises LF et d'expressions de balises LF, vous devez les définir et les affecter aux objets du catalogue de données. 

Pour de plus amples informations, veuillez consulter [Gestion des balises LF pour le contrôle d'accès aux métadonnées](managing-tags.md).

Vous pouvez partager des bases de données et des tables avec AWS des comptes externes en accordant des autorisations à Lake Formation aux comptes externes. Les utilisateurs peuvent ensuite exécuter des requêtes et des tâches qui joignent et interrogent des tables sur plusieurs comptes. Lorsque vous partagez une ressource de catalogue avec un autre compte, les principaux titulaires de ce compte peuvent utiliser cette ressource comme si elle figurait dans leur catalogue de données. 

Lorsque vous partagez des bases de données et des tables avec des comptes externes, l'autorisation de **super utilisateur** n'est pas disponible. 

 Pour obtenir des instructions détaillées sur l'octroi d'autorisations, consultez la [Gestion des autorisations relatives à Lake Formation](managing-permissions.md) section. 

## AWS CLI exemple d'octroi d'autorisations sur une table Amazon S3
<a name="w2aac13c27c29c15"></a>

```
aws lakeformation grant-permissions \
--cli-input-json \
'{
    "Principal": {
        "DataLakePrincipalIdentifier":"arn:aws:iam::111122223333:role/DataAnalystRole"
    },
    "Resource": {
        "Table": {
            "CatalogId":"111122223333:s3tablescatalog/amzn-s3-demo-bucket1",
            "DatabaseName":"S3 table bucket namespace <example_namespace>",
            "Name":"S3 table bucket table name <example_table>"
        }
    },
    "Permissions": [
        "SELECT"
    ]
}'
```

 Les paramètres à inclure dans la commande sont les suivants : 
+ DataLakePrincipalIdentifier — ARN d'utilisateur, de rôle ou de groupe IAM pour accorder des autorisations
+ CatalogId — Identifiant de AWS compte à 12 chiffres auquel appartient le catalogue de données
+ DatabaseName — Nom de l'espace de nom du compartiment de table Amazon S3
+ Nom : nom de la table de compartiment de table Amazon S3
+ Autorisations : autorisations à accorder. Les options incluent : SELECT, INSERT, DELETE, DESCRIBE, ALTER, DROP, ALLL et SUPER

# Accès aux tables Amazon S3 partagées
<a name="s3-tables-cross-account-sharing"></a>

 Après avoir accordé des autorisations entre comptes sur une base de données ou une table du catalogue de tables S3, pour accéder aux ressources, vous devez créer des liens de ressources vers les bases de données et les tables partagées. 

1.  Dans le compte de destination (le compte qui reçoit les ressources partagées), créez un lien vers les ressources de base de données. Pour obtenir des instructions complètes, consultez [Création d'un lien de ressource vers une base de données de catalogue de données partagée](create-resource-link-database.md). 

   Exemple de CLI pour créer un lien vers une ressource de base de données

   ```
   aws glue create-database 
   --region us-east-1 
   --catalog-id "111122223333" 
   --database-input \
   '{
     "Name": "s3table_resourcelink",
     "TargetDatabase": {
       "CatalogId": "011426214932:s3tablescatalog/chmni-s3-table-bucket-011426214932",
       "DatabaseName": "s3_table_ns"
     },
     "CreateTableDefaultPermissions": []
   }'
   ```

1.  Accordez une autorisation entre comptes sur la table. 

   Exemple de CLI pour l'octroi d'autorisations entre comptes

   ```
   aws lakeformation grant-permissions \
   --region us-east-1 \
   --cli-input-json \
   '{
       "Principal": {
           "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:role/S3TablesTestExecRole"
       },
       "Resource": {
           "Table": {
               "CatalogId": "011426214932:s3tablescatalog/chmni-s3-table-bucket-011426214932",
               "DatabaseName": "s3_table_ns",
               "Name": "test_s3_iceberg_table"
           }
       },
       "Permissions": [
           "ALL"
       ]
   }'
   ```

1.  `DESCRIBE`Autorisation de Grant Lake Formation sur le lien vers la ressource. 

    Exemple de CLI pour accorder l'autorisation de description sur le lien de ressource. 

   ```
   aws lakeformation grant-permissions \
       --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:role/S3TablesTestExecRole
       --resource Database='{CatalogId=111122223333;, Name=s3table_resourcelink}' \
       --permissions DESCRIBE
   ```