

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 d'un lac de données à l'aide du contrôle d'accès basé sur des balises Lake Formation
<a name="managing-dl-tutorial"></a>

Des milliers de clients construisent des lacs de données à l'échelle du pétaoctet. AWS Nombre de ces clients ont l'habitude AWS Lake Formation de créer et de partager facilement leurs lacs de données au sein de l'entreprise. À mesure que le nombre de tables et d'utilisateurs augmente, les gestionnaires de données et les administrateurs cherchent des moyens de gérer facilement et à grande échelle les autorisations sur les lacs de données. Le contrôle d'accès basé sur les balises Lake Formation (LF-TBAC) résout ce problème en permettant aux gestionnaires de données de créer des *balises LF* (en fonction de leur classification et de leur ontologie de données) qui peuvent ensuite être attachées aux ressources.

Le LF-TBAC est une stratégie d'autorisation qui définit les autorisations en fonction des attributs. Dans Lake Formation, ces attributs sont appelés balises LF. Vous pouvez associer des balises LF aux ressources du catalogue de données et aux principes de Lake Formation. Les administrateurs des lacs de données peuvent attribuer et révoquer des autorisations sur les ressources de Lake Formation à l'aide de balises LF. Pour plus d'informations sur, voir[Contrôle d'accès basé sur des balises Lake Formation](tag-based-access-control.md). 

 Ce didacticiel explique comment créer une politique de contrôle d'accès basée sur des balises Lake Formation à l'aide d'un ensemble de données AWS public. En outre, il montre comment interroger des tables, des bases de données et des colonnes associées à des politiques d'accès basées sur des balises Lake Formation. 

Vous pouvez utiliser le LF-TBAC dans les cas d'utilisation suivants :
+ L'administrateur du lac de données doit accorder l'accès à un grand nombre de tables et de principes.
+ Vous souhaitez classer vos données en fonction d'une ontologie et accorder des autorisations en fonction de la classification
+ L'administrateur du lac de données souhaite attribuer des autorisations de manière dynamique, d'une manière peu couplée

Voici les étapes de haut niveau pour configurer les autorisations à l'aide de LF-TBAC :

1. Le gestionnaire de données définit l'ontologie des balises à l'aide de deux balises LF : et. `Confidential` `Sensitive` Les données sont soumises à des `Confidential=True` contrôles d'accès plus stricts. Les données `Sensitive=True` nécessitent une analyse spécifique de la part de l'analyste.

1. Le data steward attribue différents niveaux d'autorisation à l'ingénieur de données pour créer des tables avec différentes balises LF.

1. L'ingénieur de données crée deux bases de données : `tag_database` et`col_tag_database`. Toutes les tables incluses `tag_database` sont configurées avec`Confidential=True`. Toutes les tables du `col_tag_database` sont configurées avec`Confidential=False`. Certaines colonnes du tableau `col_tag_database` sont balisées `Sensitive=True` pour répondre à des besoins d'analyse spécifiques.

1. L'ingénieur de données accorde l'autorisation de lecture à l'analyste pour les tables présentant une condition d'expression spécifique `Confidential=True` et`Confidential=False`,`Sensitive=True`. 

1. Grâce à cette configuration, l'analyste de données peut se concentrer sur l'analyse avec les bonnes données.

