

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.

# Gestion de l’accès à une table ou à une base de données avec Lake Formation
<a name="grant-permissions-tables"></a>

Si vos compartiments de tables sont intégrés au service AWS d'analyse à l'aide de Lake Formation, Lake Formation gère l'accès à vos tables et exige que chaque principal IAM (utilisateur ou rôle) soit autorisé à effectuer les actions correspondantes. Lake Formation utilise son propre modèle d’autorisations (autorisations pour Lake Formation) qui permet un contrôle d’accès précis aux ressources du catalogue de données. 

Pour plus d’informations, consultez [Octroi d’autorisations Lake Formation](https://docs.aws.amazon.com//lake-formation/latest/dg/lf-permissions-overview.html) du *Guide du développeur AWS Lake Formation *.

Il existe deux principaux types d’autorisations dans AWS Lake Formation : 

1. 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.

1. 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. 

**Note**  
Si vous êtes l’utilisateur qui a effectué l’intégration du compartiment de table, vous disposez déjà des autorisations Lake Formation pour accéder aux tables. Si vous êtes le seul principal à accéder aux tables, vous pouvez ignorer cette étape. Vous devez uniquement accorder des autorisations Lake Formation sur vos tables à d’autres principaux IAM. Cela permet aux autres principaux d’accéder à la table lors de l’exécution de requêtes. Pour de plus amples informations, veuillez consulter [Octroi de l’autorisation Lake Formation sur une table ou une base de données](#grant-lf-table). 

## Octroi de l’autorisation Lake Formation sur une table ou une base de données
<a name="grant-lf-table"></a>

Vous pouvez accorder à un principal des autorisations Lake Formation sur une table ou une base de données dans un compartiment de table par le biais de la console Lake Formation ou de l’ AWS CLI.

**Note**  
Lorsque vous accordez des autorisations sur une ressource du catalogue de données à un compte externe ou directement à un responsable IAM d'un autre compte, Lake Formation utilise le service AWS Resource Access Manager (AWS RAM) pour partager la ressource. Si le compte du bénéficiaire appartient à la même organisation que le compte du concédant, la ressource partagée est immédiatement accessible au bénéficiaire. Si le compte du bénéficiaire n’appartient pas à la même organisation, AWS RAM envoie une invitation au compte du bénéficiaire pour qu’il accepte ou rejette l’octroi de ressources. Ensuite, pour rendre la ressource partagée disponible, l'administrateur du lac de données du compte bénéficiaire doit utiliser la AWS RAM console ou AWS CLI accepter l'invitation. Pour plus d’informations sur le partage de données entre comptes, consultez [Partage de données entre comptes dans Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-permissions.html) dans le *Guide du développeur AWS Lake Formation *.

------
#### [ Console ]

1. Ouvrez la AWS Lake Formation console sur [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) et connectez-vous en tant qu'administrateur du lac de données. Pour plus d’informations sur la manière de créer un administrateur de lac de données, consultez [Création d’un administrateur de lac de données](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin) dans le *Guide du développeur AWS Lake Formation *.

1. Dans le volet de navigation, choisissez **Autorisations de données**, puis **Accorder**. 

1. Sur la page **Accorder des autorisations**, sous **Principaux**, effectuez l’une des opérations suivantes :
   + Pour Amazon Athena ou Amazon Redshift, choisissez **Utilisateurs et rôles IAM**, puis sélectionnez le principal IAM que vous utilisez pour les requêtes.
   + Pour Amazon Data Firehose, choisissez **Utilisateurs et rôles IAM**, puis sélectionnez le rôle de service que vous avez créé pour un streaming vers les tables.
   + Pour Quick, choisissez **les utilisateurs et les groupes SAML**, puis entrez le nom de ressource Amazon (ARN) de votre utilisateur Quick admin.
   + Pour l'accès aux AWS GlueIceberg REST terminaux, choisissez **les utilisateurs et les rôles IAM**, puis sélectionnez le rôle IAM que vous avez créé pour votre client. Pour de plus amples informations, consultez [Création d’un rôle IAM pour votre client](s3-tables-integrating-glue-endpoint.md#glue-endpoint-create-iam-role).

1. Sous **Balises LF ou ressources de catalogue**, choisissez **Ressources de catalogue de données nommées**.

1. Pour **Catalogues**, choisissez le sous-catalogue que vous avez créé lorsque vous avez intégré votre compartiment de table, par exemple, `account-id:s3tablescatalog/amzn-s3-demo-bucket`.

1. Pour **Bases de données**, choisissez l’espace de noms de compartiments de tables S3 que vous avez créé.

1. (Facultatif) Pour **Tables**, choisissez la table S3 que vous avez créée dans le compartiment de table. 
**Note**  
Si vous créez une nouvelle table dans l’éditeur de requêtes Athena, ne sélectionnez pas de table. 

1. Effectuez l’une des actions suivantes :
   + Si vous avez spécifié une table à l’étape précédente, choisissez **Super** pour **Autorisations de table**.
   + Si vous n’avez pas spécifié de table à l’étape précédente, accédez à **Autorisations de base de données**. Pour le partage de données entre comptes, vous ne pouvez pas choisir **Super** pour accorder à l’autre principal toutes les autorisations sur votre base de données. Choisissez plutôt des autorisations plus détaillées, telles que **Décrire**.

1. Choisissez **Accorder**.

------
#### [ CLI ]

1. Assurez-vous d'exécuter les AWS CLI commandes suivantes en tant qu'administrateur du lac de données. Pour plus d’informations, consultez [Création d’un utilisateur de lac de données](https://docs.aws.amazon.com//lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin) dans le *Guide du développeur AWS Lake Formation *.

1. Exécutez la commande suivante pour accorder des autorisations Lake Formation sur la table du compartiment de tables S3 à un principal IAM pour lui permettre d’accéder à la table. Pour utiliser cet exemple, remplacez les *`user input placeholders`* par vos propres informations. 

   ```
   aws lakeformation grant-permissions \
   --region us-east-1 \
   --cli-input-json \
   '{
       "Principal": {
           "DataLakePrincipalIdentifier": "user or role ARN, for example, arn:aws:iam::account-id:role/example-role"
       },
       "Resource": {
           "Table": {
               "CatalogId": "account-id:s3tablescatalog/amzn-s3-demo-bucket",
               "DatabaseName": "S3 table bucket namespace, for example, test_namespace",
               "Name": "S3 table bucket table name, for example test_table"
           }
       },
       "Permissions": [
           "ALL"
       ]
   }'
   ```

------