我想嘗試使用另一個帳戶中 Amazon Simple Storage Service (Amazon S3) 儲存貯體的資料在 Amazon QuickSight 中建立資料集。
簡短說明
請完成以下步驟,建立從 Amazon QuickSight (帳戶 A) 到另一個帳戶 (帳戶 B) 中加密 Amazon S3 儲存貯體的跨帳戶存取權:
- 更新帳戶 B (S3 儲存貯體所在位置) 中的 S3 儲存貯體政策。
- 將 S3 儲存貯體新增為 QuickSight 服務角色 (帳戶 A) 可存取的資源。
- 允許 QuickSight 服務角色存取 S3 儲存貯體的 AWS Key Management Service (KMS) 金鑰。
**注意:**本文假設您的 S3 儲存貯體已加密。使用 AWS KMS 金鑰加密 S3 儲存貯體也是一種最佳實務。如需如何啟用 Amazon S3 預設加密的詳細資訊,請參閱設定預設加密。
解決方法
更新帳戶 B 中的 S3 儲存貯體政策
若要設定從 QuickSight 到 Amazon S3 的跨帳户存取權,請完成以下步驟:
-
在帳戶 B 中更新 S3 儲存貯體的儲存貯體政策,例如:
{ "Version": "2012-10-17",
"Id": "BucketPolicy",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<Account A>:role/service-role/aws-quicksight-service-role-v0"
},
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": [
"arn:aws:s3:::cross-account-qstest-bucket",
"arn:aws:s3:::cross-account-qstest-bucket/*"
]
}
]
}
**注意:**如果帳戶 A 中存在 aws-quicksight-s3-consumers-role-v0 角色,請務必改用此角色。用 aws-quicksight-s3-consumers-role-v0 取代 aws-quicksight-service-role-v0,以避免 Amazon S3 的連線問題。
-
將帳戶 A 中的 QuickSight 服務角色新增到可存取 S3 儲存貯體之 AWS KMS 金鑰的使用者清單中:
aws kms create-grant --key-id aws_kms_key_arn --grantee-principal quickSight_role_arn --operations Decrypt
**注意:**用 AWS KMS 金鑰的 ARN 取代 aws_kms_key_arn,並用 QuickSight 角色的 ARN 取代 quicksight_role_arn。
若要取得 AWS KMS 金鑰 ARN,請執行下列操作:
- 開啟 Amazon S3 主控台。
- 前往包含資料檔案的 S3 儲存貯體。
- 選擇屬性標籤。AWS KMS 金鑰 ARN 位於預設加密之下。
若要取得 QuickSight 服務角色 ARN,請執行下列操作:
- 在帳戶 A 中開啟 AWS Identity Access Management (IAM) 主控台。
- 在導覽窗格中,選擇角色。
- 搜尋 aws-quicksight-service-role。
- 選取 QuickSight 服務角色,然後複製其 ARN。
**注意:**如果帳戶 A 中存在 aws-quicksight-s3-consumers-role-v0 角色,請務必改用此角色。否則,當您嘗試連線到 Amazon S3 時,可能會收到錯誤。
將 S3 儲存貯體新增為 QuickSight 服務角色可存取的資源
若要允許 QuickSight 服務角色存取帳戶 B 中的 S3 儲存貯體,請完成以下步驟:
- 打開 Amazon QuickSight 主控台。
- 選擇管理 QuickSight。
- 選擇安全和許可。
- 選擇新增或移除。
- 選擇詳細資訊。
- 選擇選取 S3 儲存貯體。
- 選擇可以跨 AWS 存取的 S3 儲存貯體標籤以確認您的 S3 儲存貯體已列出,可供 QuickSight 存取使用。
- (選用) 如果未列出您的 S3 儲存貯體,請在使用不同的儲存貯體下新增您的儲存貯體。
- 選擇完成。
允許 QuickSight 服務角色存取 S3 儲存貯體的 AWS KMS 金鑰
將下列內嵌 IAM 政策新增至帳戶 A 中的 QuickSight 服務角色:
{ "Version": "2012-10-17",
"Statement": [
{
"Sid": "ExampleStmt3",
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": ""arn:aws:kms:us-east-1:<account ID of your S3 bucket>:key/<KEYID>"
}
]
}
**注意:**上述內嵌政策允許 QuickSight 服務角色存取帳戶 B 中的 AWS KMS 金鑰。請用您的陳述式 ID 取代 ExampleStmt3。
**重要事項:**如果帳戶 A 中存在 aws-quicksight-s3-consumers-role-v0 角色,則您必須將 AWS KMS 政策附加到該角色。AWS KMS 政策會解密 S3 儲存貯體中的資料。如果改為將更新的角色政策附加到 QuickSight 服務角色,則可能會遇到權限錯誤。如需如何解決權限錯誤的相關資訊,請參閱如何對 Amazon QuickSight 中的 AWS 資源權限錯誤進行疑難排解?
其他考量
當您設定從 QuickSight 到另一個帳戶中 S3 儲存貯體的跨帳户存取權時,請考慮下列事項:
相關資訊
編輯金鑰
我無法連線到 Amazon S3
疑難排解 Amazon QuickSight
檢視金鑰政策 (主控台)