**Topics**
+ [Public visé](#tut-manage-dl-roles)
+ [Conditions préalables](#tut-manage-dl-prereqs)
+ [Étape 1 : Approvisionnez vos ressources](#tut-manage-dl-provision-resources)
+ [Étape 2 : enregistrez l'emplacement de vos données, créez une ontologie LF-Tag et accordez des autorisations](#tut-manage-dl-register-datalocation-lftag)
+ [Étape 3 : Création de bases de données Lake Formation](#tut-manage-dl-tbac-create-databases)
+ [Étape 4 : Accorder les autorisations relatives aux tables](#tut-manage-dl-grant-table-permissions)
+ [Étape 5 : exécuter une requête dans Amazon Athena pour vérifier les autorisations](#tut-manage-dl-tbac-run-query)
+ [Étape 6 : Nettoyer les AWS ressources](#tut-manage-dl-tbac-clean-up-db)

## Public visé
<a name="tut-manage-dl-roles"></a>



Ce didacticiel est destiné aux gestionnaires de données, aux ingénieurs de données et aux analystes de données. Lorsqu'il s'agit de gérer AWS Glue Data Catalog et d'administrer les autorisations dans Lake Formation, les responsables des données des comptes producteurs ont une propriété fonctionnelle basée sur les fonctions qu'ils prennent en charge et peuvent accorder l'accès à divers consommateurs, organisations externes et comptes.

Le tableau suivant répertorie les rôles utilisés dans ce didacticiel :


| Role | Description | 
| --- | --- | 
| Data Steward (administrateur) | L'lf-data-stewardutilisateur dispose des droits d'accès suivants : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/managing-dl-tutorial.html)  | 
| Ingénieur de données |  `lf-data-engineer`l'utilisateur dispose des droits d'accès suivants :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/managing-dl-tutorial.html)  | 
| Analyste des données | L'lf-data-analystutilisateur dispose des droits d'accès suivants : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/managing-dl-tutorial.html)  | 

## Conditions préalables
<a name="tut-manage-dl-prereqs"></a>

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](getting-started-setup.md#initial-aws-signup).

Le didacticiel part du principe que vous êtes familiarisé avec IAM. Pour plus d'informations sur IAM, consultez le guide de l'[utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html).

## Étape 1 : Approvisionnez vos ressources
<a name="tut-manage-dl-provision-resources"></a>

Ce didacticiel inclut un AWS CloudFormation modèle pour une configuration rapide. Vous pouvez le consulter et le personnaliser en fonction de vos besoins. Le modèle crée trois rôles différents (répertoriés dans[Public visé](#tut-manage-dl-roles)) pour effectuer cet exercice et copie le nyc-taxi-data jeu de données dans votre compartiment Amazon S3 local.
+ Un compartiment Amazon S3
+ Les paramètres appropriés de la Lake Formation
+ Les ressources Amazon EC2 appropriées
+ Trois rôles IAM avec informations d'identification

**Créez vos ressources**

1. Connectez-vous à la AWS CloudFormation console à l'adresse [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) dans la région USA Est (Virginie du Nord).

1. Choisissez [Launch Stack](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?templateURL=https://aws-bigdata-blog.s3.amazonaws.com/artifacts/lakeformationtbac/cfn/tbac_permission.json).

1.  Choisissez **Suivant**.

1.  Dans la section **Configuration utilisateur**, entrez le mot de passe pour trois rôles :`DataStewardUserPassword`, `DataEngineerUserPassword` et`DataAnalystUserPassword`. 

1.  Consultez les informations sur la dernière page et sélectionnez **Je reconnais que cela AWS CloudFormation pourrait créer des ressources IAM**.

1.  Choisissez **Créer**.

   La création de la pile peut prendre jusqu'à cinq minutes.

**Note**  
Une fois le didacticiel terminé, vous souhaiterez peut-être supprimer le stack afin d'éviter CloudFormation de continuer à encourir des frais. Vérifiez que les ressources sont correctement supprimées dans le statut de l'événement pour la pile.

## Étape 2 : enregistrez l'emplacement de vos données, créez une ontologie LF-Tag et accordez des autorisations
<a name="tut-manage-dl-register-datalocation-lftag"></a>

Au cours de cette étape, l'utilisateur du data steward définit l'ontologie des balises à l'aide de deux balises LF : `Confidential` et `Sensitive` donne à des principes IAM spécifiques la possibilité d'associer des balises LF nouvellement créées aux ressources.

**Enregistrer un emplacement de données et définir l'ontologie LF-Tag**

1. Effectuez la première étape en tant qu'utilisateur responsable de la gestion des données (`lf-data-steward`) pour vérifier les données dans Amazon S3 et le catalogue de données dans Lake Formation.

   1. Connectez-vous à la console Lake Formation en utilisant le mot `lf-data-steward` de passe utilisé lors du déploiement de la CloudFormation pile. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)

   1. Dans le volet de navigation, sous **Autorisations**, choisissez **Rôles et tâches administratifs**.

   1. Choisissez **Ajouter** dans la section **Administrateurs du lac de données**.

   1. Sur la page **Ajouter un administrateur**, pour les **utilisateurs et les rôles IAM**, choisissez l'utilisateur`lf-data-steward`.

   1. Choisissez **Enregistrer** pour l'ajouter `lf-data-steward` en tant qu'administrateur de Lake Formation.

1. Ensuite, mettez à jour les paramètres du catalogue de données pour utiliser l'autorisation Lake Formation pour contrôler les ressources du catalogue au lieu du contrôle d'accès basé sur IAM.

   1. Dans le volet de navigation, sous **Administration**, sélectionnez **Paramètres du catalogue de données**.

   1. Décochez **Utiliser uniquement le contrôle d'accès IAM pour les nouvelles** bases de données.

   1. Décochez **Utiliser uniquement le contrôle d'accès IAM pour les nouvelles tables dans les nouvelles bases de données**.

   1. Cliquez sur **Sauvegarder**

1. Enregistrez ensuite l'emplacement des données pour le lac de données.

   1. Dans le volet de navigation, sous **Administration**, sélectionnez **Data lake locations**.

   1. Choisissez **Enregistrer l'emplacement**.

   1. Sur la page **Enregistrer l'emplacement**, pour le **chemin Amazon S3**, entrez`s3://lf-tagbased-demo-Account-ID`.

   1. Pour le rôle **IAM**, laissez la valeur par défaut `AWSServiceRoleForLakeFormationDataAccess` telle quelle.

   1. Choisissez **Lake Formation** comme mode d'autorisation.

   1. Choisissez **Enregistrer l'emplacement**.

1. Créez ensuite l'ontologie en définissant une balise LF.

   1. Sous **Autorisations** dans le volet de navigation, choisissez **LF-Tags and** permissions. .

   1. Choisissez **Ajouter un tag LF**.

   1. Pour **Key** (Clé), saisissez `Confidential`.

   1. Dans le **champ Valeurs**, ajoutez `True` et`False`.

   1. Choisissez **Ajouter un tag LF**.

   1. Répétez les étapes pour créer le **tag LF** `Sensitive` avec la valeur. `True`

   Vous avez créé toutes les balises LF nécessaires pour cet exercice.

**Accorder des autorisations aux utilisateurs IAM**

1. Donnez ensuite à des principes IAM spécifiques la possibilité d'associer des balises LF nouvellement créées aux ressources.

   1. Sous **Autorisations** dans le volet de navigation, choisissez **LF-Tags and** permissions.

   1. Dans la section **Autorisations LF-Tag, choisissez **Accorder** des autorisations**.

   1. Pour le **type d'autorisation**, choisissez les autorisations de paire **clé-valeur LF-Tag**.

   1. Sélectionnez les **utilisateurs et les rôles IAM**.

   1. Pour les **utilisateurs et les rôles IAM**, recherchez et choisissez le `lf-data-engineer` rôle.

   1. Dans la section **LF-Tags**, ajoutez la clé `Confidential` avec les valeurs `True` et`False`, et la clé `key` `Sensitive` avec valeur. `True`

   1. Sous **Autorisations**, sélectionnez **Décrire** et **associer** pour les **autorisations et les autorisations** **pouvant être accordées**.

   1. Choisissez **Accorder**.

1. Ensuite, accordez l'autorisation `lf-data-engineer` de créer des bases de données dans notre catalogue de données et dans le compartiment Amazon S3 sous-jacent créé par AWS CloudFormation.

   1. Sous **Administration** dans le volet de navigation, sélectionnez **Rôles et tâches d'administration**.

   1.  Dans la section **Créateurs de bases** de données, choisissez **Grant**.

   1. Pour les **utilisateurs et les rôles IAM**, choisissez le `lf-data-engineer` rôle.

   1. Pour les **autorisations du catalogue**, sélectionnez **Créer une base de données**.

   1. Choisissez **Accorder**.

1. Ensuite, accordez des autorisations sur le compartiment Amazon S3 `(s3://lf-tagbased-demo-Account-ID)` à l'`lf-data-engineer`utilisateur.

   1. Dans le volet de navigation, sous **Autorisations**, sélectionnez **Emplacements des données**.

   1. Choisissez **Accorder**.

   1. Sélectionnez **Mon compte**.

   1. Pour les **utilisateurs et les rôles IAM**, choisissez le `lf-data-engineer` rôle.

   1. Pour les **emplacements de stockage**, entrez le compartiment Amazon S3 créé par le CloudFormation modèle`(s3://lf-tagbased-demo-Account-ID)`.

   1. Choisissez **Accorder**.

1. Ensuite, accordez des autorisations `lf-data-engineer` pouvant être accordées sur les ressources associées à l'expression **LF-Tag**. `Confidential=True`

   1. Dans le volet de navigation, sous **Autorisations**, sélectionnez **Autorisations du lac de données**.

   1. Choisissez **Accorder**.

   1. Sélectionnez les **utilisateurs et les rôles IAM**.

   1.  Choisissez le rôle`lf-data-engineer`.

   1. Dans la section **Balises LF ou ressources du catalogue, sélectionnez Ressources** **associées aux** balises LF.

   1. Choisissez **Ajouter une paire clé-valeur LF-Tag**.

   1.  Ajoutez la clé `Confidential` avec les valeurs`True`.

   1. Dans la section **Autorisations de base de données**, sélectionnez **Décrire** pour les **autorisations de base de données et les autorisations** **pouvant être accordées**. 

   1. Dans la section **Autorisations relatives aux tables**, sélectionnez **Décrire**, **sélectionner** et **modifier** pour les autorisations relatives aux **tables et aux autorisations** **pouvant être accordées**. 

   1.  Choisissez **Accorder**.

1. Ensuite, accordez des autorisations `lf-data-engineer` pouvant être accordées sur les ressources associées à l'expression LF-Tag. `Confidential=False`

   1. Dans le volet de navigation, sous **Autorisations**, sélectionnez **Autorisations du lac de données**.

   1. Choisissez **Accorder**.

   1. Sélectionnez les **utilisateurs et les rôles IAM**.

   1. Choisissez le rôle`lf-data-engineer`.

   1.  Sélectionnez **les ressources associées aux balises LF**.

   1. Choisissez **Ajouter un tag LF**.

   1.  Ajoutez la clé `Confidential` avec la valeur`False`.

   1. Dans la section **Autorisations de base de données**, sélectionnez **Décrire** pour les **autorisations de base de données et les autorisations** **pouvant être accordées**.

   1. Dans la section **Autorisations relatives aux tables et aux colonnes**, ne sélectionnez rien.

   1. Choisissez **Accorder**.

1. Ensuite, nous accordons des autorisations `lf-data-engineer` pouvant être accordées sur les ressources associées aux paires clé-valeur **LF-Tag** et. `Confidential=False` `Sensitive=True`

   1. Dans le volet de navigation, sous **Autorisations**, sélectionnez **Autorisations relatives aux données**. 

   1. Choisissez **Accorder**.

   1. Sélectionnez les **utilisateurs et les rôles IAM**.

   1. Choisissez le rôle`lf-data-engineer`.

   1. Dans la section **Balises LF ou ressources du catalogue**, sélectionnez **Ressources associées aux** balises LF.

   1. Choisissez **Ajouter un tag LF**.

   1.  Ajoutez la clé `Confidential` avec la valeur`False`.

   1. Choisissez **Ajouter une paire clé-valeur LF-Tag**.

   1. Ajoutez la clé `Sensitive` avec la valeur`True`.

   1. Dans la section **Autorisations de base de données**, sélectionnez **Décrire** pour les **autorisations de base de données et les autorisations** **pouvant être accordées**.

   1. Dans la section **Autorisations relatives aux tables**, sélectionnez **Décrire**, **sélectionner** et **modifier** pour les autorisations relatives aux **tables et aux autorisations** **pouvant être accordées**.

   1. Choisissez **Accorder**.

## Étape 3 : Création de bases de données Lake Formation
<a name="tut-manage-dl-tbac-create-databases"></a>

Au cours de cette étape, vous créez deux bases de données et attachez des balises LF aux bases de données et à des colonnes spécifiques à des fins de test.

**Créez vos bases de données et votre table pour un accès au niveau de la base de données**

1. Créez d'abord la base de données`tag_database`, la table `source_data` et attachez les balises LF appropriées.

   1. Sur la console Lake Formation ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)), sous **Catalogue de données**, sélectionnez **Databases**. 

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

   1. Pour **Nom**, saisissez `tag_database`.

   1. Dans **Emplacement**, entrez l'emplacement Amazon S3 créé par le CloudFormation modèle`(s3://lf-tagbased-demo-Account-ID/tag_database/)`.

   1. Désélectionnez **Utiliser uniquement le contrôle d'accès IAM pour les nouvelles tables de cette base de données**.

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

1. Ensuite, créez une nouvelle table à l'intérieur`tag_database`.

   1. Sur la page **Bases de données**, sélectionnez la base de données`tag_database`.

   1.  Choisissez **Afficher les tables**, puis cliquez sur **Créer une table**.

   1. Pour **Nom**, saisissez `source_data`.

   1. Pour **Database** (Base de données), choisissez la base de données `tag_database`.

   1. Pour **Format de tableau**, choisissez ** AWS Glue Tableau standard**.

   1. Si les **données se trouvent dans**, sélectionnez **le chemin spécifié dans mon compte**.

   1. Pour Inclure le chemin, entrez le chemin `tag_database` créé par le CloudFormation modèle`(s3://lf-tagbased-demoAccount-ID/tag_database/)`.

   1. Pour le **format des données**, sélectionnez **CSV**.

   1. Sous **Charger le schéma**, entrez le tableau JSON suivant de structure de colonne pour créer un schéma :

      ```
       [
                     {
                          "Name": "vendorid",
                          "Type": "string"
                     },
                     {
                          "Name": "lpep_pickup_datetime",
                          "Type": "string"                    
                     },
                     {
                          "Name": "lpep_dropoff_datetime",
                          "Type": "string"  
                    
                     },
                        {
                          "Name": "store_and_fwd_flag",
                          "Type": "string"                                
                     },
                        {
                          "Name": "ratecodeid",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "pulocationid",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "dolocationid",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "passenger_count",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "trip_distance",
                          "Type": "string"                    
                          
                     }, 
                        {
                          "Name": "fare_amount",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "extra",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "mta_tax",
                          "Type": "string"                    
                          
                     },
                     {
                          "Name": "tip_amount",
                          "Type": "string"                   
                          
                     },
                        {
                          "Name": "tolls_amount",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "ehail_fee",
                          "Type": "string"                    
                          
                     }, 
                     {
                          "Name": "improvement_surcharge",
                          "Type": "string"                   
                          
                     },
                     {
                          "Name": "total_amount",
                          "Type": "string"                    
                          
                     },
                     {
                          "Name": "payment_type",
                          "Type": "string"                    
                          
                     }
       ]
      ```

   1. Choisissez **Charger**. Après avoir chargé le schéma, le schéma de table doit ressembler à la capture d'écran suivante :  
![\[Table schema with 18 columns showing column names and data types, all set to string.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/tutorial-manage-dl-tbac1.jpg)

   1. Sélectionnez **Soumettre**.

1. Ensuite, attachez des balises LF au niveau de la base de données.

   1. Sur la page **Bases** de données, recherchez et sélectionnez`tag_database`. 

   1. Dans le menu **Actions**, choisissez **Modifier les balises LF**.

   1. Choisissez **Attribuer un nouveau tag LF**.

   1. Pour les **clés assignées**, choisissez le `Confidential` tag LF que vous avez créé précédemment.

   1. Dans le **champ Valeurs**, sélectionnez`True`.

   1. Choisissez **Enregistrer**.

   Ceci termine l'attribution du tag LF à la base de données tag\$1database.

**Créez votre base de données et votre table pour un accès au niveau des colonnes**

Répétez les étapes suivantes pour créer la base de données `col_tag_database` et la table`source_data_col_lvl`, et attachez des balises LF au niveau de la colonne. 

1. Sur la page **Bases de données**, sélectionnez **Créer une base de données**.

1. Pour **Nom**, saisissez `col_tag_database`.

1. Dans **Emplacement**, entrez l'emplacement Amazon S3 créé par le CloudFormation modèle`(s3://lf-tagbased-demo-Account-ID/col_tag_database/)`.

1. Désélectionnez **Utiliser uniquement le contrôle d'accès IAM pour les nouvelles tables de cette base de données**.

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

1. Sur la page **Bases de données**, sélectionnez votre nouvelle base de données`(col_tag_database)`. 

1. Choisissez **Afficher les tables**, puis cliquez sur **Créer une table**.

1. Pour **Nom**, saisissez `source_data_col_lvl`.

1. Dans **Base de données**, choisissez votre nouvelle base de données`(col_tag_database)`.

1. Pour **Format de tableau**, choisissez ** AWS Glue Tableau standard**.

1. Si les **données se trouvent dans**, sélectionnez **le chemin spécifié dans mon compte**.

1. Entrez le chemin Amazon S3 pour `col_tag_database``(s3://lf-tagbased-demo-Account-ID/col_tag_database/)`.

1. Pour **Format des données**, sélectionnez`CSV`.

1. Sous`Upload schema`, entrez le schéma JSON suivant : 

   ```
   [
                  {
                       "Name": "vendorid",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "lpep_pickup_datetime",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "lpep_dropoff_datetime",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "store_and_fwd_flag",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "ratecodeid",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "pulocationid",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "dolocationid",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "passenger_count",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "trip_distance",
                       "Type": "string"
                       
                       
                  }, 
                     {
                       "Name": "fare_amount",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "extra",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "mta_tax",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "tip_amount",
                       "Type": "string"
                       
                       
                  },
                     {
                       "Name": "tolls_amount",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "ehail_fee",
                       "Type": "string"
                       
                       
                  }, 
                  {
                       "Name": "improvement_surcharge",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "total_amount",
                       "Type": "string"
                       
                       
                  },
                  {
                       "Name": "payment_type",
                       "Type": "string"
                       
                       
                  }
   ]
   ```

1. Sélectionnez `Upload`. Après avoir chargé le schéma, le schéma de table doit ressembler à la capture d'écran suivante.  
![\[Table schema with 18 columns showing column names and data types, all set to string.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/tutorial-manage-dl-tbac2.jpg)

1. Choisissez **Soumettre** pour terminer la création de la table.

1. Associez maintenant le `Sensitive=True` tag LF aux colonnes `vendorid` et. `fare_amount`

   1. Sur la page **Tables**, sélectionnez la table que vous avez créée`(source_data_col_lvl)`.

   1. Dans le menu **Actions**, sélectionnez **Schéma**.

   1. Sélectionnez la colonne `vendorid` et choisissez **Modifier les balises LF**.

   1. Pour **Clés attribuées**, choisissez **Sensitive**.

   1.  Dans le **champ Valeurs**, sélectionnez **Vrai**.

   1. Choisissez **Enregistrer**.

1. Ensuite, associez le `Confidential=False` tag LF à. `col_tag_database` Cela est nécessaire pour `lf-data-analyst` pouvoir décrire la base de données `col_tag_database` lorsque vous êtes connecté depuis Amazon Athena.

   1. Sur la page **Bases** de données, recherchez et sélectionnez`col_tag_database`.

   1. Dans le menu **Actions**, choisissez **Modifier les balises LF**.

   1. Choisissez **Attribuer un nouveau tag LF**.

   1. Pour les **clés attribuées**, choisissez le `Confidential` tag LF que vous avez créé précédemment.

   1. Dans le **champ Valeurs**, sélectionnez`False`.

   1. Choisissez **Enregistrer**.

## Étape 4 : Accorder les autorisations relatives aux tables
<a name="tut-manage-dl-grant-table-permissions"></a>

Accordez des autorisations aux analystes de données pour l'utilisation des bases de données `tag_database` et de la table à l'`col_tag_database`aide des balises LF `Confidential` et. `Sensitive`

1. Procédez comme suit pour accorder à l'`lf-data-analyst`utilisateur des autorisations sur les objets associés à la balise LF `Confidential=True` (Database:TAG\$1DATABASE) afin qu'il dispose de la base de données et des autorisations sur les `Describe` tables. `Select`

   1. Connectez-vous à la console Lake Formation à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)as`lf-data-engineer`.

   1. Sous **Autorisations**, sélectionnez **Autorisations du lac de données**.

   1. Choisissez **Accorder**.

   1. Sous **Principaux**, sélectionnez **Utilisateurs et rôles IAM**.

   1. Pour les **utilisateurs et les rôles IAM**, choisissez`lf-data-analyst`.

   1. Sous **Balises LF ou ressources du catalogue, sélectionnez Ressources** **associées aux** balises LF.

   1. Choisissez **Ajouter un tag LF**.

   1. Pour **Key**, choisissez`Confidential`.

   1. Dans le **champ Valeurs**, sélectionnez`True`.

   1. Pour les **autorisations de base** de données, sélectionnez`Describe`.

   1. Pour les **autorisations relatives aux tables**, choisissez **Sélectionner** et **décrire**. 

   1. Choisissez **Accorder**.

1. Répétez ensuite les étapes pour accorder des autorisations aux analystes de données pour l'expression LF-Tag for. `Confidential=False` Cette **balise LF** est utilisée pour décrire le `col_tag_database` et le tableau `source_data_col_lvl` lorsque vous êtes connecté `lf-data-analyst` depuis Amazon Athena. 

   1. Connectez-vous à la console Lake Formation à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)as`lf-data-engineer`.

   1. Sur la page **Bases de données**, sélectionnez la base de données`col_tag_database`.

   1. Choisissez **Action** et **Grant**.

   1. Sous **Principaux**, sélectionnez **Utilisateurs et rôles IAM**.

   1. Pour les **utilisateurs et les rôles IAM**, choisissez`lf-data-analyst`.

   1. Sélectionnez **les ressources associées aux balises LF**.

   1. Choisissez **Ajouter un tag LF**.

   1. Pour **Key**, choisissez`Confidential`.

   1.  Pour **Valeurs**, choisissez`False`.

   1. Pour les **autorisations de base** de données, sélectionnez`Describe`.

   1. Pour les **autorisations relatives aux tables**, ne sélectionnez rien. 

   1. Choisissez **Accorder**.

1. Répétez ensuite les étapes pour accorder des autorisations aux analystes de données pour l'expression LF-Tag pour `Confidential=False` et. `Sensitive=True` Cette balise LF est utilisée pour décrire le `col_tag_database` et le tableau `source_data_col_lvl` (au niveau des colonnes) lorsque vous êtes connecté depuis Amazon `lf-data-analyst` Athena.

   1. Connectez-vous à la console Lake Formation à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)as`lf-data-engineer`.

   1. Sur la page Bases de données, sélectionnez la base de données`col_tag_database`.

   1. Choisissez **Action** et **Grant**.

   1. Sous **Principaux**, sélectionnez **Utilisateurs et rôles IAM**.

   1.  Pour les **utilisateurs et les rôles IAM**, choisissez`lf-data-analyst`.

   1. Sélectionnez **les ressources associées aux balises LF**.

   1. Choisissez **Ajouter un tag LF**.

   1. Pour **Key**, choisissez`Confidential`.

   1. Pour **Valeurs**, choisissez`False`.

   1. Choisissez **Ajouter un tag LF**.

   1. Pour **Key**, choisissez`Sensitive`.

   1. Pour **Valeurs**, choisissez`True`.

   1. Pour les **autorisations de base** de données, sélectionnez`Describe`.

   1. Pour les **autorisations relatives aux tables**, sélectionnez `Select` et`Describe`.

   1. Choisissez **Accorder**.

## Étape 5 : exécuter une requête dans Amazon Athena pour vérifier les autorisations
<a name="tut-manage-dl-tbac-run-query"></a>

Pour cette étape, utilisez Amazon Athena pour exécuter des `SELECT` requêtes sur les deux tables. `(source_data and source_data_col_lvl)` Utilisez le chemin Amazon S3 comme emplacement des résultats de la requête`(s3://lf-tagbased-demo-Account-ID/athena-results/)`.

1. Connectez-vous à la console Athena à [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)l'adresse as. `lf-data-analyst`

1. Dans l'éditeur de requêtes Athena, choisissez `tag_database` dans le panneau de gauche.

1. Choisissez l'icône d'options de menu supplémentaires (trois points verticaux) à côté `source_data` et choisissez **Aperçu du tableau**.

1. Choisissez **Exécuter la requête**.

   L'exécution de la requête devrait prendre quelques minutes. La requête affiche toutes les colonnes de la sortie car la balise LF est associée au niveau de la base de données et la `source_data` table en a automatiquement hérité. `LF-tag` `tag_database`

1. Exécutez une autre requête à l'aide `col_tag_database` de et`source_data_col_lvl`.

   La deuxième requête renvoie les deux colonnes étiquetées `Non-Confidential` et`Sensitive`.

1. Vous pouvez également vérifier le comportement de la politique d'accès basée sur les balises Lake Formation sur les colonnes pour lesquelles vous n'avez pas de subventions politiques. Lorsqu'une colonne non balisée est sélectionnée dans le tableau`source_data_col_lvl`, Athena renvoie une erreur. Par exemple, vous pouvez exécuter la requête suivante pour sélectionner des colonnes `geolocationid` non balisées :

   ```
   SELECT geolocationid FROM "col_tag_database"."source_data_col_lvl" limit 10;
   ```

## Étape 6 : Nettoyer les AWS ressources
<a name="tut-manage-dl-tbac-clean-up-db"></a>

Pour éviter des frais indésirables Compte AWS, vous pouvez supprimer les AWS ressources que vous avez utilisées pour ce didacticiel.

1. Connectez-vous à la console Lake Formation en tant que `lf-data-engineer` et supprimez les bases de données `tag_database` et`col_tag_database`.

1. Ensuite, connectez-vous en tant que `lf-data-steward` et nettoyez toutes les autorisations **LF-Tag, les autorisations** de **données et les autorisations** de **localisation des données** accordées ci-dessus qui ont été accordées `lf-data-engineer` et. `lf-data-analyst.`

1. Connectez-vous à la console Amazon S3 en tant que propriétaire du compte à l'aide des informations d'identification IAM que vous avez utilisées pour déployer la CloudFormation pile.

1. Supprimez les compartiments suivants :
   + lf-tagbased-demo-accesslogs-*acct-id*
   + lf-tagbased-demo-*acct-id*

1. Connectez-vous à CloudFormation la console sur [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) et supprimez la pile que vous avez créée. Attendez que le statut de la pile passe à`DELETE_COMPLETE`.