Como posso usar modelos para configurar o acesso entre contas no Quick Sight?
Quero compartilhar meus conjuntos de dados e meu painel com outra conta da AWS no Amazon Quick Sight.
Breve descrição
É possível usar modelos para criar acesso entre contas para compartilhar sua análise e painel do Quick Sight em outras contas e regiões da AWS. Também é possível usar os modelos para criar painéis ou outros modelos.
Conclua as etapas a seguir para fornecer acesso entre contas no Quick Sight:
- Na Conta A, crie um novo modelo a partir de uma análise existente.
- Na Conta B, use o mesmo esquema da conta A para criar um conjunto de dados.
- Crie um painel na Conta B a partir do modelo na Conta A.
(Opcional) Crie um modelo na Conta B a partir do modelo existente na Conta A. Use essa opção se quiser passar recursos de uma conta para outra e remover os recursos da conta de origem.
Observação: este artigo usa a interface de linha de comando da AWS (AWS CLI) com as etapas para acesso entre contas. Se você receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI. Além disso, verifique se está usando a versão mais recente da AWS CLI.
Resolução
Crie um modelo na Conta A a partir de uma análise existente na mesma conta
-
Use o comando list-dashboards da AWS CLI para listar os painéis que estão disponíveis em sua conta:
aws quicksight list-dashboards --aws-account-id account_a_idObservação: substitua account_a_id pelo ID da conta A.
-
Anote a ID do painel que você deseja compartilhar.
-
Use o comando describe-dashboard da AWS CLI para obter detalhes do painel:
aws quicksight describe-dashboard --aws-account-id account_a_id --dashboard-id dashboard_idObservação: substitua dashboard_id pelo ID do seu painel.
-
Crie o arquivo JSON do modelo e inclua os ARNs da análise e do conjunto de dados:
{ "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" }Observação: substitua aws_region pela sua região do AWS, analysis_id pelo ID da sua análise, dataset_name pelo nome do conjunto de dados e dataset_id pelo ID do conjunto de dados.
-
Crie um modelo na mesma região da sua análise:
aws quicksight create-template --aws-account-id account_a_id --template-id template_name --cli-input-json file://template.json --profile defaultObservação: substitua template_name pelo nome do modelo da Conta A.
-
Execute o comando AWS CLI describe-template para confirmar que o modelo foi criado:
aws quicksight describe-template --aws-account-id account_a_id --template-id template_idObservação: substitua template_id pelo ID do seu modelo. Confirme se a resposta do comando describe-template contém um status CREATION_SUCCESSFUL.
-
Anote o ARN do modelo na saída para usar em uma etapa posterior.
-
Use o comando update-template-permissions da AWS CLI para conceder a permissão LEITURA entre contas do modelo da Conta A para a Conta B:
aws quicksight update-template-permissions --aws-account-id account_a_id --template-id template_id --grant-permissions file://TemplatePermission.jsonExemplo de arquivo JSON de permissão:
[ { "Principal": "arn:aws:iam::account_b_id:root", "Actions": [ "quicksight:UpdateTemplatePermissions", "quicksight:DescribeTemplate" ] } ]Observação: substitua account_b_id pelo ID da conta B. Para compartilhar o modelo com várias contas, inclua a raiz de todas as contas como a Entidade principal. Você pode compartilhar o modelo somente com a conta raiz. O elemento Entidade principal não oferece suporte aos perfis do AWS Identity and Access Management (IAM).
Use o mesmo esquema da Conta A para criar um conjunto de dados na Conta B
Não é possível criar um painel diretamente de um conjunto de dados que esteja em outra conta, como a Conta A. Em vez disso, você deve criar o mesmo conjunto de dados na conta em que deseja criar o painel, como a Conta B. Em seguida, crie o painel a partir do conjunto de dados recém-criado.
-
Use o console do Amazon Quick Sight ou a AWS CLI para criar o conjunto de dados na Conta B.
Use o console do Amazon Quick Sight
Para usar o console do Amazon Quick Sight para criar o conjunto de dados, consulte Creating datasets (Criando conjuntos de dados).
Use a AWS CLI
Use o comando create-data-set AWS CLI para criar o conjunto de dados:
aws quicksight create-data-set --aws-account-id account_b_id --dataset-id dataset_name --cli-input-json file://datasetB.jsonExemplo de arquivo JSON de conjunto de dados:
{ "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" ] } ] }Observação: substitua namespace pelo seu namespace e user_name pelo nome de usuário do Quick Sight. O exemplo anterior se refere a um conjunto de dados SPICE.
-
Confirme se o conjunto de dados foi criado:
aws quicksight describe-data-set --aws-account-id account_b_id --data-set-id dataset_idConfirme se a resposta do comando describe-data-set contém um código de status 201. O código de status 201 significa que o conjunto de dados foi criado com sucesso.
-
Anote o ARN do conjunto de dados da saída para usar em uma etapa posterior.
Crie um painel na Conta B a partir do modelo na Conta A
-
Execute o comando a seguir e inclua o ARN do modelo:
aws quicksight create-dashboard --aws-account-id account_b_id --dashboard-id dashboard_id --name dashboard_name --source-entity file://DashboardFromTemplate.jsonObservação: você pode adicionar o parâmetro --region target_region para criar o painel em uma região diferente. Substitua target_region pela região na qual você deseja criar o modelo.
Exemplo de arquivo JSON do painel para a Conta 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" } }No arquivo JSON do painel anterior:
- Em DatasetPlaceholder, você deve usar o mesmo nome do conjunto de dados do modelo da Conta A.
- Em DataSetARN, você pode usar o ARN do conjunto de dados que você criou na Conta B.
- Em Arn, você pode usar o ARN do modelo que você criou na Conta A.
-
Confirme se o painel foi criado:
aws quicksight describe-dashboard --aws-account-id account_b_id --dashboard-id dashboard_idObservação: confirme se a resposta para o comando describe-dashboard contém um código de status 200. O código de status 200 significa que o painel existe.
-
Use o comando update-dashboard-permissions da AWS CLI para conceder as permissões apropriadas aos usuários do Quick Sight:
aws quicksight update-dashboard-permissions --aws-account-id account_b_id --dashboard-id dashboard_id --grant-permissions file://DashboardPermission.jsonExemplo de arquivo JSON do painel:
[ { "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" ] } ]No exemplo anterior de arquivo JSON do painel, o usuário do Quick Sight recebe acesso de coproprietário. Para fornecer acesso somente de LEITURA aos usuários, especifique as seguintes permissões:
"quicksight:DescribeDashboard", "quicksight:ListDashboardVersions", "quicksight:QueryDashboard"
(Opcional) Crie um modelo na Conta B a partir do modelo existente na Conta A
-
Confirme se seu usuário ou perfil do IAM tem as permissões apropriadas. Você deve ter as seguintes permissões para acessar um modelo entre contas no Quick Sight:
{ "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" } ] } -
Crie um novo modelo na Conta B a partir do modelo na Conta A:
aws quicksight create-template --aws-account-id account_b_id --template-id template_name --source-entity file://templateB.jsonObservação: substitua template_name pelo nome do modelo da Conta B. Para criar um modelo em uma região diferente, adicione --region target_region.
Exemplo de arquivo JSON para a Conta B:
{ "SourceTemplate": { "Arn": "arn:aws:quicksight:region:account_a_id:template/template_id" } } -
Confirme se o modelo foi criado:
aws quicksight describe-template --aws-account-id account_b_id --template-id template_idObservação: confirme se a resposta do comando describe-template contém um status CREATION\ _SUCCESSFUL.
Informações relacionadas
Migrate Amazon Quick Sight across AWS accounts (Migre o Amazon Quick Sight entre contas da AWS)
- Idioma
- Português

Conteúdo relevante
- Resposta aceitafeita há 8 meses
- feita há 9 meses