

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.

# Utilisation de la sécurité au niveau des lignes dans Amazon Quick
<a name="row-level-security"></a>


|  | 
| --- |
|  S’applique à : édition Enterprise  | 

Dans l'édition Enterprise d'Amazon Quick, vous pouvez restreindre l'accès à un ensemble de données en configurant la sécurité au niveau des lignes (RLS) sur celui-ci. Vous pouvez le faire avant ou après que vous ayez partagé le jeu de données. Lorsque vous partagez un jeu de données contenant la RLS avec les propriétaires de jeux de données, ils peuvent toujours voir toutes les données. Cependant, lorsque vous le partagez avec les lecteurs, ils ne peuvent voir que les données restreintes par les règles du jeu de données d’autorisations.

En outre, lorsque vous intégrez des tableaux de bord Amazon Quick dans votre application pour les utilisateurs non enregistrés de Quick, vous pouvez utiliser la sécurité au niveau des lignes (RLS) pour les données comportant des balises. filter/restrict Une balise est une chaîne spécifiée par l'utilisateur qui identifie une session dans votre application. Vous pouvez utiliser des balises pour implémenter des contrôles RLS pour vos ensembles de données. En configurant des restrictions basées sur le RLS dans les ensembles de données, Quick filtre les données en fonction des balises de session liées à l'identité/à la session de l'utilisateur.

Vous pouvez restreindre l’accès à un jeu de données en utilisant des règles basées sur un nom d’utilisateur ou de groupe, des règles basées sur des balises, ou les deux.

Choisissez des règles basées sur les utilisateurs si vous souhaitez sécuriser les données des utilisateurs ou des groupes approvisionnés (enregistrés) dans Quick. Pour ce faire, sélectionnez un jeu de données d’autorisations qui contient des règles définies par des colonnes pour chaque utilisateur ou groupe accédant aux données. Seuls les utilisateurs ou les groupes identifiés dans les règles ont accès aux données.

Choisissez des règles basées sur des balises uniquement si vous utilisez des tableaux de bord intégrés et que vous souhaitez sécuriser les données des utilisateurs non provisionnés (utilisateurs non enregistrés) dans Quick. Pour ce faire, définissez des balises sur les colonnes afin de sécuriser les données. Les valeurs des balises doivent être transmises lors de l’intégration des tableaux de bord.

**Topics**
+ [Utilisation de la sécurité au niveau des lignes (RLS) avec des règles basées sur les utilisateurs pour restreindre l’accès à un jeu de données](restrict-access-to-a-data-set-using-row-level-security.md)
+ [Utilisation de la sécurité au niveau des lignes (RLS) avec des règles basées sur les balises pour restreindre l’accès à un jeu de données lors de l’intégration de tableaux de bord pour des utilisateurs anonymes](quicksight-dev-rls-tags.md)

# Utilisation de la sécurité au niveau des lignes (RLS) avec des règles basées sur les utilisateurs pour restreindre l’accès à un jeu de données
<a name="restrict-access-to-a-data-set-using-row-level-security"></a>


|  | 
| --- |
|  S’applique à : édition Enterprise  | 

Dans l'édition Enterprise d'Amazon Quick, vous pouvez restreindre l'accès à un ensemble de données en configurant la sécurité au niveau des lignes (RLS) sur celui-ci. Vous pouvez le faire avant ou après que vous ayez partagé le jeu de données. Lorsque vous partagez un jeu de données contenant la RLS avec les propriétaires de jeux de données, ils peuvent toujours voir toutes les données. Cependant, lorsque vous le partagez avec les lecteurs, ils ne peuvent voir que les données restreintes par les règles du jeu de données d’autorisations. En ajoutant la sécurité au niveau des lignes, vous pouvez mieux contrôler leur accès.

