Partage d'un lac de données à l'aide du contrôle d'accès précis de Lake Formation - AWS Lake Formation

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.

Partage d'un lac de données à l'aide du contrôle d'accès précis de Lake Formation

Ce didacticiel fournit des step-by-step instructions sur la manière de partager rapidement et facilement des ensembles de données à l'aide de Lake Formation lorsque vous en gérez plusieurs Comptes AWS avec AWS Organizations. Vous définissez des autorisations détaillées pour contrôler l'accès aux données sensibles.

Les procédures suivantes montrent également comment un administrateur du lac de données du compte A peut fournir un accès détaillé au compte B, et comment un utilisateur du compte B, agissant en tant que gestionnaire de données, peut accorder un accès détaillé à la table partagée aux autres utilisateurs de son compte. Au sein de chaque compte, les responsables des données peuvent déléguer l'accès de manière indépendante à leurs propres utilisateurs, ce qui donne de l'autonomie à chaque équipe ou secteur d'activité (LOB).

Le cas d'utilisation suppose que vous utilisez AWS Organizations pour gérer votre Comptes AWS. L'utilisateur du compte A dans une unité organisationnelle (OU1) accorde l'accès aux utilisateurs du compte B dansOU2. Vous pouvez utiliser la même approche lorsque vous n'utilisez pas Organizations, par exemple lorsque vous n'avez que quelques comptes. Le schéma suivant illustre le contrôle d'accès détaillé des ensembles de données dans un lac de données. Le lac de données est disponible dans le compte A. L'administrateur du lac de données du compte A fournit un accès détaillé au compte B. Le diagramme montre également qu'un utilisateur du compte B fournit un accès au niveau des colonnes de la table du lac de données du compte A à un autre utilisateur du compte B.

AWS Organization structure with two OUs, showing data lake access and user permissions across accounts.

Public visé

Ce didacticiel est destiné aux gestionnaires de données, aux ingénieurs de données et aux analystes de données. Le tableau suivant répertorie les rôles utilisés dans ce didacticiel :

Rôle Description
IAMadministrateur Utilisateur disposant de la politique AWS gérée :AdministratorAccess.
Administrateur du lac de données

Utilisateur disposant de la politique AWS gérée : AWSLakeFormationDataAdmin attaché au rôle.

Analyste des données Utilisateur disposant de la politique AWS gérée : AmazonAthenaFullAccess joint.

Prérequis

Avant de commencer ce didacticiel, vous devez disposer d'un Compte AWS identifiant que vous pouvez utiliser pour vous connecter en tant qu'utilisateur administratif avec les autorisations appropriées. Pour de plus amples informations, veuillez consulter Exécution des tâches AWS de configuration initiale.

Le didacticiel part du principe que vous connaissezIAM. Pour plus d'informationsIAM, consultez le guide de IAM l'utilisateur.

Vous avez besoin des ressources suivantes pour ce didacticiel :
  • Deux unités organisationnelles :

    • OU1— Contient le compte A

    • OU2— Contient le compte B

  • Emplacement d'un lac de données Amazon S3 (compartiment) dans le compte A.

  • Utilisateur administrateur de lac de données dans le compte A. Vous pouvez créer un administrateur de lac de données à l'aide de la console Lake Formation (https://console.aws.amazon.com/lakeformation/) ou du PutDataLakeSettings fonctionnement de la Lake FormationAPI.

  • Lake Formation configurée dans le compte A, et l'emplacement du lac de données Amazon S3 enregistré auprès de Lake Formation dans le compte A.

  • Deux utilisateurs du compte B avec les politiques IAM gérées suivantes :

    • testuser1 — contient les politiques AWS AWSLakeFormationDataAdmin gérées.

    • testuser2 — La politique AWS AmazonAthenaFullAccess gérée est attachée.

  • Une base de données testdb dans la base de données Lake Formation pour le compte B.

Étape 1 : Fournir un accès détaillé à un autre compte

Découvrez comment l'administrateur du lac de données du compte A fournit un accès détaillé au compte B.

