Comment résoudre les erreurs de type « Accès refusé » lors de l'utilisation d'Athena comme source de données dans Quicksight ?

Lecture de 7 minute(s)
0

Le message d'erreur « Accès refusé » s'affiche lorsque j'essaie d'utiliser Amazon Athena comme source de données dans mon compte Amazon QuickSight. Comment puis-je résoudre ce problème ?

Brève description

Voici les raisons les plus courantes pour lesquelles vous recevez des erreurs d'accès refusé lorsque vous utilisez Amazon Athena comme source de données dans Amazon QuickSight :

  • Votre compte QuickSight ne dispose pas de l'autorisation requise pour accéder au compartiment Amazon Simple Storage Service (Amazon S3).
  • Votre fichier de données est crypté avec une clé AWS Key Management Service (AWS KMS).
  • La politique d'autorisations AWS Identity and Access Management (IAM) nécessaire ne vous est pas attribuée.
  • Le compartiment Amazon S3 n'existe pas. Ou bien, le rôle IAM utilisé pour interroger les données ne dispose pas des autorisations S3 requises.
  • Les politiques de contrôle des services (SCP) nécessaires ne vous sont pas attribuées. (Pour les comptes QuickSight qui utilisent AWS Organizations)
  • Votre utilisateur ou groupe QuickSight ne dispose pas des autorisations AWS Lake Formation. (Pour les comptes Athena qui utilisent Lake Formation)

Remarque : avant de commencer le dépannage, assurez-vous que vous pouvez accéder à vos données dans Athena.

Solution

Si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de la ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI .

Votre compte QuickSight ne dispose pas de l'autorisation requise pour accéder au compartiment Amazon S3

Vous recevez ensuite un message d'erreur similaire à celui-ci :

An error has been thrown from AWS Athena client. Permission denied on S3 path:
sourceErrorMessage: s3:/example bucket/object name

Pour obtenir l'autorisation d'accéder au compartiment S3, procédez comme suit :

  1. Ouvrez la console Amazon QuickSight.
  2. Choisissez Manage Gérer QuickSight (Gérer QuickSight).
  3. Choisissez Security & Permissions (Sécurité et autorisations).
  4. Sous QuickSight access to AWS services (Accès QuickSight aux services AWS), choisissez Manage (Gérer).
  5. Dans la liste des services AWS, sélectionnez Amazon S3.
  6. Choisissez Sélectionner les compartiments S3, puis sélectionnez le compartiment S3 auquel vous souhaitez accéder à partir de QuickSight.
  7. Choisissez l'autorisation d'écriture pour Athena Workgroup, puis cliquez sur Terminer.
  8. Choisissez Save (Enregistrer).

Votre fichier de données est crypté avec une clé AWS KMS

Si votre fichier de données est crypté avec une clé AWS KMS, Amazon S3 peut vous refuser l'accès aux données. Pour résoudre ce problème, accordez à votre fonction du service QuickSight l'accès à la clé AWS KMS. Effectuez les étapes suivantes.

Utilisation de l'interface de ligne de commande AWS (AWS CLI)

1.    Utilisez la console IAM pour localiser l'ARN de la fonction du service QuickSight.

2.    Utilisez la console Amazon S3 pour trouver l'ARN de la clé AWS KMS.
Accédez au compartiment qui contient votre fichier de données.
Cliquez sur l'onglet Overview (Présentation), puis localisez l'ID de clé KMS.

3.    Ajoutez l'ARN de la fonction du service QuickSight à la politique de clé KMS.

4.    Exécutez la commande create-grant de l'AWS CLI :

aws kms create-grant --key-id aws_kms_key_arn --grantee-principal quicksight_role_arn --operations Decrypt

Remarque : remplacez aws_kms_key_arn par l'ARN de votre clé AWS KMS et quicksight_role_arn par l'ARN de votre fonction du service QuickSight.

Utilisation de la console AWS KMS

Pour ajouter la fonction du service QuickSight à la politique de clé AWS KMS, suivez les instructions de la sectionHow to change a key policy(Comment modifier une politique de clé). Ensuite, modifiez la politique de clé en ajoutant la politique d'autorisation suivante :

{
     "Sid": "Allow use of the key",
     "Effect": "Allow",
     "Principal": {
         "AWS": [
              "arn:aws:iam::aws-account-id:role/service-role/aws-quicksight-service-role-v0",
              "arn:aws:iam::aws-account-id:role/service-role/aws-quicksight-s3-consumers-role-v0"
              ]
         },
         "Action": [
            "kms:Decrypt"
               ],
         "Resource": "*"
}

