如何使用 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。
解決方法
從相同帳戶的現有分析開始在帳戶 A 中建立範本
- 使用list-dashboardsAWS CLI 命令列出您帳戶中可用的儀表板:
aws quicksight list-dashboards --aws-account-id account_a_id
**注意:將 account_a_id 取代為帳號 A ** 的識別碼。
-
請注意您要共用的控制面板 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 的範本名稱。
- 確認範本是透過執行 describe-template AWS CLI 命令建立的:
aws quicksight describe-template --aws-account-id account_a_id --template-id template_id
注意:將 template_id 取代為範本的 ID。確認** describe-template 命令的回應包含CREATION_SUCCESSFUL**狀態。
-
請注意輸出中的範本 ARN 將在稍後的步驟中使用。
-
使用更新範本權限 AWS CLI 命令將帳戶 A 中範本的跨帳戶** READ **權限授予給帳戶 B:
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" ] } ]
注意:以帳戶 B 的識別碼取代 account_b_id。若要與多個帳戶共用範本,請將所有帳戶的根目錄納入為主體。您只能與根帳戶共用範本。主體元素不支援 AWS 身份和存取管理 (IAM) 角色。
使用與帳戶 A 相同的架構,在帳戶 B 中建立資料集
您無法直接從另一個帳戶 (帳戶 A) 中的資料集建立儀表板。相反地,您必須在要建立儀表板的帳戶中建立相同的資料集 (帳戶 B)。然後,從新建立的資料集建立儀表板。
- 在帳戶 B 中建立資料集。
使用 Amazon QuickSight 臺
請參閱建立資料集。
**使用 AWS CLI **
使用create-data-set AWSCLI 命令:
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
確認escribe-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 **狀態碼表示儀表板存在。
- 使用更新儀表板權限 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 使用者會被授予共同擁有者存取權。
若要提供使用者唯讀存取權限,請指定下列權限:
"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 **狀態。
相關資訊
相關內容
- 已提問 10 個月前lg...
- 已提問 9 個月前lg...
- 已提問 9 個月前lg...
- 已提問 3 個月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前