**Note**  
Lorsque vous appliquez des jeux de données SPICE à la sécurité au niveau des lignes, chaque champ du jeu de données peut contenir jusqu’à 2 047 caractères Unicode. Les champs qui contiennent plus que ce quota sont tronqués lors de l’ingestion. Pour en savoir plus sur les quotas de données SPICE, consultez la rubrique [Quotas SPICE pour les données importées](data-source-limits.md#spice-limits).

Pour ce faire, vous créez une requête ou un fichier avec une colonne pour l'identification des utilisateurs ou des groupes. Vous pouvez utiliser soit `UserName` et`GroupName`, soit alternativement `UserARN` et`GroupARN`. Vous pouvez considérer que cela revient à *ajouter une règle* pour cet utilisateur ou ce groupe. Ensuite, vous pouvez ajouter une colonne à la requête ou au fichier pour chaque champ dont vous souhaitez autoriser ou restreindre l’accès. Pour chaque nom d’utilisateur ou de groupe ajouté, ajoutez les valeurs pour chaque champ. Vous pouvez utiliser NULL (aucune valeur) pour indiquer toutes les valeurs. Pour voir des exemples de règles de jeu de données, reportez-vous à la section [Création de règles de jeux de données pour la sécurité au niveau des lignes](#create-data-set-rules-for-row-level-security).

Ajoutez les règles en tant que jeu de données d’autorisations pour appliquer les règles de jeu de données à votre jeu de données. Gardez les points suivants à l’esprit :
+ Le jeu de données d’autorisations ne peut pas contenir de valeurs en double. Les doublons sont ignorés lors de l’évaluation de l’application des règles.
+ Chaque utilisateur ou groupe spécifié peut voir uniquement les lignes qui *correspondent* aux valeurs de champ indiquées dans les règles du jeu de données. 
+ Si vous ajoutez une règle pour un utilisateur ou un groupe et que vous n’indiquez aucune valeur (NULL) dans toutes les autres colonnes, cet utilisateur ou groupe se voit accorder l’accès à la totalité des données. 
+ Si vous n’ajoutez pas de règle pour un utilisateur ou un groupe, cet utilisateur ou groupe ne peut voir aucune donnée. 
+ L’ensemble complet d’enregistrements de règle appliqués par utilisateur ne doit pas dépasser 999. Cette limite s’applique au nombre total de règles qui sont directement affectées à un nom d’utilisateur, ainsi qu’aux règles qui lui sont attribuées par le biais de noms de groupe. 
+ Si un champ contient une virgule (,) Amazon Quick traite chaque mot séparé d'un autre par une virgule comme une valeur individuelle dans le filtre. Par exemple, in `('AWS', 'INC')`, `AWS,INC` est considéré comme deux chaînes : `AWS` et `INC`. Pour filtrer avec `AWS,INC`, placez la chaîne entre guillemets doubles dans le jeu de données d’autorisations. 

  Si le jeu de données restreint est un jeu de données SPICE, le nombre de valeurs de filtre appliquées par utilisateur ne peut pas dépasser 192 000 pour chaque champ restreint. Cette limite s’applique au nombre total de valeurs de filtre qui sont directement affectées à un nom d’utilisateur, ainsi qu’aux valeurs de filtre qui lui sont attribuées par le biais de noms de groupe.

  Si le jeu de données restreint est un jeu de données à requête directe, le nombre de valeurs de filtre appliquées par utilisateur varie en fonction des sources de données.

  Le dépassement de la limite de valeur de filtre peut entraîner un échec de la représentation visuelle. Nous vous recommandons d’ajouter une colonne supplémentaire à votre jeu de données restreint pour diviser les lignes en groupes en fonction de la colonne restreinte d’origine afin de raccourcir la liste de filtres.

Amazon Quick traite les espaces comme des valeurs littérales. Si un champ dont vous souhaitez limiter l’accès comprend un espace, la règle du jeu de données s’applique à ces lignes. Amazon Quick considère les deux NULLs et les espaces vides (chaînes vides « ») comme « sans valeur ». Une valeur NULL correspond à un champ vide. 

Vous pouvez configurer une requête directe pour accéder à un tableau d’autorisations en fonction de la source de données de votre jeu de données. Les termes contenant des espaces à l’intérieur ne doivent pas être délimités par des guillemets. Si vous utilisez une requête directe, vous pouvez facilement modifier cette requête dans la source de données d’origine. 

Vous pouvez charger des règles de jeu de données à partir d’un fichier texte ou d’une feuille de calcul. Si vous utilisez un fichier au format CSV (valeurs séparées par des virgules), n’incluez pas d’espaces sur la ligne en question. Les termes contenant des espaces à l’intérieur doivent être délimités par des guillemets. Si vous utilisez des règles de jeu de données basées sur des fichiers, appliquez les modifications en remplaçant les règles existantes dans les paramètres d’autorisation du jeu de données.

Les ensembles de données restreints sont marqués du mot **RESTREINT** dans l'écran **Données**.

Les jeux de données enfants créés à partir d’un jeu de données parent dont les règles RLS sont actives conservent les mêmes règles RLS que celles du jeu de données parent. Vous pouvez ajouter d’autres règles RLS au jeu de données enfant, mais vous ne pouvez pas supprimer les règles RLS héritées du jeu de données parent. 

Les jeux de données enfants créés à partir d’un jeu de données parent dont les règles RLS sont actives ne peuvent être créés qu’avec Direct Query. Les jeux de données enfants qui héritent des règles RLS du jeu de données parent ne sont pas pris en charge dans SPICE.

La sécurité au niveau des lignes fonctionne uniquement pour les champs contenant des données textuelles (chaîne, char, varchar, etc.). Actuellement, ce type de sécurité ne fonctionne pas pour les champs de date ou numériques. La détection des anomalies n’est pas prise en charge pour les jeux de données utilisant la sécurité au niveau des lignes (RLS).

## Création de règles de jeux de données pour la sécurité au niveau des lignes
<a name="create-data-set-rules-for-row-level-security"></a>

Utilisez la procédure suivante pour créer un fichier d’autorisations ou une requête à utiliser en tant que règles de jeux de données.

**Pour créer des fichiers d’autorisations ou des requêtes à utiliser en tant que règles de jeux de données**

1. Créez un fichier ou une requête qui contient les règles du jeu de données (autorisations) pour la sécurité au niveau des lignes (RLS). 

   Peu importe dans quel ordre se trouvent les champs. Cependant, tous les champs sont sensibles à la casse. Assurez-vous qu’ils correspondent exactement aux noms et valeurs de champs. 

   La structure doit ressembler à l’une des structures suivantes. Assurez-vous qu’au moins l’un de vos champs identifie des utilisateurs ou des groupes. Vous pouvez inclure les deux, mais un seul est requis et un seul est utilisé à la fois. Vous pouvez attribuer le nom de votre choix au champ que vous utilisez pour les utilisateurs ou les groupes.
**Note**  
Si vous spécifiez des groupes, utilisez uniquement des groupes Amazon Quick ou des groupes Microsoft AD. 

   L’exemple suivant illustre un tableau avec des groupes.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/quick/latest/userguide/restrict-access-to-a-data-set-using-row-level-security.html)

   L’exemple suivant illustre un tableau contenant des noms d’utilisateur.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/quick/latest/userguide/restrict-access-to-a-data-set-using-row-level-security.html)

   L'exemple suivant montre un tableau avec les noms des utilisateurs et des groupes Amazon Resource Names (ARNs).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/quick/latest/userguide/restrict-access-to-a-data-set-using-row-level-security.html)

   Si vous utilisez un fichier .csv, la structure doit être similaire à l’une des structures suivantes.

   ```
   UserName,SalesRegion,Segment
   AlejandroRosalez,EMEA,"Enterprise,SMB,Startup"
   MarthaRivera,US,Enterprise
   NikhilJayashankars,US,SMB
   PauloSantos,US,Startup
   SaanviSarkar,APAC,"SMB,Startup"
   sales-tps@example.com,"",""
   ZhangWei,APAC-Sales,"Enterprise,Startup"
   ```

   ```
   GroupName,SalesRegion,Segment
   EMEA-Sales,EMEA,"Enterprise,SMB,Startup"
   US-Sales,US,Enterprise
   US-Sales,US,SMB
   US-Sales,US,Startup
   APAC-Sales,APAC,"SMB,Startup"
   Corporate-Reporting,"",""
   APAC-Sales,APAC,"Enterprise,Startup"
   ```

   ```
   UserARN,GroupARN,SalesRegion
   arn:aws:quicksight:us-east-1:123456789012:user/Bob,arn:aws:quicksight:us-east-1:123456789012:group/group-1,APAC
   arn:aws:quicksight:us-east-1:123456789012:user/Sam,arn:aws:quicksight:us-east-1:123456789012:group/group-2,US
   ```

   Voici un exemple de code SQL.

   ```
   /* for users*/
   	select User as UserName, SalesRegion, Segment
   	from tps-permissions;
   
   	/* for groups*/
   	select Group as GroupName, SalesRegion, Segment
   	from tps-permissions;
   ```

