Comment configurer l'accès entre des comptes Amazon QuickSight et Amazon S3 différents ?

Dernière mise à jour : 04/03/2021

Je souhaite créer un ensemble de données dans Amazon QuickSight à partir des données d'un compartiment Amazon Simple Storage Service (Amazon S3) d'un autre compte. Comment dois-je procéder ?

Brève description

Pour créer un accès entre comptes d'Amazon QuickSight à un compartiment Amazon S3 chiffré dans un autre compte, effectuez les opérations suivantes :

1.    Mettez à jour votre stratégie de compartiment Amazon S3 dans le compte B (où réside votre compartiment S3).

2.    Ajoutez le compartiment Amazon S3 (compte B) en tant que ressource accessible au rôle de service Amazon QuickSight (compte A).

3.    Autorisez votre rôle de service Amazon QuickSight (compte A) à accéder à la clé KMS de votre compartiment Amazon S3 (compte B).

Remarque : cet article suppose que votre compartiment Amazon S3 est chiffré. Il est également recommandé de chiffrer votre compartiment Amazon S3 avec une clé KMS. Pour plus d'informations, voir Comment activer le chiffrement par défaut pour un compartiment Amazon S3 ?.

Solution

Mise à jour de votre stratégie de compartiment Amazon S3 dans le compte B (où réside votre compartiment S3)

Pour configurer l'accès entre comptes d'Amazon QuickSight à Amazon S3, effectuez les opérations suivantes :

1.    Mettez à jour la politique de compartiment de votre compartiment Amazon S3 (dans le compte B) comme ceci :

{
    "Version": "2012-10-17",
    "Id": "BucketPolicy",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<Account A>:role/service-role/aws-quicksight-service-role-v0"
            },
            "Action": ["s3:ListBucket", "s3:GetObject", "s3:GetObjectVersion" ], 
            "Resource": [
                "arn:aws:s3:::cross-account-qstest-bucket",
                "arn:aws:s3:::cross-account-qstest-bucket/*"
            ]
        }
    ]
}

2.    Ajoutez votre rôle de service Amazon QuickSight (compte A) à la liste des utilisateurs pouvant accéder à la clé KMS du compartiment Amazon S3 :

aws kms create-grant --key-id <KMS key ARN> --grantee-principal <Amazon QuickSight Role ARN> --operations Decrypt

Remarque : pour obtenir votre ARN de clé KMS, ouvrez la console Amazon S3. Accédez au compartiment Amazon S3 qui contient votre fichier de données et sélectionnez l'onglet Propriétés . L'ARN de clé se trouve sous Chiffrement par défaut.

Pour obtenir l'ARN du rôle de service Amazon QuickSight, ouvrez la console AWS Identity Access Management (IAM) dans le compte A, où réside votre abonnement Amazon QuickSight. Dans le volet de navigation, choisissez Rôles. Recherchez aws-quicksight-service-role et sélectionnez votre rôle de service Amazon QuickSight. Copiez l'ARN du rôle de service.

Ajout du compartiment Amazon S3 (compte B) en tant que ressource accessible au rôle de service Amazon QuickSight (compte A)

Pour autoriser votre rôle de service Amazon QuickSight à accéder au compartiment Amazon S3 dans un autre compte, effectuez les opérations suivantes :

1.    Ouvrez la console Amazon QuickSight.

2.    Choisissez Gérer QuickSight.

3.    Choisissez Sécurité et autorisations.

4.    Choisissez Ajouter ou supprimer.

5.    Choisissez Détails.

6.    Choisissez Sélectionner des compartiments S3.

7.    Choisissez l'onglet Compartiments S3 auxquels vous pouvez accéder via l'onglet AWS pour vérifier que votre compartiment S3 est répertorié pour un accès Amazon QuickSight.

8.    (Facultatif) Si votre compartiment Amazon S3 n'est pas répertorié, ajoutez-le sous Utiliser un compartiment différent.

9.    Choisissez Terminer.

Autoriser le rôle de service Amazon QuickSight (compte A) à accéder à la clé KMS de votre compartiment Amazon S3 (compte B)

Ajoutez la stratégie IAM en ligne suivante au rôle de service Amazon QuickSight dans le compte A :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ExampleStmt3",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": ""arn:aws:kms:us-east-1:<account ID of your S3 bucket>:key/<KEYID>"
        }
    ]
}

Cette stratégie mise à jour permet au rôle de service Amazon QuickSight d'accéder à votre clé KMS dans le compte B, où réside votre compartiment Amazon S3. Assurez-vous d'ajouter la stratégie en ligne.

En attachant la stratégie de rôle mise à jour à votre rôle de service Amazon QuickSight, vous risquez de rencontrer une erreur d'autorisations. Consultez cette section pour savoir Comment résoudre les erreurs d'autorisations des ressources AWS dans Amazon QuickSight ?

Autres considérations

Voici quelques facteurs supplémentaires :