Utilisation de la sécurité au niveau des lignes (RLS) pour limiter l'accès à un ensemble de données - Amazon QuickSight

Utilisation de la sécurité au niveau des lignes (RLS) pour limiter l'accès à un ensemble de données

Dans l'édition Enterprise Amazon QuickSightd', vous pouvez restreindre l'accès à un ensemble de données en configurant la sécurité au niveau des lignes (RLS). Vous pouvez le faire avant ou après le partage de l'ensemble de données. Seules les personnes avec lesquelles vous l'avez partagé peuvent voir les données. En ajoutant la sécurité au niveau des lignes, vous pouvez mieux contrôler leur accès.

Pour ce faire, créez une requête ou un fichier contenant une colonne intitulée UserName, GroupName ou les deux. Vous pouvez également 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 d'ensemble de données, consultez Création de règles d'ensembles de données pour la sécurité au niveau des lignes.

Pour appliquer les règles de l'ensemble de données, vous ajoutez les règles en tant qu'ensemble de données d'autorisations à votre ensemble de données. Gardez les points suivants à l'esprit :

  • L'ensemble 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 dans les règles de l'ensemble 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, vous leur accordez l'accès à toutes les 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 inclut une virgule (,), Amazon QuickSight traite chaque mot séparé d'un autre par une virgule comme une valeur individuelle dans le filtre. Par exemple, dans ('AWS', 'INC'), AWS,INC est considéré comme deux chaînes : AWS et INC. Pour filtrer avec AWS,INC, encapsulez la chaîne entre guillemets doubles dans l'ensemble de données d'autorisations.

Amazon QuickSight traite les espaces comme des valeurs littérales. Si vous avez un espace dans un champ que vous limitez, la règle d'ensemble de données s'applique à ces lignes. Amazon QuickSight traite à la fois les NULLs et les chaînes vides () “”comme ne représentant « aucune valeur ». Une valeur NULL correspond à un champ vide.

En fonction de la source de données d'où provient votre ensemble de données, vous pouvez configurer une requête directe pour accéder à une table d'autorisations. 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 également charger des règles d'ensemble 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 d'ensemble de données basées sur des fichiers, appliquez les modifications en remplaçant les règles existantes dans les paramètres d'autorisation de l'ensemble de données.

Les ensembles de données restreints sont marqués avec le mot RESTRICTED sur l'écran Datasets.

La sécurité au niveau des lignes ne fonctionne que 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 ensembles de données qui utilisent la sécurité au niveau des lignes (RLS).

Création de règles d'ensembles 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 comme règles d'ensemble de données.

Pour créer un fichier d'autorisations ou une requête à utiliser comme règles d'ensemble de données

  1. Créez un fichier ou une requête contenant les règles d'ensemble de données (autorisations) pour la sécurité au niveau des lignes.

    Peu importe dans quel ordre se trouvent les champs. Cependant, tous les champs sont sensibles à la casse. Ils doivent exactement correspondre aux noms et valeurs de champs.

    La structure doit ressembler à l'une des structures suivantes. Vous devez avoir au moins un champ qui 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 QuickSight ou Microsoft AD.

    L'exemple suivant illustre un tableau avec des groupes.

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

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

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

    Si vous préférez utiliser 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"

    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 ensemble de données pour les règles de l'ensemble de données. Pour vous assurer que vous pouvez facilement le trouver, donnez-lui un nom significatif : par exemple, Permissions-Sales-Pipeline.

Créer la sécurité au niveau des lignes

Utilisez la procédure suivante pour appliquer la sécurité au niveau des lignes (RLS) en utilisant un fichier ou une requête comme ensemble de données contenant les règles relatives aux autorisations.

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

  1. Confirmez que vous avez ajouté vos règles en tant que nouvel ensemble de données. Si vous les avez ajoutés, mais qu'ils ne figurent pas dans la liste des ensembles de données, actualisez l'écran.

  2. Sur la page Datasets (Ensembles de données), choisissez l'ensemble de données, puis Permissions (Autorisations).

  3. Dans la liste des ensembles de données, choisissez votre ensemble de données d'autorisations.

    Si votre ensemble de données d'autorisations n'apparaît pas sur cet écran, revenez à vos ensembles de données et actualisez la page.

  4. Sélectionnez la stratégie d'autorisation. Chaque ensemble de données n'a qu'un seul ensemble de données d'autorisations actives. Si vous essayez d'ajouter un second ensemble de données d'autorisations, il remplace celui 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 ensemble de données comporte des valeurs NULL ou des chaînes vides (“”) dans les champs restreints, ces lignes sont ignorées lorsque les restrictions sont appliquées.

    À l'intérieur de l'ensemble de données d'autorisations, les valeurs NULL et les chaînes vides sont traitées de la même manière. Pour plus d'informations, consultez le tableau suivant.

    Règles relatives aux valeurs UserName, GroupName, Region, Segment Accès accordé
    AlejandroRosalez,EMEA-Sales,EMEA,"Enterprise,SMB,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

    Toute personne avec laquelle vous avez partagé votre tableau de bord peut voir toutes les données qu'il contient, sauf si l'ensemble de données est limité par les règles de l'ensemble de données.

  5. Pour enregistrer les modifications, sélectionnez Apply data set. Ensuite, sur l'écran Confirm: saving data set rules, sélectionnez Apply data set. Les modifications d'autorisations s'appliquent immédiatement aux utilisateurs existants.

  6. (Facultatif) Pour supprimer des autorisations, commencez par supprimer les règles de l'ensemble de données de l'ensemble de données.

    Assurez-vous que les règles de l'ensemble de données sont supprimées. Ensuite, choisissez l'ensemble de données d'autorisations et choisissez Remove data set (Supprimer l'ensemble de données).

    Pour remplacer les autorisations, choisissez un nouvel ensemble de données d'autorisations et appliquez-le. Vous pouvez réutiliser le même nom d'ensemble de données, mais vous devez appliquer les nouvelles autorisations dans l'écran Autorisations pour activer ces autorisations. Les requêtes SQL sont mises à jour de façon dynamique, de sorte qu'elles peuvent être gérées en dehors de Amazon QuickSight. Pour les requêtes , les autorisations sont mises à jour lorsque le cache de requête directe est actualisé automatiquement.

Si vous supprimez un ensemble de données d'autorisations basé sur des fichiers avant de le supprimer de l'ensemble de données cible, les utilisateurs restreints ne peuvent pas accéder à l'ensemble de données. Pendant que l'ensemble de données est dans cet état, il reste marqué comme RESTRICTED. Cependant, lorsque vous affichez Autorisations pour cet ensemble de données, vous pouvez voir qu'il n'a aucune règle d'ensemble de données sélectionnée. Pour corriger ce problème, vous pouvez spécifier de nouvelles règles d'ensemble de données. La création d'un ensemble de données portant le même nom ne suffit pas pour corriger ce problème. Vous devez choisir le nouvel ensemble de données d'autorisations dans l'écran Autorisations. Cette restriction ne s'applique pas aux requêtes SQL directes.