Remarque : Remplacez Aws-account-id par votre ID de compte AWS.

La politique d'autorisations IAM nécessaire ne vous est pas attribuée

Vous pouvez également recevoir un message d'erreur Accès refusé si la politique d'autorisations IAM nécessaire ne vous est pas attribuée. Pour vérifier quelles politiques vous sont attribuées, procédez comme suit :

  1. Ouvrez la console Amazon QuickSight.
  2. Choisissez Manage Gérer QuickSight (Gérer QuickSight).
  3. Choisissez Security & Permissions (Sécurité et autorisations).
  4. Choisissez les attributions de politique IAM.
  5. Vérifiez s'il existe des attributions de politique IAM pour accéder à Athena.
  6. Vérifiez que la politique ne restreint pas votre accès à S3 ou Athena.

S'il existe une politique qui restreint votre accès à S3 ou Athena, demandez à votre administrateur QuickSight de la modifier. Si vous êtes l'administrateur, désactivez l'attribution de politique IAM et modifiez la politique pour inclure les autorisations S3 et Athena. Pour plus d'informations, consultez la section Définition d'un accès granulaire aux services AWS via IAM.

Le compartiment S3 n'existe pas. Ou bien, le rôle IAM utilisé pour interroger les données ne dispose pas des autorisations S3 requises

Vous recevez l'erreur suivante :

Unable to verify/create output bucket

Pour résoudre l'erreur précédente, consultez Comment résoudre l'erreur « Impossible de vérifier/créer un compartiment de sortie » dans Amazon Athena ?

Si le compartiment n'existe pas, ajoutez le compartiment S3 valide. Dans la console Amazon QuickSight, sélectionnez Amazon S3 dans la liste des services AWS. Sélectionnez ensuite le compartiment S3 utilisé pour l'emplacement des résultats de la requête.

Les points de connexion de service nécessaires ne vous sont pas attribués

Si vous utilisez AWS Organizations, vous pouvez recevoir l’erreur Accès refusé lorsque les SCP nécessaires ne vous sont pas attribuées. Demandez à l'administrateur AWS Organizations de vérifier vos paramètres SCP, afin de déterminer les autorisations qui vous sont attribuées. Si vous êtes administrateur AWS Organizations, reportez-vous à Création, mise à jour et suppression de politiques de contrôle des services.

Votre utilisateur ou groupe QuickSight ne dispose pas des autorisations Lake Formation

Pour les comptes Athena qui utilisent Lake Formation, l'erreur suivante peut s'afficher :

An error has been thrown from the AWS Athena client. Insufficient permissions to execute the query. Insufficient Lake Formation permission(s)

Pour accorder des autorisations Lake Formation pour QuickSight, vous devez être administrateur de Lake Formation.

Procédez comme suit :

1.    Localisez l'ARN de l'utilisateur ou du groupe QuickSight.

Exécutez l'une des commandes d'AWS CLI suivantes :

describe-user (décrire l’utilisateur)

aws quicksight describe-user  --user-name user_name  --aws-account-id account_id --namespace default

-ou-

describe-group (décrire le groupe)

aws quicksight describe-group --group-name group_name  --aws-account-id account_id --namespace default

Remarque : Dans les commandes précédentes, remplacez user_name par le nom de votre utilisateur, group_name par le nom de votre groupe et account_id par l'ID de votre compte.

2.    Ouvrez la console Lake Formation.

3.    Choisissez Tableaux.

4.    Sélectionnez Actions, puis sélectionnez Autorisations.

5.    Dans la liste des Principaux, sélectionnez Accorder.

6.    Sous Utilisateurs et groupes SAML et Amazon QuickSight, saisissez l'ARN de l'utilisateur ou du groupe QuickSight.
Par exemple, arn:aws:quicksight:region:accountId:user/namespace/usernamee

7.    Sélectionnez la bonne source de données, puis choisissez Tous les tableaux. Les autorisations de tableau sont Sélectionner et Décrire.

8.    Choisissez Accorder.

Après avoir accordé les autorisations, revenez à la console QuickSight pour essayer de créer à nouveau le jeu de données.


Informations connexes

Autorisations insuffisantes lors de l'utilisation d'Athena avec Amazon QuickSight

Amazon QuickSight prend désormais en charge le contrôle d'accès affiné sur Amazon S3 et Amazon Athena

Activez des autorisations affinées pour les auteurs Amazon QuickSight dans AWS Lake Formation

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans