Comment puis-je résoudre les problèmes de sécurité au niveau des lignes dans QuickSight ?

Date de la dernière mise à jour : 12/07/2022

J'ai appliqué une RLS à mon jeu de données dans Amazon QuickSight, mais je rencontre des problèmes d'accès aux données.

Brève description

Voici les problèmes courants que vous pouvez rencontrer lorsque vous utilisez une sécurité au niveau des lignes (RLS) sur votre jeu de données Amazon QuickSight :

  • Vous ne pouvez consulter aucune donnée dans le tableau de bord intégré QuickSight pour les utilisateurs anonymes de QuickSight.
  • Les utilisateurs restreints peuvent encore consulter toutes les données.
  • Les utilisateurs non restreints ne peuvent consulter aucune donnée.
  • Le code d'erreur DatasetRulesInvalidColType s'affiche lorsque vous appliquez une RLS.
  • Le code d’erreur DatasetRulesUserDenied s’affiche lorsque vous créez une analyse.

Remarque : lorsque vous utilisez une RLS, tenez compte des points suivants :

  • La RLS n'est disponible que pour l'édition Enterprise de QuickSight.
  • La RLS prend uniquement en charge les données textuelles, telles que string, char et varchar pour les champs relatifs à la règle du jeu de données. La RLS ne fonctionne actuellement pas pour les champs numériques ou relatifs aux dates.
  • L’ensemble complet des enregistrements de règles qui sont appliqués par utilisateur ne doit pas dépasser 999. Les jeux de données dotés de plus de 999 règles peuvent ne pas réussir à appliquer les règles de RLS à l'ensemble de données.
  • Vous ne pouvez pas appliquer de RLS à des lignes vides avec la valeur null par défaut, car QuickSight traite la valeur null comme une valeur de champ vide. Cependant, les espaces d'un champ sont traités comme une valeur littérale. Ainsi, la règle du jeu de données s'applique à ces lignes.
  • Seuls les utilisateurs qui sont ajoutés à la règle du jeu de données peuvent consulter les données, en fonction de la règle définie. Les autres utilisateurs ne peuvent pas consulter les données.
  • Lorsque vous utilisez de multiples champs dans les règles du jeu de données, les règles fonctionnent comme un opérateur AND. L'opérateur OR n'est actuellement pas pris en charge.
  • Les règles basées sur des balises de RLS sont uniquement prises en charge pour les tableaux de bord intégrés pour les utilisateurs anonymes avec l'API GenerateEmbedUrlForAnonymousUser. Si vous avez intégré des tableaux de bord pour les utilisateurs enregistrés avec l'API GenerateEmbedUrlForRegisteredUser, alors envisagez d'utiliser des règles au niveau de l'utilisateur.

Solution

Je ne vois aucune donnée dans le tableau de bord intégré QuickSight pour les utilisateurs anonymes

Si vous utilisez des règles basées sur des balises pour votre tableau de bord intégré anonyme, alors vous ne pouvez ni consulter, ni modifier les données. Pour consulter les données, vous devez ajouter des règles de RLS basées sur l'utilisateur au jeu de données.

Dans l'exemple de règle du jeu de données ci-après, John Stiles peut uniquement consulter les données du service Logistique. Martha Rivera, quant à elle, peut consulter toutes les données du jeu de données.

UserName,Department 
JohnStiles,Logistics 
MarthaRivera,

Remarque : vous pouvez appliquer à la fois des règles basées sur des balises et des règles de RLS basées sur l'utilisateur à votre jeu de données.

Les utilisateurs restreints peuvent encore consulter toutes les données

Si un jeu de données contient trop de règles, alors même si vous avez correctement appliqué une RLS, les utilisateurs restreints peuvent encore consulter toutes les données. Afin de résoudre ce problème, assurez-vous que votre jeu de données ne contient que 999 règles ou moins. Si vous limitez les utilisateurs en fonction de la valeur UserName et que votre règle du jeu de données contient plus de 999 utilisateurs, alors créez des groupes QuickSight. Ajoutez les utilisateurs aux groupes et utilisez GroupName, plutôt que UserName dans la règle du jeu de données.

Les utilisateurs non restreints ne peuvent consulter aucune donnée

Voici les raisons possibles pour lesquelles les utilisateurs non restreints ne peuvent consulter aucune donnée :

  • L'utilisateur n'existe pas dans la règle du jeu de données. Consultez la règle du jeu de données afin de vérifier que tous les utilisateurs prévus sont bien présents.
  • Les valeurs UserName ou GroupName ne correspondent pas aux utilisateurs ou aux groupes dans QuickSight. Consultez la valeur UserName ou GroupName dans la règle du jeu de données afin de vérifier qu'elles correspondent bien aux utilisateurs ou aux groupes dans QuickSight.

Le code d’erreur DatasetRulesInvalidColType s’affiche lorsque vous appliquez une RLS

L'erreur DatasetRulesInvalidColType survient lorsque vous utilisez une RLS pour les champs numériques ou relatifs aux dates.

Consultez le champ utilisé pour évaluer la RLS dans la règle du jeu de données afin de vérifier que le type de données est bien String. Vous pouvez en outre convertir des champs numériques en String dans QuickSight en modifiant le jeu de données.

Le code d’erreur DatasetRulesUserDenied s’affiche lorsque vous créez une analyse

L’erreur DataRulesUserDenied survient lorsque l’utilisateur n’est pas présent dans la règle du jeu de données. Afin de résoudre cette erreur, ajoutez l'utilisateur à la règle du jeu de données, puis actualisez le jeu de données.