Comment configurer l'accès intercompte depuis Amazon QuickSight vers un compartiment Amazon S3 d'un autre compte ?
Dernière mise à jour : 02/08/2022
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) :
- Mettez à jour votre politique de compartiment S3 dans le compte B (où réside votre compartiment S3).
- Ajoutez le compartiment S3 en tant que ressource accessible pour la fonction du service QuickSight (compte A).
- 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 :
- Ouvrez la console Amazon S3.
- Accédez au compartiment S3 qui contient votre fichier de données.
- 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 :
- Ouvrez la console AWS Identity Access Management (IAM) dans le compte A.
- Dans le panneau de navigation de gauche, sélectionnez Rôles.
- Recherchez aws-quicksight-service-role.
- 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 :
- Ouvrez la console Amazon QuickSight.
- Choisissez Gérer QuickSight.
- Choisissez Sécurité et autorisations.
- Choisissez Ajouter ou supprimer.
- Choisissez Détails.
- Choisissez Sélectionner des compartiments S3.
- 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.
- (Facultatif) Si votre compartiment S3 n'est pas répertorié, ajoutez-le sous Utiliser un compartiment différent.
- 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 :
- Vérifiez les affectations de politique IAM dans votre compte Amazon QuickSight. Les politiques de rôle IAM doivent autoriser la fonction du service QuickSight à accéder au compartiment Amazon S3. Pour plus d'informations sur l'affichage de vos affectations de politiques, consultez Configuration de l'accès granulaire aux services AWS via IAM.
- Utilisez votre fichier manifeste pour vous connecter à votre compartiment S3 et créer un jeu de données à l'aide de fichiers S3. Veillez à utiliser un format pris en charge par votre fichier manifeste Amazon S3.
Informations connexes
Cet article vous a-t-il été utile ?
Avez-vous besoin d'aide pour une question technique ou de facturation ?