New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Comment puis-je utiliser des modèles pour configurer l’accès intercompte dans Amazon QuickSight ?
Je souhaite partager mes jeux de données et mon tableau de bord avec un autre compte AWS dans Amazon QuickSight.
Brève description
Vous pouvez utiliser des modèles pour créer un accès intercompte afin de partager votre analyse et votre tableau de bord Amazon QuickSight sur d’autres comptes et régions AWS. Vous pouvez également utiliser les modèles pour créer des tableaux de bord ou d’autres modèles.
Procédez comme suit pour fournir un accès intercompte dans QuickSight :
- Sur le compte A, créez un nouveau modèle à partir d’une analyse existante.
- Sur le compte B, utilisez le même schéma que sur le compte A pour créer un jeu de données.
- Créez un tableau de bord sur le compte B à partir du modèle du compte A.
(Facultatif) Créez un modèle sur le compte B à partir du modèle existant sur le compte A. Utilisez cette option si vous souhaitez déplacer des ressources d’un compte vers un autre et supprimer les ressources du compte source.
Remarque : cet article utilise l’interface de la ligne de commande AWS (AWS CLI) et décrit les étapes relatives à l’accès intercompte. Si des erreurs surviennent lorsque vous exécutez des commandes AWS CLI, consultez la page Résoudre les erreurs AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente d’AWS CLI.
Résolution
Créer un modèle sur le compte A à partir d’une analyse existante sur le même compte
-
Utilisez la commande AWS CLI list-dashboards pour répertorier les tableaux de bord disponibles sur votre compte :
aws quicksight list-dashboards --aws-account-id account_a_id
Remarque : remplacez account_a_id par l’ID du compte A.
-
Notez l’ID du tableau de bord que vous souhaitez partager.
-
Utilisez la commande describe-dashboard d’AWS CLI pour obtenir des informations sur le tableau de bord :
aws quicksight describe-dashboard --aws-account-id account_a_id --dashboard-id dashboard_id
Remarque : remplacez dashboard_id par l’ID de votre tableau de bord.
-
Créez le fichier JSON du modèle et incluez l’ARN de l’analyse et du jeu de données :
{ "SourceEntity": { "SourceAnalysis": { "Arn": "arn:aws:quicksight:aws_region:account_a_id:analysis/analysis_id", "DataSetReferences": [ { "DataSetPlaceholder": "dataset_name", "DataSetArn": "arn:aws:quicksight:aws_region:account_a_id:dataset/dataset_id" } ] } }, "VersionDescription": "1" }
Remarque : remplacez aws_region par votre région AWS, analysis_id par l’ID de votre analyse, dataset_name par le nom de votre jeu de données et dataset_id par l’ID de votre jeu de données.
-
Créez un modèle dans la même région que votre analyse :
aws quicksight create-template --aws-account-id account_a_id --template-id template_name --cli-input-json file://template.json --profile default
Remarque : remplacez le template_name par le nom du modèle pour le compte A.
-
Exécutez la commande describe-template d’AWS CLI pour confirmer que le modèle a été créé :
aws quicksight describe-template --aws-account-id account_a_id --template-id template_id
Remarque : remplacez template_id par l’ID de votre modèle. Vérifiez que la réponse à la commande describe-template contient le statut CREATION_SUCCESSFUL.
-
Notez l’ARN du modèle à partir de la sortie à utiliser ultérieurement.
-
Utilisez la commande AWS CLI update-template-permissions pour accorder une autorisation READ intercompte du modèle du compte A vers le compte B :
aws quicksight update-template-permissions --aws-account-id account_a_id --template-id template_id --grant-permissions file://TemplatePermission.json
Exemple de fichier d’autorisation JSON :
[ { "Principal": "arn:aws:iam::account_b_id:root", "Actions": [ "quicksight:UpdateTemplatePermissions", "quicksight:DescribeTemplate" ] } ]
Remarque : remplacez account_b_id par l’ID du compte B. Pour partager le modèle avec plusieurs comptes, incluez la racine de tous les comptes en tant que Principal. Vous pouvez partager le modèle uniquement avec le compte racine. L’élément Principal ne prend pas en charge les rôles Gestion des identités et des accès AWS (AWS IAM).
Utilisez le même schéma que le compte A pour créer un jeu de données sur le compte B
Vous ne pouvez pas créer un tableau de bord directement à partir d’un jeu de données qui se trouve sur un autre compte, comme le compte A. Au lieu de cela, vous devez créer le même jeu de données sur le compte sur lequel vous souhaitez créer le tableau de bord, comme le compte B. Ensuite, créez le tableau de bord à partir du jeu de données nouvellement créé.
-
Utilisez la console Amazon QuickSight ou AWS CLI pour créer le jeu de données sur le compte B.
Utiliser la console Amazon QuickSight
Pour utiliser la console Amazon QuickSight afin de créer le jeu de données, consultez la page Créer des jeux de données.
Utiliser AWS CLI
Utilisez la commande AWS CLI create-data-set pour créer le jeu de données :
aws quicksight create-data-set --aws-account-id account_b_id --dataset-id dataset_name --cli-input-json file://datasetB.json
Exemple de fichier JSON de jeu de données :
{ "Name": "dataset_name", "PhysicalTableMap": { "Physicaltablename": { "RelationalTable": { "DataSourceArn": "arn:aws:quicksight:aws_region:account_b_id:datasource/datasource_id", "Schema": "schema_name", "Name": "table_name", "InputColumns": [ { "Name": "column_name", "Type": "STRING"|"INTEGER"|"DECIMAL"|"DATETIME"|"BIT"|"BOOLEAN"|"JSON" } ] } } }, "LogicalTableMap": { "Logicaltablename": { "Alias": "any_alias", "DataTransforms": [ { "ProjectOperation": { "ProjectedColumns": [ "column_name", "column_name" ] } } ], "Source": { "PhysicalTableId": "Physicaltablename" } } }, "ImportMode": "SPICE", "Permissions": [ { "Principal": "arn:aws:quicksight:aws_region:account_b_id:user/namespace/user_name", "Actions": [ "quicksight:UpdateDataSetPermissions", "quicksight:DescribeDataSet", "quicksight:DescribeDataSetPermissions", "quicksight:PassDataSet", "quicksight:DescribeIngestion", "quicksight:ListIngestions", "quicksight:UpdateDataSet", "quicksight:DeleteDataSet", "quicksight:CreateIngestion", "quicksight:CancelIngestion" ] } ] }
Remarque : remplacez namespace par votre espace de noms et user_name par le nom de l’utilisateur QuickSight. L’exemple précédent fait référence à un jeu de données SPICE.
-
Vérifiez que le jeu de données a bien été créé :
aws quicksight describe-data-set --aws-account-id account_b_id --data-set-id dataset_id
Vérifiez que la réponse à la commande describe-data-set contient le code de statut 201. Le code de statut 201 signifie que le jeu de données a bien été créé.
-
Notez l’ARN du jeu de données issu de la sortie pour l’utiliser ultérieurement.
Créez un tableau de bord sur le compte B à partir du modèle du compte A
-
Exécutez la commande suivante et incluez l’ARN du modèle :
aws quicksight create-dashboard --aws-account-id account_b_id --dashboard-id dashboard_id --name dashboard_name --source-entity file://DashboardFromTemplate.json
Remarque : vous pouvez ajouter le paramètre --region target_region pour créer le tableau de bord dans une autre région. Remplacez target_region par la région dans laquelle vous souhaitez créer le modèle.
Exemple de fichier JSON de tableau de bord pour le compte B :
{ "SourceTemplate": { "DataSetReferences": [ { "DataSetPlaceholder": "dataset_name", "DataSetArn": "arn:aws:quicksight:aws_region:account_b_id:dataset/dataset_id" } ], "Arn": "arn:aws:quicksight:aws_region:account_a_id:template/template_id" } }
Dans le fichier JSON du tableau de bord précédent :
- Pour le champ DataSetPlaceholder, vous devez utiliser le même nom de jeu de données que celui du modèle du compte A.
- Pour le champ DataSetARN, vous pouvez utiliser l’ARN du jeu de données que vous avez créé sur le compte B.
- Pour le champ Arn, vous pouvez utiliser l’ARN du modèle que vous avez créé sur le compte A.
-
Vérifiez que le tableau de bord a bien été créé :
aws quicksight describe-dashboard --aws-account-id account_b_id --dashboard-id dashboard_id
Remarque : vérifiez que la réponse à la commande describe-dashboard contient le code de statut 200. Le code de statut 200 signifie que le tableau de bord existe.
-
Utilisez la commande update-dashboard-permissions d’AWS CLI pour accorder les autorisations appropriées aux utilisateurs de QuickSight :
aws quicksight update-dashboard-permissions --aws-account-id account_b_id --dashboard-id dashboard_id --grant-permissions file://DashboardPermission.json
Exemple de fichier JSON de tableau de bord :
[ { "Principal": "arn:aws:quicksight:aws_region:account_b_id:user/namespace/quicksight_user_name", "Actions": [ "quicksight:DescribeDashboard", "quicksight:ListDashboardVersions", "quicksight:UpdateDashboardPermissions", "quicksight:QueryDashboard", "quicksight:UpdateDashboard", "quicksight:DeleteDashboard", "quicksight:DescribeDashboardPermissions", "quicksight:UpdateDashboardPublishedVersion" ] } ]
Dans l’exemple de fichier JSON de tableau de bord précédent, l’utilisateur QuickSight dispose d’un accès copropriétaire. Pour fournir un accès READ uniquement aux utilisateurs, spécifiez les autorisations suivantes :
"quicksight:DescribeDashboard", "quicksight:ListDashboardVersions", "quicksight:QueryDashboard"
(Facultatif) Créez un modèle sur le compte B à partir du modèle existant sur le compte A
-
Vérifiez que votre rôle ou votre utilisateur IAM dispose des autorisations appropriées. Vous devez disposer des autorisations suivantes pour accéder à un modèle intercompte dans QuickSight :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:quicksight:aws_region:account_a_id:template/template_id", "Action": "quicksight:DescribeTemplate" }, { "Effect": "Allow", "Resource": "*", "Action": "quicksight:CreateTemplate" } ] }
-
Créez un nouveau modèle sur le compte B à partir du modèle du compte A :
aws quicksight create-template --aws-account-id account_b_id --template-id template_name --source-entity file://templateB.json
Remarque : remplacez template_name par le nom du modèle du compte B. Pour créer un modèle dans une autre région, ajoutez --region target_region.
Exemple de fichier JSON pour le compte B :
{ "SourceTemplate": { "Arn": "arn:aws:quicksight:region:account_a_id:template/template_id" } }
-
Vérifiez que le modèle est créé :
aws quicksight describe-template --aws-account-id account_b_id --template-id template_id
Remarque : vérifiez que la réponse à la commande describe-template contient le statut CREATION_SUCCESSFUL.
Informations connexes

Contenus pertinents
- demandé il y a 8 moislg...
- demandé il y a 2 anslg...
- demandé il y a 2 anslg...
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 10 mois
- AWS OFFICIELA mis à jour il y a un an