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

Lecture de 5 minute(s)
0

J'essaie de créer un jeu de données dans Amazon QuickSight en utilisant des données d'un compartiment Amazon Simple Storage Service (Amazon S3) dans un autre compte. Comment faire ?

Brève description

Effectuez les étapes suivantes pour créer un accès intercompte depuis Amazon QuickSight (compte A) vers un compartiment Amazon S3 crypté d'un autre compte (compte B) :

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

Remarque : cet article suppose que votre compartiment S3 est chiffré. Il est également recommandé de chiffrer votre compartiment Amazon S3 avec une clé AWS KMS. Pour plus d'informations sur l'activation du chiffrement par défaut pour Amazon S3, consultez la section Activation du chiffrement par défaut du compartiment Amazon S3.

Solution

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

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

1.    Mettez à jour la politique de votre compartiment Amazon S3 (dans le compte B). Par 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 tout problème de connexion avec Amazon S3.

2.    Ajoutez la fonction du service QuickSight du 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 fonction QuickSight.

Pour obtenir l'ARN de votre clé AWS KMS :

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

Pour obtenir l'ARN de votre fonction du service QuickSight :

  1. Ouvrez la console AWS Identity Access Management (IAM) dans le compte A.
  2. Dans le panneau de navigation de gauche, sélectionnez Rôles.
  3. Recherchez aws-quicksight-service-role.
  4. Sélectionnez votre fonction du service QuickSight et copiez son ARN.

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. Sinon, il se pourrait que vous receviez une erreur lorsque vous essayez de vous connecter à Amazon S3.

Ajoutez le compartiment S3 en tant que ressource à laquelle la fonction du service QuickSight peut accéder

Pour autoriser la fonction du service QuickSight à accéder au compartiment S3 du compte B, procédez ainsi :

  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 QuickSight.
  8. (Facultatif) Si votre compartiment S3 n'est pas répertorié, ajoutez-le sous Utiliser un compartiment différent.
  9. Sélectionnez Terminer.

Autoriser la fonction du service QuickSight à accéder à la clé AWS KMS pour le compartiment S3

Ajoutez la politique IAM en ligne suivante à la fonction du 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 précédente permet à la fonction du service QuickSight d'accéder à votre clé AWS KMS dans le compte B. Remplacez ExampleStmt3 par votre ID de relevé.

Remarque : 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. En attachant la politique de rôle mise à jour à votre fonction du service 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

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


Informations connexes

Modification des clés

Je ne parviens pas à me connecter à Amazon S3

Dépannage d'Amazon QuickSight

Affichage d'une stratégie de clé (console)

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