Como configuro o acesso entre contas usando modelos no Amazon QuickSight?
Quero compartilhar meus conjuntos de dados e meu painel com outra conta da AWS no Amazon QuickSight. Como posso fazer isso?
Breve descrição
Você pode usar modelos para criar acesso entre contas para compartilhar sua análise e painel do Amazon QuickSight em outras contas e regiões da AWS. Você também pode usar os modelos para criar painéis ou outros modelos.
Conclua as etapas a seguir para fornecer acesso entre contas no QuickSight:
- Em uma conta (Conta A), crie um novo modelo a partir de uma análise existente.
- Em outra conta (Conta B), crie um conjunto de dados usando o mesmo esquema na Conta A.
- 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 descreve as etapas para acesso entre contas usando a AWS Command Line Interface (AWS CLI). Se você receber erros ao executar comandos da AWS CLI, verifique se está utilizando 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
1. 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_id
Observação: substitua account_a_id pelo ID da conta A.
2. Anote o ID do painel que você deseja compartilhar.
3. 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_id
Observação: substitua dashboard_id pelo ID do seu painel.
4. 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 da AWS, analysis_id pelo ID da sua análise, dataset_name pelo nome do conjunto de dados e dataset_id pelo ID do seu conjunto de dados.
5. 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 default
Observação: substitua template_name pelo nome do modelo da Conta A.
6. Confirme se o modelo foi criado executando o comando describe-template da AWS CLI:
aws quicksight describe-template --aws-account-id account_a_id --template-id template_id
Observação: substitua template_id pelo ID do seu modelo. Confirme se a resposta do comando describe-template contém um status CREATION_SUCCESSFUL.
7. Anote o ARN do modelo na saída para usar em uma etapa posterior.
8. 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.json
Exemplo 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).
Crie um conjunto de dados na Conta B usando o mesmo esquema da Conta A
Você não pode criar um painel diretamente de um conjunto de dados que está em outra conta (Conta A). Você deve criar o mesmo conjunto de dados na conta em que deseja criar o painel (Conta B). Em seguida, crie o painel a partir do conjunto de dados recém-criado.
1. Crie o conjunto de dados na Conta B.
Como usar o console do Amazon QuickSight
Consulte Criação de conjuntos de dados.
Como usar a AWS CLI
Use o comando create-data-set da AWS CLI:
aws quicksight create-data-set --aws-account-id account_b_id --dataset-id dataset_name --cli-input-json file://datasetB.json
Exemplo 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 namespace e user_name pelo nome do usuário do QuickSight. O exemplo anterior se refere a um conjunto de dados SPICE.
2. Confirme se o conjunto de dados foi criado:
aws quicksight describe-data-set --aws-account-id account_b_id --data-set-id dataset_id
Confirme 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.
3. 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
1. 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.json
Observação: você pode criar o painel em uma região diferente adicionando o parâmetro --region target_region. 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.
2. Confirme se o painel foi criado:
aws quicksight describe-dashboard --aws-account-id account_b_id --dashboard-id dashboard_id
Observaçã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.
3. Use o comando update-dashboard-permissions da AWS CLI para conceder as permissões apropriadas aos usuários do QuickSight:
aws quicksight update-dashboard-permissions --aws-account-id account_b_id --dashboard-id dashboard_id --grant-permissions file://DashboardPermission.json
Exemplo 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 do arquivo JSON do painel, o usuário do QuickSight 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
1. 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 de várias contas no 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" } ] }
2. 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.json
Observaçã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" } }
3. Confirme se o modelo foi criado:
aws quicksight describe-template --aws-account-id account_b_id --template-id template_id
Observação: confirme se a resposta do comando describe-template contém um status CREATION\ _SUCCESSFUL.
Informações relacionadas
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos