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.
템플릿을 사용하여 Amazon QuickSight에서 교차 계정 액세스를 설정하려면 어떻게 해야 하나요?
내 데이터 세트와 대시보드를 Amazon QuickSight의 다른 AWS 계정과 공유하고 싶습니다.
간략한 설명
템플릿을 사용하여 교차 계정 액세스를 생성하여 다른 AWS 계정 및 AWS 리전 간에 Amazon QuickSight 분석 및 대시보드를 공유할 수 있습니다. 템플릿을 사용하여 대시보드 또는 다른 템플릿을 만들 수도 있습니다.
QuickSight에서 교차 계정 액세스를 제공하려면 다음 단계를 완료하세요.
- 계정 A에서 기존 분석에서 새 템플릿을 생성합니다.
- 계정 B에서 계정 A의 동일한 스키마를 사용하여 데이터세트를 생성합니다.
- 계정 A의 템플릿에서 계정 B의 대시보드를 생성합니다.
(선택 사항) 계정 A의 기존 템플릿에서 계정 B의 템플릿을 생성합니다. 한 계정에서 다른 계정으로 리소스를 이동하고 원본 계정에서 리소스를 제거하려는 경우 이 옵션을 사용합니다.
참고: 이 문서에서는 교차 계정 액세스 단계와 함께 AWS Command Line Interface(AWS CLI)를 사용합니다. AWS CLI 명령을 실행할 때 오류가 발생하면, AWS CLI 오류 문제 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
해결 방법
동일한 계정의 기존 분석에서 계정 A의 템플릿 생성
-
list-dashboards AWS CLI 명령을 사용하여 계정에서 사용할 수 있는 대시보드를 나열합니다.
aws quicksight list-dashboards --aws-account-id account_a_id
참고:****account_a_id를 계정 A의 ID로 바꿉니다.
-
공유하려는 대시보드의 ID를 기록해 둡니다.
-
describe-dashboard AWS CLI 명령을 사용하여 대시보드에서 세부 정보를 가져옵니다.
aws quicksight describe-dashboard --aws-account-id account_a_id --dashboard-id dashboard_id
참고: dashboard_id를 자신의 대시보드의 ID로 바꿉니다.
-
템플릿의 JSON 파일을 생성하고 분석 및 데이터세트의 ARN을 포함합니다.
{ "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" }
참고: aws_region을 자신의 AWS 리전으로, analysis_id를 자신의 분석 ID로, dataset_name을 자신의 데이터세트 이름으로, dataset_id를 자신의 데이터세트 ID로 바꿉니다.
-
분석과 동일한 리전에 템플릿을 생성합니다.
aws quicksight create-template --aws-account-id account_a_id --template-id template_name --cli-input-json file://template.json --profile default
참고: template_name을 계정 A의 템플릿 이름으로 바꿉니다.
-
AWS CLI 명령 describe-template을 실행하여 템플릿이 생성되었는지 확인합니다.
aws quicksight describe-template --aws-account-id account_a_id --template-id template_id
참고: template_id를 자신의 템플릿 ID로 바꿉니다. describe-template 명령에 대한 응답에 CREATION_SUCCESSFUL 상태가 포함되어 있는지 확인합니다.
-
이후 단계에서 사용할 수 있도록 출력에서 템플릿의 ARN을 기록해 둡니다.
-
update-template-permissions AWS CLI 명령을 사용하여 계정 A의 템플릿에서 계정 B로 교차 계정 READ 권한을 부여합니다.
aws quicksight update-template-permissions --aws-account-id account_a_id --template-id template_id --grant-permissions file://TemplatePermission.json
권한 JSON 파일의 예:
[ { "Principal": "arn:aws:iam::account_b_id:root", "Actions": [ "quicksight:UpdateTemplatePermissions", "quicksight:DescribeTemplate" ] } ]
참고: account_b_id를 계정 B의 ID로 바꿉니다. 템플릿을 여러 계정과 공유하려면 모든 계정의 루트를 위탁자로 포함합니다. 루트 계정과만 템플릿을 공유할 수 있습니다. 위탁자 요소는 AWS Identity and Access Management(IAM) 역할을 지원하지 않습니다.
계정 A와 동일한 스키마를 사용하여 계정 B에 데이터세트를 생성합니다.
계정 A와 같은 다른 계정에 있는 데이터세트에서 직접 대시보드를 만들 수 없습니다. 대신, 대시보드를 만들려는 계정에 계정 B와 같은 동일한 데이터세트를 만들어야 합니다. 그런 다음, 새로 만든 데이터세트에서 대시보드를 만듭니다.
-
Amazon QuickSight 콘솔 또는 AWS CLI를 사용하여 계정 B에 데이터세트를 생성합니다.
Amazon QuickSight 콘솔 사용
Amazon QuickSight 콘솔을 사용하여 데이터세트를 생성하려면 데이터세트 생성을 참조하세요.
AWS CLI 사용
create-data-set AWS CLI 명령을 사용하여 데이터세트를 생성합니다.
aws quicksight create-data-set --aws-account-id account_b_id --dataset-id dataset_name --cli-input-json file://datasetB.json
예제 데이터 세트 JSON 파일:
{ "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" ] } ] }
참고: namespace를 자신의 네임스페이스로 바꾸고 user_name을 QuickSight 사용자의 이름으로 바꿉니다. 앞의 예제는 SPICE 데이터세트를 참조합니다.
-
데이터 세트가 성공적으로 생성되었는지 확인합니다.
aws quicksight describe-data-set --aws-account-id account_b_id --data-set-id dataset_id
describe-data-set 명령에 대한 응답에 상태 코드 201이 포함되어 있는지 확인합니다. 201 상태 코드는 데이터세트가 성공적으로 생성되었음을 의미합니다.
-
이후 단계에서 사용할 수 있도록 출력에서 데이터 세트의 ARN을 기록해 둡니다.
계정 A의 템플릿에서 계정 B의 대시보드를 생성합니다.
-
다음 명령을 실행하고 템플릿의 ARN을 포함합니다.
aws quicksight create-dashboard --aws-account-id account_b_id --dashboard-id dashboard_id --name dashboard_name --source-entity file://DashboardFromTemplate.json
참고: --region target_region 매개 변수를 추가하여 다른 리전에 대시보드를 생성할 수 있습니다. target_region을 템플릿을 만들려는 지역으로 바꿉니다.
계정 B에 대한 대시보드 JSON 파일의 예:
{ "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" } }
앞의 대시보드 JSON 파일에서 다음을 수행합니다.
- DataSetPlaceholder의 경우 계정 A의 템플릿과 동일한 데이터세트 이름을 사용해야 합니다.
- DataSetARN의 경우 계정 B에서 생성한 데이터세트의 ARN을 사용할 수 있습니다.
- Arn의 경우 계정 A에서 생성한 템플릿의 ARN을 사용할 수 있습니다.
-
대시보드가 성공적으로 만들어졌는지 확인합니다.
aws quicksight describe-dashboard --aws-account-id account_b_id --dashboard-id dashboard_id
참고: describe-dashboard 명령에 대한 응답에 상태 코드 200이 포함되어 있는지 확인합니다. 200 상태 코드는 대시보드가 있음을 의미합니다.
-
update-dashboard-permissions AWS CLI 명령을 사용하여 QuickSight 사용자에게 적절한 권한을 부여합니다.
aws quicksight update-dashboard-permissions --aws-account-id account_b_id --dashboard-id dashboard_id --grant-permissions file://DashboardPermission.json
대시보드 JSON 파일의 예:
[ { "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" ] } ]
앞의 예제 대시보드 JSON 파일에서 QuickSight 사용자에게 공동 소유자 액세스 권한이 부여됩니다. 사용자에게 READ 전용 액세스 권한을 제공하려면 다음 권한을 지정합니다.
"quicksight:DescribeDashboard", "quicksight:ListDashboardVersions", "quicksight:QueryDashboard"
(선택 사항) 계정 A의 기존 템플릿에서 계정 B의 템플릿을 생성합니다.
-
IAM 사용자 또는 역할에 적절한 권한이 있는지 확인합니다. 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" } ] }
-
계정 A의 템플릿에서 계정 B에 새 템플릿을 생성합니다.
aws quicksight create-template --aws-account-id account_b_id --template-id template_name --source-entity file://templateB.json
참고: template_name을 계정 B의 템플릿 이름으로 바꿉니다. 다른 리전에 템플릿을 만들려면 --region target_region을 추가합니다.
계정 B에 대한 JSON 파일의 예:
{ "SourceTemplate": { "Arn": "arn:aws:quicksight:region:account_a_id:template/template_id" } }
-
템플릿이 생성되었는지 확인합니다.
aws quicksight describe-template --aws-account-id account_b_id --template-id template_id
참고: describe-template 명령에 대한 응답에 CREATION_SUCCESSFUL 상태가 포함되어 있는지 확인합니다.
관련 정보

관련 콘텐츠
- 질문됨 일 년 전lg...
- 질문됨 2년 전lg...
- 질문됨 8달 전lg...
- AWS 공식업데이트됨 4달 전
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 2년 전