

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.

# Sécurisation des lacs de données grâce au contrôle d'accès au niveau des lignes
<a name="cbac-tutorial"></a>

AWS Lake Formation les autorisations au niveau des lignes vous permettent d'accéder à des lignes spécifiques d'un tableau en fonction des politiques de conformité et de gouvernance des données. Si vous avez de grandes tables stockant des milliards d'enregistrements, vous devez trouver un moyen de permettre aux différents utilisateurs et équipes d'accéder uniquement aux données qu'ils sont autorisés à consulter. Le contrôle d'accès au niveau des lignes est un moyen simple et performant de protéger les données, tout en permettant aux utilisateurs d'accéder aux données dont ils ont besoin pour effectuer leur travail. Lake Formation fournit des audits et des rapports de conformité centralisés en identifiant quels principaux ont accédé à quelles données, quand et par le biais de quels services.

Dans ce didacticiel, vous apprendrez comment fonctionnent les contrôles d'accès au niveau des lignes dans Lake Formation et comment les configurer.

Ce didacticiel inclut un AWS CloudFormation modèle permettant de configurer rapidement les ressources requises. Vous pouvez le consulter et le personnaliser en fonction de vos besoins.

**Topics**
+ [Public visé](#tut-cbac-roles-tutorial)
+ [Conditions préalables](#tut-cbac-prereqs)
+ [Étape 1 : Approvisionnez vos ressources](#set-up-cbac-resources)
+ [Étape 2 : Requête sans filtres de données](#query-without-filters)
+ [Étape 3 : configurer les filtres de données et accorder des autorisations](#setup-data-filters)
+ [Étape 4 : Requête à l'aide de filtres de données](#query-with-filters)
+ [Étape 5 : Nettoyer les AWS ressources](#cbac-clean-up)

## Public visé
<a name="tut-cbac-roles-tutorial"></a>

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 et les responsabilités du propriétaire et du consommateur de données.


| Role | Description | 
| --- | --- | 
| Administrateur IAM | Utilisateur capable de créer des utilisateurs, des rôles et des compartiments Amazon Simple Storage Service (Amazon S3). Possède la politique AdministratorAccess AWS gérée. | 
| Administrateur du lac de données | Utilisateur chargé de configurer le lac de données, de créer des filtres de données et d'accorder des autorisations aux analystes de données.  | 
| Analyste des données | Un utilisateur qui peut exécuter des requêtes sur le lac de données. Les analystes de données résidant dans différents pays (pour notre cas d'utilisation, les États-Unis et le Japon) ne peuvent analyser que les avis des clients situés dans leur propre pays et, pour des raisons de conformité, ne devraient pas être en mesure de consulter les données clients situées dans d'autres pays. | 

## Conditions préalables
<a name="tut-cbac-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 connaissez IAM. Pour plus d'informations sur IAM, consultez le guide de l'[utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html).

**Modifier les paramètres de Lake Formation**
**Important**  
Avant de lancer le CloudFormation modèle, désactivez l'option **Utiliser uniquement le contrôle d'accès IAM pour les nouvelles bases de données/tables de Lake** Formation en suivant les étapes ci-dessous :

1. Connectez-vous à la console Lake Formation [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)dans la région USA Est (Virginie du Nord) ou USA Ouest (Oregon).

1. Sous Catalogue de données, sélectionnez **Paramètres**.

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

1.  Choisissez **Enregistrer**.

## Étape 1 : Approvisionnez vos ressources
<a name="set-up-cbac-resources"></a>

Ce didacticiel inclut un CloudFormation modèle pour une configuration rapide. Vous pouvez le consulter et le personnaliser en fonction de vos besoins. Le CloudFormation modèle génère les ressources suivantes :
+ Utilisateurs et politiques pour :
  + DataLakeAdmin
  + DataAnalystÉtats-Unis
  + DataAnalystJP
+ Lake Formation : paramètres et autorisations du lac
+ Fonction Lambda (pour les ressources CloudFormation personnalisées soutenues par Lambda) utilisée pour copier des exemples de fichiers de données du compartiment Amazon S3 public vers votre compartiment Amazon S3
+ Un bucket Amazon S3 qui servira de lac de données
+ Une AWS Glue Data Catalog base de données, une table et une partition

**Créez vos ressources**

Suivez ces étapes pour créer vos ressources à l'aide du CloudFormation modèle.

1. Connectez-vous à la 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/create?templateURL=https://aws-bigdata-blog.s3.amazonaws.com/artifacts/lakeformation_row_security/lakeformation_tutorial_row_security.yaml).

1. Choisissez **Next** sur l'écran de **création d'une pile**.

1. Entrez un **nom de pile.**

1. Pour **DatalakeAdminUserName**et **DatalakeAdminUserPassword**, entrez votre nom d'utilisateur et votre mot de passe IAM pour l'utilisateur administrateur de Data Lake.

1. Pour **DataAnalystUsUserName**et **DataAnalystUsUserPassword**, entrez le nom d'utilisateur et le mot de passe pour le nom d'utilisateur et le mot de passe que vous souhaitez pour l'utilisateur analyste de données responsable du marché américain.

1. Pour **DataAnalystJpUserName**et **DataAnalystJpUserPassword**, entrez le nom d'utilisateur et le mot de passe pour le nom d'utilisateur et le mot de passe que vous souhaitez pour l'utilisateur analyste de données responsable du marché japonais.

1. Pour **DataLakeBucketName**, entrez le nom de votre compartiment de données.

1. Pour **DatabaseName**, et **TableName**laissez comme valeur par défaut.

1. Choisissez **Next** (Suivant)

1. Sur la page suivante, choisissez **Next**.

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

1. Choisissez **Créer**.

   La création de la pile peut prendre une minute.

## Étape 2 : Requête sans filtres de données
<a name="query-without-filters"></a>

Après avoir configuré l'environnement, vous pouvez consulter le tableau des avis sur les produits. Interrogez d'abord la table sans contrôles d'accès au niveau des lignes pour vous assurer que vous pouvez voir les données. Si vous exécutez des requêtes dans Amazon Athena pour la première fois, vous devez configurer l'emplacement des résultats des requêtes.

**Interrogez la table sans contrôle d'accès au niveau des lignes**

1. Connectez-vous à Athena la console en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)tant qu'`DatalakeAdmin`utilisateur et exécutez la requête suivante :

   ```
   SELECT * 
   FROM lakeformation_tutorial_row_security.amazon_reviews
   LIMIT 10
   ```

   La capture d'écran suivante montre le résultat de la requête. Ce tableau ne comporte qu'une seule partition. Chaque enregistrement est donc un commentaire d'évaluation pour un produit vidéo. `product_category=Video`  
![Tableau des résultats des requêtes présentant les avis sur les produits Amazon avec des colonnes pour le marché, l'identifiant du client, le numéro de l'avis, les détails du produit, les évaluations et les votes.](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/cbac-tut-query-results1.jpg)

1. Exécutez ensuite une requête d'agrégation pour récupérer le nombre total d'enregistrements par`marketplace`.

   ```
   SELECT marketplace, count(*) as total_count
   FROM lakeformation_tutorial_row_security.amazon_reviews
   GROUP BY marketplace
   ```

   La capture d'écran suivante montre le résultat de la requête. La `marketplace` colonne comporte cinq valeurs différentes. Au cours des étapes suivantes, vous allez configurer des filtres basés sur des lignes à l'aide de la `marketplace` colonne.  
![Résultats de la requête affichant une colonne Marketplace avec cinq valeurs : FR, UK, JP, DE et US avec nombres.](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/cbac-tut-query-results2.jpg)

## Étape 3 : configurer les filtres de données et accorder des autorisations
<a name="setup-data-filters"></a>

Ce didacticiel fait appel à deux analystes de données : l'un responsable du marché américain et l'autre du marché japonais. Chaque analyste utilise Athena pour analyser les avis des clients uniquement pour son marché spécifique. Créez deux filtres de données différents, l'un pour l'analyste responsable du marché américain et l'autre pour celui responsable du marché japonais. Accordez ensuite aux analystes leurs autorisations respectives.

**Créez des filtres de données et accordez des autorisations**

1. Créez un filtre pour restreindre l'accès aux `US` `marketplace` données.

   1. Connectez-vous à la console Lake Formation [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)dans la région USA Est (Virginie du Nord) en tant qu'`DatalakeAdmin`utilisateur.

   1. Choisissez **Filtres de données**.

   1. Choisissez **Créer un nouveau filtre**.

   1. Dans **Nom du filtre de données**, entrez`amazon_reviews_US`.

   1. Pour **Base de données cible**, choisissez la base de données`lakeformation_tutorial_row_security`.

   1. Pour **Table cible**, choisissez la table`amazon_reviews`.

   1.  Pour l'**accès au niveau des colonnes**, laissez la valeur par défaut.

   1. Pour **Expression du filtre de ligne**, entrez`marketplace='US'`.

   1.  Choisissez **Create filter (Créer un filtre)**.

1. Créez un filtre pour restreindre l'accès aux `marketplace` données japonaises.

   1. Sur la page **Filtres de données**, choisissez **Créer un nouveau filtre**.

   1. Dans **Nom du filtre de données**, entrez`amazon_reviews_JP`.

   1. Pour **Base de données cible**, choisissez la base de données`lakeformation_tutorial_row_security`.

   1.  Pour le **tableau Target**, choisissez le`table amazon_reviews`.

   1. Pour l'**accès au niveau des colonnes**, laissez la valeur par défaut.

   1. Pour Expression du filtre de ligne, entrez`marketplace='JP'`.

   1.  Choisissez **Create filter (Créer un filtre)**.

1. Accordez ensuite des autorisations aux analystes de données utilisant ces filtres de données. Procédez comme suit pour accorder des autorisations à l'analyste de données américain (`DataAnalystUS`) :

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

   1. Sous **Autorisation relative aux données**, choisissez **Grant**. 

   1. Pour **Principaux**, choisissez les **utilisateurs et les rôles IAM**, puis sélectionnez le rôle. `DataAnalystUS`

   1.  Pour les **balises LF ou les ressources de catalogue**, choisissez **Ressources de catalogue de données nommées**.

   1. Pour **Database (Base de données)**, sélectionnez `lakeformation_tutorial_row_security`.

   1.  Pour les **tables (facultatif), choisissez**. `amazon_reviews`

   1. Pour les **filtres de données (facultatif)**, sélectionnez`amazon_reviews_US`.

   1. Pour les **autorisations de filtrage de données**, sélectionnez **Sélectionner**.

   1. Choisissez **Accorder**.

1. Procédez comme suit pour accorder des autorisations à l'analyste de données japonais (`DataAnalystJP`) :

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

   1. Sous **Autorisation relative aux données**, choisissez **Grant**. 

   1. Pour **Principaux**, choisissez les **utilisateurs et les rôles IAM**, puis sélectionnez le rôle. `DataAnalystJP`

   1.  Pour les **balises LF ou les ressources de catalogue**, choisissez **Ressources de catalogue de données nommées**.

   1. Pour **Database (Base de données)**, sélectionnez `lakeformation_tutorial_row_security`.

   1.  Pour les **tables (facultatif), choisissez**. `amazon_reviews`

   1. Pour les **filtres de données (facultatif)**, sélectionnez`amazon_reviews_JP`.

   1. Pour les **autorisations de filtrage de données**, sélectionnez **Sélectionner**.

   1. Choisissez **Accorder**.

## Étape 4 : Requête à l'aide de filtres de données
<a name="query-with-filters"></a>

Avec les filtres de données attachés au tableau des avis sur les produits, exécutez quelques requêtes et découvrez comment les autorisations sont appliquées par Lake Formation.

1. Connectez-vous à la console Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)tant qu'utilisateur. `DataAnalystUS`

1. Exécutez la requête suivante pour récupérer quelques enregistrements, qui sont filtrés en fonction des autorisations au niveau des lignes que nous avons définies :

   ```
   SELECT * 
   FROM lakeformation_tutorial_row_security.amazon_reviews
   LIMIT 10
   ```

   La capture d'écran suivante montre le résultat de la requête.  
![Tableau des résultats des requêtes présentant les avis sur les produits Amazon avec des colonnes pour le marché, l'identifiant du client, le numéro de l'avis, les détails du produit et les évaluations.](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/cbac-tut-query-results3.png)

1. De même, exécutez une requête pour compter le nombre total d'enregistrements par site de vente.

   ```
   SELECT marketplace , count ( * ) as total_count
   FROM lakeformation_tutorial_row_security .amazon_reviews
   GROUP BY marketplace
   ```

   Le résultat de la requête n'affiche que le `marketplace` `US` dans les résultats. Cela est dû au fait que l'utilisateur n'est autorisé à voir que les lignes dont la valeur de `marketplace` colonne est égale à`US`.

1. Passez à l'`DataAnalystJP`utilisateur et exécutez la même requête.

   ```
   SELECT * 
   FROM lakeformation_tutorial_row_security.amazon_reviews
   LIMIT 10
   ```

   Le résultat de la requête indique que seuls les enregistrements appartiennent au `JP``marketplace`.

1. Exécutez la requête pour compter le nombre total d'enregistrements par`marketplace`.

   ```
   SELECT marketplace, count(*) as total_count
   FROM lakeformation_tutorial_row_security.amazon_reviews
   GROUP BY marketplace
   ```

   Le résultat de la requête montre uniquement la ligne appartenant au `JP``marketplace`.

## Étape 5 : Nettoyer les AWS ressources
<a name="cbac-clean-up"></a>

**nettoyer des ressources ;**

Pour éviter que des frais supplémentaires ne vous soient facturés Compte AWS, vous pouvez supprimer les AWS ressources que vous avez utilisées pour ce didacticiel.
+ [Supprimez la pile de formation des nuages](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html).