1. Créez un jeu de données pour les règles du jeu de données. Pour vous assurer que vous pouvez facilement le trouver, donnez-lui un nom significatif : par exemple, **Permissions-Sales-Pipeline**.

## Création de règles de jeux de données pour la sécurité au niveau des lignes
<a name="rules-dataset-flagging-for-row-level-security"></a>

Utilisez la procédure suivante pour marquer de manière appropriée un jeu de données en tant que jeu de données de règles.

Le jeu de données de règles est un indicateur qui distingue les jeux de données d’autorisations utilisés pour la sécurité au niveau des lignes des jeux de données ordinaires. Si un jeu de données d’autorisations a été appliqué à un jeu de données ordinaire avant le 31 mars 2025, un indicateur de jeu de données de règles sera affiché sur la page d’accueil du **jeu de données**. 

Si un jeu de données d’autorisations n’a pas été appliqué à un jeu de données ordinaire avant le 31 mars 2025, il sera classé comme un jeu de données ordinaire. Pour l’utiliser comme jeu de données de règles, dupliquez le jeu de données d’autorisations et marquez-le comme jeu de données de règles sur la console lors de la création du jeu de données. Sélectionnez MODIFIER LE JEU DE DONNÉES, puis sous les options, choisissez DUPLIQUER EN TANT QUE JEU DE DONNÉES SELON LES RÈGLES. 

Pour réussir à le dupliquer en tant que jeu de données de règles, assurez-vous que le jeu de données d’origine possède : 1. Métadonnées utilisateur ou colonne(s) de métadonnées de groupe requises et 2. Colonnes de type chaîne uniquement.