Accorder un accès détaillé à un autre compte
  1. Connectez-vous AWS Management Console au compte A https://console.aws.amazon.com/connect/en tant qu'administrateur du lac de données.

  2. Ouvrez la console Lake Formation (https://console.aws.amazon.com/lakeformation/) et choisissez Get started.

  3. dans le volet de navigation, sélectionnez Databases.

  4. Choisissez Create database (Créer une base de données).

  5. Dans la section Détails de la base de données, sélectionnez Base de données.

  6. Pour Nom, entrez un nom (pour ce didacticiel, nous utilisonssampledb01).

  7. Assurez-vous que l'option Utiliser uniquement le contrôle IAM d'accès pour les nouvelles tables de cette base de données n'est pas sélectionnée. Si cette option n'est pas sélectionnée, nous pouvons contrôler l'accès depuis Lake Formation.

  8. Choisissez Créer une base de données.

  9. Sur la page Bases de données, choisissez votre base de donnéessampledb01.

  10. Dans le menu Actions, choisissez Grant.

  11. Dans la section Accorder des autorisations, sélectionnez Compte externe.

  12. Dans le Compte AWS champ ID ou ID d' AWS organisation, entrez le numéro de compte du compte B dansOU2.

  13. Pour Table, choisissez la table à laquelle vous souhaitez que le compte B ait accès (pour cet article, nous utilisons la tableacc_a_area). Vous pouvez éventuellement autoriser l'accès aux colonnes du tableau, ce que nous faisons dans cet article.

  14. Pour Inclure les colonnes, choisissez les colonnes auxquelles vous souhaitez que le compte B ait accès (pour cet article, nous accordons des autorisations de type, de nom et d'identifiant).

  15. Pour Colonnes, choisissez Inclure les colonnes.

  16. Pour les autorisations relatives aux tables, sélectionnez Sélectionner.

  17. Pour les autorisations pouvant être accordées, sélectionnez Sélectionner. Des autorisations pouvant être accordées sont requises pour que les utilisateurs administrateurs du compte B puissent accorder des autorisations à d'autres utilisateurs du compte B.

  18. Choisissez Grant (Accorder).

  19. Dans le volet de navigation, choisissez Tables.

  20. Vous pouvez voir une connexion active dans la section «  Comptes AWS  et AWS organisations ayant accès ».

Création d'un lien vers une ressource

Les services intégrés tels qu'Amazon Athena ne peuvent pas accéder directement aux bases de données ou aux tables entre les comptes. Par conséquent, vous devez créer un lien de ressource afin qu'Athéna puisse accéder aux liens de ressources de votre compte vers les bases de données et les tables d'autres comptes. Créez un lien de ressource vers la table (acc_a_area) afin que les utilisateurs du compte B puissent interroger ses données auprès d'Athena.

  1. Connectez-vous à la AWS console https://console.aws.amazon.com/connect/dans le compte B en tant quetestuser1.

  2. Sur la console Lake Formation (https://console.aws.amazon.com/lakeformation/), dans le volet de navigation, sélectionnez Tables. Vous devriez voir les tables auxquelles le compte A a fourni l'accès.

  3. Choisissez la table acc_a_area.

  4. Dans le menu Actions, choisissez Créer un lien vers une ressource.

  5. Pour le nom du lien de ressource, entrez un nom (pour ce didacticiel,acc_a_area_rl).

  6. Pour Base de données, choisissez votre base de données (testdb).

  7. Sélectionnez Create (Créer).

  8. Dans le volet de navigation, choisissez Tables.

  9. Choisissez la table acc_b_area_rl.

  10. Dans le menu Actions, choisissez Afficher les données.

    Vous êtes redirigé vers la console Athena, où vous devriez voir la base de données et la table.

    Vous pouvez désormais exécuter une requête sur la table pour voir la valeur de la colonne pour laquelle l'accès a été accordé à testuser1 depuis le compte B.

Étape 2 : fournir un accès détaillé à un utilisateur du même compte

Cette section montre comment un utilisateur du compte B (testuser1), agissant en tant que gestionnaire de données, fournit à un autre utilisateur du même compte (testuser2) un accès détaillé au nom de colonne de la table partagée. aac_b_area_rl

Accorder un accès détaillé à un utilisateur du même compte
  1. Connectez-vous à la AWS console https://console.aws.amazon.com/connect/dans le compte B en tant quetestuser1.

  2. Sur la console Lake Formation, dans le volet de navigation, sélectionnez Tables.

    Vous pouvez accorder des autorisations sur une table via son lien de ressource. Pour ce faire, sur la page Tables, sélectionnez le lien vers la ressourceacc_b_area_rl, puis dans le menu Actions, choisissez Grant on target.

  3. Dans la section Accorder des autorisations, sélectionnez Mon compte.

  4. Pour IAMles utilisateurs et les rôles, choisissez l'utilisateurtestuser2.

  5. Pour Colonne, choisissez le nom de la colonne.

  6. Pour les autorisations relatives aux tables, sélectionnez Sélectionner.

  7. Choisissez Grant (Accorder).

    Lorsque vous créez un lien vers une ressource, vous êtes le seul à pouvoir le consulter et y accéder. Pour permettre aux autres utilisateurs de votre compte d'accéder au lien de ressource, vous devez accorder des autorisations sur le lien de ressource lui-même. Vous devez accorder DESCRIBEdes DROPautorisations. Sur la page Tables, sélectionnez à nouveau votre tableau et dans le menu Actions, choisissez Grant.

  8. Dans la section Accorder des autorisations, sélectionnez Mon compte.

  9. Pour IAMles utilisateurs et les rôles, sélectionnez l'utilisateurtestuser2.

  10. Pour les autorisations relatives aux liens vers les ressources, sélectionnez Décrire.

  11. Choisissez Grant (Accorder).

  12. Connectez-vous à la AWS console dans le compte B en tant quetestuser2.

    Sur la console Athena (https://console.aws.amazon.com/athena/), vous devriez voir la base de données et la table. acc_b_area_rl Vous pouvez désormais exécuter une requête sur la table pour voir la valeur de la colonne à laquelle testuser2 vous avez accès.