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 - Amazon QuickSight

Important : nous avons repensé l'espace de travail d' QuickSight analyse Amazon. Il se peut que vous rencontriez des captures d'écran ou du texte procédural qui ne reflètent pas le nouveau look de la QuickSight console. Nous mettons à jour les captures d’écran et le texte des procédures.

Pour rechercher une fonctionnalité ou un élément, utilisez la barre de recherche rapide.

Pour plus d'informations sur QuickSight le nouveau look, consultez Présentation d'une nouvelle expérience d'analyse sur Amazon QuickSight.

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 (RLS) avec des règles basées sur les utilisateurs pour restreindre l'accès à un jeu de données

 S'applique à : édition Enterprise 

Dans l'édition Enterprise d'Amazon QuickSight, 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.

Pour ce faire, créez une requête ou un fichier contenant une colonne intitulée UserName, GroupName ou les deux. Ou vous pouvez créer une requête ou un fichier contenant une colonne intitulée UserARN, GroupARN ou les deux. 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.

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 QuickSight 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 QuickSight 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 QuickSight traite à la fois les valeurs NULL 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 jeux de données restreints sont signalés par le terme RESTREINT sur l'écran Vos jeux de 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

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 QuickSight des groupes Amazon ou des groupes Microsoft AD.

    L'exemple suivant illustre un tableau avec des groupes.

    GroupName Région Segment
    EMEA-Sales EMEA Enterprise, SMB, Startup
    US-Sales ETATS-UNIS Enterprise
    US-Sales ETATS-UNIS SMB, Startup
    US-Sales ETATS-UNIS Startup
    APAC-Sales APAC Enterprise, SMB
    Corporate-Reporting
    APAC-Sales APAC Enterprise, Startup

    L'exemple suivant illustre un tableau contenant des noms d'utilisateur.

    UserName Région Segment
    AlejandroRosalez EMEA Enterprise, SMB, Startup
    MarthaRivera ETATS-UNIS Enterprise
    NikhilJayashankar ETATS-UNIS SMB, Startup
    PauloSantos ETATS-UNIS Startup
    SaanviSarkar APAC Enterprise, SMB
    sales-tps@example.com
    ZhangWei APAC Enterprise, Startup

    L'exemple suivant illustre un tableau contenant les Amazon Resource Names (ARN) des utilisateurs et des groupes.

    UserARN GroupARN Région
    arn:aws:quicksight:us-east-1:123456789012:user/default/Bob arn:aws:quicksight:us-east-1:123456789012:group/default/group-1 APAC
    arn:aws:quicksight:us-east-1:123456789012:user/default/Sam arn:aws:quicksight:us-east-1:123456789012:group/default/group-2 ETATS-UNIS

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

    UserName,Region,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,Region,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,Region 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, Region, Segment from tps-permissions; /* for groups*/ select Group as GroupName, Region, Segment from tps-permissions;
  2. 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 la sécurité au niveau des lignes

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.

  2. Sur la page Jeux de données, choisissez le jeu de données.

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

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

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

  6. 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 QuickSight 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. QuickSight 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.

    Règles pour UserName GroupName, région, segment Accès accordé
    AlejandroRosalez, Ventes EMEA, EMEA, « Entreprise, PME, Startup » Voit toutes les entreprises EMEA, les PME et les startups
    sales-tps@example.com,Corporate-Reporting,"","" Voit toutes les lignes
    L'utilisateur ou le groupe n'a aucune entrée Ne voit pas de lignes
    “”,“”,“”,“” Ignoré ; aucune ligne ne s'affiche si toutes les autres règles sont vides.
    NULL, «», «», NULL Ignoré ; aucune ligne ne s'affiche si toutes les autres règles sont vides.

    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.

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

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