Comment configurer un accès intercompte depuis Amazon QuickSight à un compartiment Amazon S3 d'un autre compte ?

Lecture de 5 minute(s)
0

Je souhaite utiliser les données d'un compartiment Amazon Simple Storage Service (Amazon S3) d'un autre compte pour créer un ensemble de données dans Amazon QuickSight.

Brève description

Procédez comme suit pour créer un accès intercompte depuis Amazon QuickSight (compte A) à un compartiment Amazon S3 chiffré dans un autre compte (compte B) :

  1. Mettez à jour votre politique de compartiment S3 dans le compte B où se trouve votre compartiment S3.
  2. Ajoutez le compartiment S3 en tant que ressource à laquelle le rôle de service QuickSight (compte A) peut accéder.
  3. Autorisez le rôle de service QuickSight à accéder à la clé AWS Key Management Service (AWS KMS) pour le compartiment S3.

Remarque : cet article part du principe que votre compartiment S3 est chiffré. Il est également recommandé de chiffrer votre compartiment S3 à l'aide d'une clé AWS KMS. Pour en savoir plus sur la façon d'activer le chiffrement par défaut pour Amazon S3, consultez la page Configuration du chiffrement par défaut.

Résolution

Mettez à jour votre politique de compartiment S3 dans le compte B

Pour configurer un accès intercompte depuis QuickSight vers Amazon S3, procédez comme suit :

  1. Mettez à jour la politique de compartiment de votre compartiment S3 dans le compte B. Exemple :

    {  "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/*"
          ]
        }
      ]
    }

    Remarque : si le rôle aws-quicksight-s3-consumers-role-v0 existe dans le compte A, assurez-vous d’utiliser ce rôle à la place. Remplacez aws-quicksight-service-role-v0 par aws-quicksight-s3-consumers-role-v0 pour éviter des problèmes de connexion avec Amazon S3.

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

    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 rôle QuickSight.

Pour obtenir votre ARN de clé AWS KMS :

  1. Ouvrez la console Amazon S3.
  2. Accédez au compartiment S3 qui contient votre fichier de données.
  3. Choisissez l’onglet Propriétés. L'ARN de la clé AWS KMS se trouve sous le Chiffrement par défaut.

Pour obtenir l'ARN de votre rôle de service QuickSight, procédez comme suit :

  1. Ouvrez la console Gestion des identités et des accès AWS (AWS IAM) dans le compte A.
  2. Dans le volet de navigation, choisissez Rôles.
  3. Recherchez aws-quicksight-service-role.
  4. Sélectionnez votre rôle de service QuickSight et copiez son ARN.

Remarque : si le rôle aws-quicksight-s3-consumers-role-v0 existe dans le compte A, veillez à utiliser ce rôle à la place. Sinon, vous risquez de recevoir un message d'erreur lorsque vous tentez de vous connecter à Amazon S3.

Ajoutez le compartiment S3 en tant que ressource à laquelle le rôle de service QuickSight peut accéder

Pour autoriser le rôle de service QuickSight à accéder au compartiment S3 du compte B, procédez comme suit :

  1. Ouvrez votre 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 les compartiments S3.
  7. Choisissez les 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 QuickSight.
  8. (Facultatif) Si votre compartiment S3 ne figure pas dans la liste, ajoutez-le sous Utiliser un autre compartiment.
  9. Choisissez Terminer.

Autorisez le rôle de service QuickSight à accéder à la clé AWS KMS pour le compartiment S3

Ajoutez la politique IAM en ligne suivante au rôle de service 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>"
    }
  ]
}

Remarque : la politique en ligne ci-dessus permet au rôle de service QuickSight d'accéder à votre clé AWS KMS dans le compte B. Remplacez ExampleStmt3 par votre ID de déclaration.

Important : si le rôle aws-quicksight-s3-consumers-role-v0 existe dans le compte A, vous devez attacher la politique AWS KMS à ce rôle. La politique AWS KMS déchiffre les données de votre compartiment S3. Si vous attachez à la place la politique de rôle mise à jour à votre rôle de service QuickSight, une erreur d’autorisation risque de survenir. Pour en savoir plus sur la façon de corriger cette erreur d'autorisation, consultez la page Comment résoudre les erreurs d'autorisation liées aux ressources AWS dans Amazon QuickSight ?

Considérations supplémentaires

Lorsque vous configurez l'accès intercompte depuis QuickSight à un compartiment S3 d'un autre compte, tenez compte des points suivants :

Informations connexes

Modification des clés

Je ne peux pas me connecter à Amazon S3

Résolution de problèmes liés à Amazon QuickSight

Affichage d'une politique de clé (console)

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 4 mois