Pour créer un nouveau jeu de données de règles sur la console, sélectionnez NOUVEAU JEU DE DONNÉES DE RÈGLES dans le menu déroulant NOUVEAU JEU DE DONNÉES. Lorsque vous créez un jeu de données de règles par programmation, ajoutez le paramètre suivant [UseAs:](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSet.html#API_CreateDataSet_RequestSyntax) RLS\$1RULES. Il s’agit d’un paramètre facultatif qui n’est utilisé que pour créer un jeu de données de règles. Une fois qu’un jeu de données a été créé, via la console ou par programmation, et marqué comme jeu de données de règles ou comme jeu de données ordinaire, il ne peut pas être modifié.

Une fois que les ensembles de données sont marqués comme des ensembles de données de règles, Amazon Quick leur applique des règles strictes d'ingestion de SPICE. Pour garantir l’intégrité des données, les ingestions SPICE pour les jeux de données de règles échoueront si des lignes non valides ou des cellules dépassent les limites de longueur. Vous devez résoudre les problèmes d’ingestion afin de relancer une ingestion réussie. Les règles d’ingestion strictes ne s’appliquent qu’aux jeux de données de règles. Les jeux de données ordinaires ne connaîtront aucun échec d’ingestion en cas de lignes sautées ou de troncatures de chaînes. 

## Création de la sécurité au niveau des lignes
<a name="apply-row-level-security"></a>

Utilisez la procédure suivante pour appliquer la sécurité au niveau des lignes (RLS) à l’aide d’un fichier ou d’une requête que vous utilisez comme un jeu de données contenant les règles des autorisations. 

**Pour appliquer la sécurité au niveau des lignes à l’aide d’un fichier ou d’une requête**

1. Confirmez l’ajout de vos règles en tant que nouveau jeu de données. Si vous les avez ajoutées, mais qu’elles n’apparaissent pas dans la liste des jeux de données, actualisez l’écran.

1. Sur la page **Données**, sélectionnez le jeu de données

1. Sur la page des détails du jeu de données qui s’ouvre, dans **Sécurité au niveau des lignes**, sélectionnez **Configurer**.

1. Sur la page **Configurer la sécurité au niveau des lignes** qui s’ouvre, sélectionnez **Règles basées sur les utilisateurs**.

1. Choisissez votre jeu de données d’autorisations depuis la liste des jeux de données. 

   Si votre jeu de données d’autorisations n’apparaît pas sur cet écran, retournez à vos jeux de données et actualisez la page.

1. Dans **Politique d’autorisations**, choisissez **Accorder l’accès au jeu de données**. Chaque jeu de données ne dispose que d’un jeu de données d’autorisations actives. Si vous essayez d’ajouter un second jeu de données d’autorisations, celui-ci remplacera l’ensemble existant.
**Important**  
Certaines restrictions s’appliquent aux valeurs NULL et aux valeurs de chaînes vides dans le cadre de la sécurité au niveau des lignes :  
Si votre jeu de données comporte des valeurs NULL ou des chaînes vides ("") dans les champs restreints, ces lignes seront ignorées lorsque les restrictions sont appliquées. 
Les valeurs NULL et les chaînes vides sont traitées de manière identique dans le jeu de données d’autorisations. Pour plus d’informations, consultez le tableau suivant.
Pour éviter d'exposer accidentellement des informations sensibles, Amazon Quick ignore les règles RLS vides qui accordent l'accès à tout le monde. Une *règle RLS vide* apparaît lorsque toutes les colonnes d’une ligne n’ont aucune valeur. Quick RLS traite les chaînes NULL, les chaînes vides (« ») ou les chaînes vides séparées par des virgules (par exemple «,, ») comme des valeurs nulles.  
Après avoir ignoré les règles vides, les autres règles RLS non vides continuent de s’appliquer.
Si un jeu de données d’autorisations ne comporte que des règles vides et qu’elles ont toutes été ignorées, personne n’aura accès aux données restreintes par ce jeu de données d’autorisations.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/quick/latest/userguide/restrict-access-to-a-data-set-using-row-level-security.html)

   Toutes les personnes avec qui vous avez partagé votre tableau de bord peuvent consulter toutes les données qu’il contient, sauf si le jeu de données est limité par des règles de jeu de données. 

1. Sélectionnez **Appliquer le jeu de données** pour enregistrer vos modifications. Ensuite, sur la page **Enregistrer les règles du jeu de données ?** page, sélectionnez **Appliquer et activer**. Les modifications d’autorisations s’appliquent immédiatement aux utilisateurs existants. 

1. (Facultatif) Pour supprimer des autorisations, vous devez d’abord supprimer les règles du jeu de données dans le jeu de données. 

   Assurez-vous que les règles du jeu de données soient supprimées. Choisissez ensuite le jeu de données d’autorisations, puis sélectionnez **Supprimer le jeu de données**.

   Pour écraser des autorisations, sélectionnez un nouveau jeu de données et appliquez-le. Vous pouvez réutiliser le même nom de jeu de données. Toutefois, assurez-vous d’appliquer les nouvelles autorisations dans l’écran **Autorisations** pour les activer. Les requêtes SQL sont mises à jour de manière dynamique, de sorte qu'elles peuvent être gérées en dehors d'Amazon Quick. Pour les requêtes, les autorisations sont mises à jour lorsque le cache de requête directe est automatiquement actualisé.

Si vous supprimez un jeu de données d’autorisations d’un fichier avant de le supprimer du jeu de données cible, les utilisateurs restreints ne pourront pas y accéder. Le jeu de données continue d’être marqué comme **RESTREINT** lorsqu’il est dans cet état. Toutefois, lorsque vous consultez les **Autorisations** pour ce jeu de données, vous pouvez voir qu’il n’y a aucune règle de jeu de données sélectionnée. 

Pour corriger ce problème, spécifiez les nouvelles règles de jeu de données. La création d’un jeu de données portant le même nom ne suffit pas pour résoudre ce problème. Vous devez sélectionner le nouveau jeu de données d’autorisations dans l’écran **Autorisations**. Cette restriction ne s’applique pas aux requêtes SQL directes.

# Utilisation de la sécurité au niveau des lignes (RLS) avec des règles basées sur les balises pour restreindre l’accès à un jeu de données lors de l’intégration de tableaux de bord pour des utilisateurs anonymes
<a name="quicksight-dev-rls-tags"></a>


|  | 
| --- |
|  S’applique à : édition Enterprise  | 


|  | 
| --- |
|    Public cible : Amazon Quick Administrators et développeurs Amazon Quick  | 

Lorsque vous intégrez des tableaux de bord Amazon Quick dans votre application pour les utilisateurs qui ne sont pas approvisionnés (enregistrés) dans Quick, vous pouvez utiliser la sécurité au niveau des lignes (RLS) pour les données comportant des balises. filter/restrict Une balise est une chaîne spécifiée par l'utilisateur qui identifie une session dans votre application. Vous pouvez utiliser des balises pour implémenter des contrôles RLS pour vos ensembles de données. En configurant des restrictions basées sur le RLS dans les ensembles de données, Quick filtre les données en fonction des balises de session liées à l'identité/à la session de l'utilisateur.

Par exemple, supposons que vous soyez une entreprise de logistique qui possède une application destinée aux clients de différents détaillants. Des milliers d’utilisateurs de ces détaillants accèdent à votre application pour consulter les métriques relatives à la manière dont leurs commandes sont expédiées depuis votre entrepôt. 

Vous ne souhaitez pas gérer des milliers d'utilisateurs dans Quick. Vous utilisez donc l'intégration anonyme pour intégrer les tableaux de bord sélectionnés dans votre application afin que vos utilisateurs authentifiés et autorisés puissent voir. Cependant, vous devez vous assurer que les détaillants ne voient que les données relatives à leur activité et non à l’activité des autres détaillants. Vous pouvez utiliser la sécurité au niveau des lignes avec des balises pour vous assurer que vos clients ne voient que les données qui les concernent.

Pour ce faire, exécutez les étapes suivantes :

1. Ajoutez des balises RLS à un jeu de données.

1. Attribuez des valeurs à ces balises lors de l’exécution à l’aide de l’opération d’API `GenerateEmbedUrlForAnonymousUser`.

   Pour plus d’informations sur l’intégration des tableaux de bord pour les utilisateurs anonymes à l’aide de l’opération d’API `GenerateEmbedUrlForAnonymousUser`, consultez la rubrique [Intégration de tableaux de bord Amazon Quick Sight pour les utilisateurs anonymes (non enregistrés)](embedded-analytics-dashboards-for-everyone.md).

Avant de pouvoir utiliser la sécurité au niveau des lignes avec des balises, gardez à l’esprit les points suivants :
+ L’utilisation de la sécurité au niveau des lignes avec des balises n’est actuellement prise en charge que pour l’intégration anonyme, en particulier pour les tableaux de bord intégrés qui utilisent l’opération d’API `GenerateEmbedUrlForAnonymousUser`.
+ L’utilisation de la sécurité au niveau des lignes avec des balises n’est pas prise en charge pour les tableaux de bord intégrés qui utilisent l’opération d’API `GenerateEmbedURLForRegisteredUser` ou l’ancienne opération d’API `GetDashboardEmbedUrl`.
+ Les balises RLS ne sont pas prises en charge avec Gestion des identités et des accès AWS (IAM) ou le type d'identité rapide.
+ Lorsque vous appliquez des jeux de données SPICE à la sécurité au niveau des lignes, chaque champ du jeu de données peut contenir jusqu’à 2 047 caractères Unicode. Les champs qui contiennent plus que ce quota sont tronqués lors de l’ingestion. Pour en savoir plus sur les quotas de données SPICE, consultez la rubrique [Quotas SPICE pour les données importées](data-source-limits.md#spice-limits).

## Étape 1 : Ajouter des balises RLS à un jeu de données
<a name="quicksight-dev-rls-tags-add"></a>

Vous pouvez ajouter des règles basées sur des balises à un ensemble de données dans Amazon Quick. Vous pouvez également appeler l’opération d’API `CreateDataSet` ou `UpdateDataSet`, puis ajouter des règles basées sur des balises de cette façon. Pour de plus amples informations, veuillez consulter [Ajouter des balises RLS à un jeu de données à l’aide de l’API](#quicksight-dev-rls-tags-add-api).

Utilisez la procédure suivante pour ajouter des balises RLS à un ensemble de données dans Quick.

**Pour ajouter des balises RLS à un jeu de données**

1. Sur la page de démarrage rapide, choisissez **Data** sur la gauche.

1. Choisissez le jeu de données auquel vous souhaitez ajouter RLS.

1. Sur la page des détails du jeu de données qui s’ouvre, dans **Sécurité au niveau des lignes**, sélectionnez **Configurer**.

1. Sur la page **Configurer la sécurité au niveau des lignes** qui s’ouvre, sélectionnez **Règles basées sur les balises**.

1. Dans **Colonne**, choisissez une colonne à laquelle vous souhaitez ajouter des règles de balise.

   Par exemple, dans le cas de l’entreprise de logistique, la colonne `retailer_id` est utilisée.

   Seules les colonnes avec un type de données String sont répertoriées.

1. Dans **Balise**, saisissez une clé de balise. Vous pouvez saisir le nom de balise de votre choix.

   Par exemple, dans le cas de l’entreprise de logistique, la clé de balise `tag_retailer_id` est utilisée. Cela permet de définir la sécurité au niveau des lignes en fonction du revendeur qui accède à l’application.

1. (Facultatif) Dans **Délimiteur**, choisissez un délimiteur dans la liste ou saisissez le vôtre.

   Vous pouvez utiliser des délimiteurs pour séparer les chaînes de texte lorsque vous attribuez plusieurs valeurs à une balise. La valeur d’un délimiteur peut comporter au maximum 10 caractères.

1. (Facultatif) Dans **Tout faire correspondre**, cliquez sur **\$1** ou saisissez votre ou vos caractères.

   Cette option peut être n’importe quel caractère que vous souhaitez utiliser lorsque vous souhaitez filtrer en fonction de toutes les valeurs de cette colonne du jeu de données. Au lieu de répertorier les valeurs une par une, vous pouvez utiliser le caractère. Si cette valeur est spécifiée, elle peut comporter au moins un caractère ou 256 caractères au maximum.

1. Choisissez **Ajouter**.

   La règle des balises est ajoutée au jeu de données et est répertoriée en bas, mais elle n’est pas encore appliquée. Pour ajouter une autre règle de balise au jeu de données, répétez les étapes 5 à 9. Pour modifier une règle de balise, choisissez l’icône en forme de crayon en regard de la règle. Pour modifier une règle de balise, choisissez l’icône de suppression en regard de la règle. Vous pouvez ajouter jusqu’à 50 balises à un jeu de données.

1. Lorsque vous êtes prêt à appliquer les règles de balise au jeu de données, choisissez **Appliquer les règles**.

1. Sur la page **Activer la sécurité basée sur des balises ?** qui s’ouvre, sélectionnez **Appliquer et activer**.

   Les règles basées sur des balises sont désormais actives. Sur la page **Configurer la sécurité au niveau des lignes**, une option apparaît pour vous permettre d’activer ou de désactiver les règles de balise pour le jeu de données.

   Pour désactiver toutes les règles basées sur des balises pour le jeu de données, désactivez l’option **Règles basées sur des balises**, puis saisissez « confirmer » dans la zone de texte qui apparaît.

   Sur la page **Données**, une icône représentant un cadenas apparaît dans la ligne du jeu de données pour indiquer que les règles relatives aux balises sont activées.

   Vous pouvez désormais utiliser les règles de balise pour définir les valeurs des balises lors de l’exécution, comme décrit dans [Étape 2 : Attribuer des valeurs aux balises RLS lors de l’exécution](#quicksight-dev-rls-tags-assign-values). Les règles ne concernent que les lecteurs rapides lorsqu'ils sont actifs.
**Important**  
Une fois les balises attribuées et activées dans le jeu de données, veillez à autoriser les auteurs de Quick à voir toutes les données du jeu de données lors de la création d'un tableau de bord.   
Pour autoriser les auteurs de Quick à consulter les données du jeu de données, créez un fichier d'autorisations ou une requête à utiliser comme règles du jeu de données. Pour de plus amples informations, veuillez consulter [Création de règles de jeux de données pour la sécurité au niveau des lignes](restrict-access-to-a-data-set-using-row-level-security.md#create-data-set-rules-for-row-level-security).

Une fois que vous avez créé une règle basée sur des balises, un nouveau tableau **Gérer les règles** apparaît. Ce tableau montre comment vos règles basées sur des balises sont liées les unes aux autres. Pour modifier les règles répertoriées dans le tableau **Gérer les règles**, cliquez sur l’icône en forme de crayon en regard de la règle. Ensuite, ajoutez ou supprimez des balises, puis choisissez **Mettre à jour**. Pour appliquer votre règle mise à jour au jeu de données, choisissez **Appliquer**.

### (Facultatif) Ajouter la condition OR aux balises RLS
<a name="quicksight-dev-rls-tags-or"></a>

Vous pouvez également ajouter la condition OR à vos règles basées sur des balises afin de personnaliser davantage la façon dont les données sont présentées aux utilisateurs de votre compte Quick. Lorsque vous utilisez la condition OR avec vos règles basées sur des balises, des éléments visuels apparaissent dans Quick si au moins une balise définie dans la règle est valide.

**Pour ajouter la condition OR à vos règles basées sur des balises**

1. Dans le tableau **Gérer les règles**, sélectionnez **Ajouter une condition OR**.

1. Dans la liste déroulante **Sélectionner une balise** qui apparaît, choisissez la balise pour laquelle vous souhaitez créer une condition OR. Vous pouvez ajouter jusqu’à 50 conditions OR au tableau **Gérer les règles**. Vous pouvez ajouter plusieurs balises à une seule colonne d’un jeu de données, mais au moins une balise de colonne doit être incluse dans une règle.

1. Choisissez **Mettre à jour** pour ajouter la condition à votre règle, puis choisissez **Appliquer** pour appliquer la règle mise à jour à votre jeu de données.

### Ajouter des balises RLS à un jeu de données à l’aide de l’API
<a name="quicksight-dev-rls-tags-add-api"></a>

Vous pouvez également configurer et activer la sécurité au niveau des lignes basée sur des balises sur votre jeu de données en appelant l’opération d’API `CreateDataSet` ou `UpdateDataSet`. Utilisez les exemples suivants pour apprendre à faire cela.

**Important**  
Lors de la configuration des balises de session dans l'appel d'API,  
Traitez les balises de session comme des informations d'identification de sécurité. N'exposez pas les balises de session aux utilisateurs finaux ou au code côté client.
Mettez en œuvre des contrôles côté serveur. Assurez-vous que les balises de session sont définies exclusivement par vos services principaux fiables, et non par des paramètres que les utilisateurs finaux peuvent modifier.
Protégez les balises de session contre l'énumération. Assurez-vous que les utilisateurs d'un locataire ne peuvent pas découvrir ou deviner les valeurs SessionTag appartenant à d'autres locataires.
Passez en revue votre architecture. Si les clients ou partenaires en aval sont autorisés à appeler directement l'API, déterminez si ces parties peuvent spécifier des valeurs SessionTag pour les locataires auxquels ils ne doivent pas accéder.

------
#### [ CreateDataSet ]

Voici un exemple de création d’un jeu de données qui utilise la sécurité au niveau des lignes avec des balises. Pour cela, reprenons le scénario de l’entreprise de logistique décrit précédemment. Les balises sont définies dans l’élément `row-level-permission-tag-configuration`. Les balises sont définies sur les colonnes pour lesquelles vous souhaitez sécuriser les données. Pour plus d'informations sur cet élément facultatif, consultez [RowLevelPermissionTagConfiguration](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RowLevelPermissionTagConfiguration.html)le *Amazon Quick API Reference*.

```
create-data-set
		--aws-account-id <value>
		--data-set-id <value>
		--name <value>
		--physical-table-map <value>
		[--logical-table-map <value>]
		--import-mode <value>
		[--column-groups <value>]
		[--field-folders <value>]
		[--permissions <value>]
		[--row-level-permission-data-set <value>]
		[--column-level-permission-rules <value>]
		[--tags <value>]
		[--cli-input-json <value>]
		[--generate-cli-skeleton <value>]
		[--row-level-permission-tag-configuration 
	'{
		"Status": "ENABLED",
		"TagRules": 
			[
				{
					"TagKey": "tag_retailer_id",
					"ColumnName": "retailer_id",
					"TagMultiValueDelimiter": ",",
					"MatchAllValue": "*"
				},
				{
					"TagKey": "tag_role",
					"ColumnName": "role"
				}
			],
		"TagRuleConfigurations":
			[
				tag_retailer_id
			],
			[
				tag_role
			]
	}'
]
```

Dans cet exemple, les balises sont définies dans la partie `TagRules` de l’élément. Dans cet exemple, deux balises sont définies sur la base de deux colonnes :
+ La clé de balise `tag_retailer_id` est définie pour la colonne `retailer_id`. Dans ce cas, pour l’entreprise de logistique, cela permet de définir la sécurité au niveau des lignes en fonction du détaillant qui accède à l’application.
+ La clé de balise `tag_role` est définie pour la colonne `role`. Dans ce cas, pour l’entreprise de logistique, cela permet de définir une couche de sécurité au niveau des lignes supplémentaire en fonction du rôle de l’utilisateur accédant à votre application à partir d’un revendeur spécifique. Par exemple, `store_supervisor` ou `manager`.

Pour chaque balise, vous pouvez définir les valeurs `TagMultiValueDelimiter` et`MatchAllValue`. Ces valeurs sont facultatives.
+ `TagMultiValueDelimiter` : cette option peut être n’importe quelle chaîne que vous souhaitez utiliser pour délimiter les valeurs lorsque vous les transmettez au moment de l’exécution. La valeur peut contenir au maximum 10 caractères. Dans ce cas, une virgule est utilisée comme valeur du délimiteur.
+ `MatchAllValue` : cette option peut être n’importe quel caractère que vous souhaitez utiliser lorsque vous souhaitez filtrer en fonction de toutes les valeurs de cette colonne du jeu de données. Au lieu de répertorier les valeurs une par une, vous pouvez utiliser le caractère. Si elle est spécifiée, cette valeur peut comporter au moins un caractère ou 256 caractères au maximum. Dans ce cas, un astérisque est utilisé comme valeur de correspondance totale.

Lors de la configuration des balises pour les colonnes du jeu de données, activez-les ou désactivez-les à l’aide de la propriété obligatoire `Status`. Pour activer les règles de balise, utilisez la valeur `ENABLED` pour cette propriété. En activant les règles de balise, vous pouvez les utiliser pour définir les valeurs des balises au moment de l’exécution, comme décrit dans [Étape 2 : Attribuer des valeurs aux balises RLS lors de l’exécution](#quicksight-dev-rls-tags-assign-values).

Voici un exemple de définition de réponse.

```
{
			"Status": 201,
			"Arn": "arn:aws:quicksight:us-west-2:11112222333:dataset/RLS-Dataset",
			"DataSetId": "RLS-Dataset",
			"RequestId": "aa4f3c00-b937-4175-859a-543f250f8bb2"
		}
```

------
#### [ UpdateDataSet ]

**UpdateDataSet**

Vous pouvez utiliser l’opération d’API `UpdateDataSet` pour ajouter ou mettre à jour des balises RLS pour un jeu de données existant.

Voici un exemple de mise à jour d’un jeu de données avec des balises RLS. Pour cela, reprenons le scénario de l’entreprise de logistique décrit précédemment.

```
update-data-set
		--aws-account-id <value>
		--data-set-id <value>
		--name <value>
		--physical-table-map <value>
		[--logical-table-map <value>]
		--import-mode <value>
		[--column-groups <value>
		[--field-folders <value>]
		[--row-level-permission-data-set <value>]
		[--column-level-permission-rules <value>]
		[--cli-input-json <value>]
		[--generate-cli-skeleton <value>]
				[--row-level-permission-tag-configuration 
	'{
		"Status": "ENABLED",
		"TagRules": 
			[
				{
					"TagKey": "tag_retailer_id",
					"ColumnName": "retailer_id",
					"TagMultiValueDelimiter": ",",
					"MatchAllValue": "*"
				},
				{
					"TagKey": "tag_role",
					"ColumnName": "role"
				}
			],
		"TagRuleConfigurations":
			[
				tag_retailer_id
			],
			[
				tag_role
			]
	}'
]
```

Voici un exemple de définition de réponse.

```
{
			"Status": 201,
			"Arn": "arn:aws:quicksight:us-west-2:11112222333:dataset/RLS-Dataset",
			"DataSetId": "RLS-Dataset",
			"RequestId": "aa4f3c00-b937-4175-859a-543f250f8bb2"
		}
```

------

**Important**  
Une fois les balises attribuées et activées dans le jeu de données, veillez à autoriser les auteurs de Quick à voir toutes les données du jeu de données lors de la création d'un tableau de bord.   
Pour autoriser les auteurs de Quick à consulter les données du jeu de données, créez un fichier d'autorisations ou une requête à utiliser comme règles du jeu de données. Pour de plus amples informations, veuillez consulter [Création de règles de jeux de données pour la sécurité au niveau des lignes](restrict-access-to-a-data-set-using-row-level-security.md#create-data-set-rules-for-row-level-security).

Pour plus d'informations sur `RowLevelPermissionTagConfiguration` cet élément, consultez [RowLevelPermissionTagConfiguration](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RowLevelPermissionTagConfiguration.html)le *Amazon Quick API Reference*.

## Étape 2 : Attribuer des valeurs aux balises RLS lors de l’exécution
<a name="quicksight-dev-rls-tags-assign-values"></a>

Vous pouvez utiliser des balises pour la sécurité au niveau des lignes uniquement pour une intégration anonyme. Vous pouvez définir des valeurs pour les balises à l’aide de l’opération d’API `GenerateEmbedUrlForAnonymousUser`.

**Important**  
Lors de la configuration des balises de session dans l'appel d'API,  
Traitez les balises de session comme des informations d'identification de sécurité. N'exposez pas les balises de session aux utilisateurs finaux ou au code côté client.
Mettez en œuvre des contrôles côté serveur. Assurez-vous que les balises de session sont définies exclusivement par vos services principaux fiables, et non par des paramètres que les utilisateurs finaux peuvent modifier.
Protégez les balises de session contre l'énumération. Assurez-vous que les utilisateurs d'un locataire ne peuvent pas découvrir ou deviner les valeurs SessionTag appartenant à d'autres locataires.
Passez en revue votre architecture. Si les clients ou partenaires en aval sont autorisés à appeler directement l'API, déterminez si ces parties peuvent spécifier des valeurs SessionTag pour les locataires auxquels ils ne doivent pas accéder.

L’exemple suivant montre comment attribuer des valeurs aux balises RLS définies dans le jeu de données à l’étape précédente.

```
POST /accounts/AwsAccountId/embed-url/anonymous-user
	HTTP/1.1
	Content-type: application/json
	{
		“AwsAccountId”: “string”,
		“SessionLifetimeInMinutes”: integer,
		“Namespace”: “string”, // The namespace to which the anonymous end user virtually belongs
		“SessionTags”:  // Optional: Can be used for row-level security
			[
				{
					“Key”: “tag_retailer_id”,
					“Value”: “West,Central,South”
				}
				{
					“Key”: “tag_role”,
					“Value”: “shift_manager”
				}
			],
		“AuthorizedResourceArns”:
			[
				“string”
			],
		“ExperienceConfiguration”:
			{
				“Dashboard”:
					{
						“InitialDashboardId”: “string”
						// This is the initial dashboard ID the customer wants the user to land on. This ID goes in the output URL.
					}
			}
	}
```

Voici un exemple de définition de réponse.

```
HTTP/1.1 Status
	Content-type: application/json

	{
	"EmbedUrl": "string",
	"RequestId": "string"
	}
```

La prise en charge du RLS sans enregistrement des utilisateurs dans Quick n'est prise en charge que dans le cadre du fonctionnement de l'`GenerateEmbedUrlForAnonymousUser`API. Dans cette opération, sous `SessionTags`, vous pouvez définir les valeurs des balises associées aux colonnes du jeu de données.

Dans ce cas, les attributions suivantes sont définies :
+ Les valeurs `West`, `Central` et `South` sont attribuées à la balise `tag_retailer_id` lors de l’exécution. Une virgule est utilisée pour le délimiteur, qui a été défini dans `TagMultipleValueDelimiter` du jeu de données. Pour utiliser les valeurs d’appel dans la colonne, vous pouvez définir la valeur sur *\$1*, qui a été définie sur `MatchAllValue` lors de la création de la balise.
+ La valeur `shift_manager` est attribuée à la balise `tag_role`.

L’utilisateur se servant de l’URL générée ne peut voir que les lignes dont la valeur `shift_manager` figure dans la colonne `role`. Cet utilisateur peut uniquement afficher la valeur `West`, `Central` ou `South` dans la colonne `retailer_id`.

Pour plus d'informations sur l'intégration de tableaux de bord pour les utilisateurs anonymes à l'aide de l'opération d'`GenerateEmbedUrlForAnonymousUser`API[Intégration de tableaux de bord Amazon Quick Sight pour les utilisateurs anonymes (non enregistrés)](embedded-analytics-dashboards-for-everyone.md), consultez ou [GenerateEmbedUrlForAnonymousUser](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GenerateEmbedUrlForAnonymousUser.html)consultez le *Amazon Quick* API Reference