Gestion de l’accès à une table ou à une base de données avec Lake Formation - Amazon Simple Storage Service

Gestion de l’accès à une table ou à une base de données avec Lake Formation

Une fois vos compartiments de table intégrés aux services d’analytique AWS, Lake Formation gère l’accès à vos tables et exige que chaque principal IAM (utilisateur ou rôle) soit autorisé à effectuer des actions sur ces tables. 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 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.

  2. 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 à Lake Formation, aux API AWS Glue et aux ressources, 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 plus d’informations, consultez Octroi de l’autorisation Lake Formation sur une table ou une base de données.

Octroi de l’autorisation Lake Formation sur une table ou une base de données

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 Lake Formation sur une ressource du catalogue de données à un compte externe ou directement à un principal 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 console AWS RAM ou l’AWS CLI pour 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 dans le Guide du développeur AWS Lake Formation.

Console
  1. Ouvrez la console AWS Lake Formation à l’adresse 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 dans le Guide du développeur AWS Lake Formation.

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

  3. 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 Suite, choisissez Utilisateurs et groupes SAML, puis entrez le nom d’Amazon Resource Name (ARN) de votre administrateur Quick Suite.

    • Pour l’accès aux points de terminaison AWS Glue Iceberg REST, choisissez Utilisateurs et rôles IAM, puis sélectionnez le rôle IAM que vous avez créé pour votre client. Pour plus d’informations, consultez  Création d’un rôle IAM pour votre client

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

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

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

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

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

  9. Choisissez Accorder.

CLI
  1. Veillez à exécuter les commandes d’AWS CLI 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 dans le Guide du développeur AWS Lake Formation.

  2. 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" ] }'