Comment puis-je autoriser l'accès d'Amazon QuickSight à un compartiment S3 doté d'une stratégie de refus ?

Dernière mise à jour : 18/09/2020

Comment puis-je être sûr que la stratégie de mon compartiment Amazon Simple Storage Service (Amazon S3) autorise l'accès à partir d'Amazon QuickSight ?

Brève description

Lorsque votre compartiment Amazon S3 utilise une stratégie de Refus, cette stratégie remplace toutes les autorisations S3 que vous spécifiez dans la console Amazon QuickSight. Pour autoriser l'accès d'Amazon QuickSight au compartiment S3, ajoutez le rôle de service Amazon QuickSight (aws-quicksight-service-role-v0) comme une exception dans votre stratégie de Refus.

Solution

1.    Assurez-vous qu’Amazon QuickSight dispose de l’autorisation d’accès au compartiment S3.

2.    Utilisez l'interface de ligne de commande AWS ou l'API AWS Identity and Access Management (IAM) afin d'obtenir l'ID unique pour le rôle aws-quicksight-service-role-v0. L'ID est propre à chaque compte Amazon QuickSight. Par exemple :

aws iam get-role --role-name aws-quicksight-service-role-v0 --query 'Role.RoleId' --output json 

"AROAEXAMPLEID"

Remarque : si vous recevez des erreurs lors de l'exécution des commandes de l'interface de ligne de commande AWS, assurez-vous que vous utilisez la version la plus récente de cette interface.

3.    Ouvrez la console Amazon S3.

4.    Choisissez le compartiment auquel vous souhaitez accéder avec Amazon QuickSight.

5.    Sélectionnez l'onglet Autorisations.

6.    Sélectionnez Stratégie de compartiment.

7.    Saisissez une stratégie de compartiment similaire à cet exemple. Remplacez AROAEXAMPLEID par votre ID unique. Si vous souhaitez ajouter une exception pour un utilisateur IAM, remplacez AIDAEXAMPLEUSERID par l'ID unique de l'utilisateur IAM. La stratégie d'utilisateur IAM doit également contenir une instruction Autoriser pour le compartiment S3. Par exemple :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::examplebucketname",
        "arn:aws:s3:::examplebucketname/*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:userid": [
            "AROAEXAMPLEID:*",
            "AIDAEXAMPLEUSERID"
          ]
        }
      }
    }
  ]
}

Cette stratégie de Refus ajoute des exceptions pour le rôle de service Amazon QuickSight et un utilisateur IAM.

Remarque : si vous supprimez le rôle de service Amazon QuickSight et l'utilisateur IAM, vous ne pourrez pas accéder au compartiment. Pour résoudre ce problème, connectez-vous en tant qu'utilisateur racine du compte AWS, puis utilisez la commande delete-bucket-policy pour supprimer la stratégie de compartiment.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?