我想嘗試使用另一個 AWS 帳戶的 Amazon Simple Storage Service (Amazon S3) 儲存貯體資料,在 Amazon Quick Suite 中建立資料集。
簡短說明
若要建立從帳戶 A 的 Quick Suite 到帳戶 B 已加密 Amazon S3 儲存貯體的跨帳戶存取權,請完成下列步驟:
- 更新帳戶 B 的 S3 儲存貯體政策。
- 將 S3 儲存貯體新增為帳戶 A 可以存取的資源。
- 授予帳戶 A 權限存取 S3 儲存貯體的 AWS Key Management Service (KMS) 金鑰。
注意: 最佳實務是以 AWS KMS key 加密您的 S3 儲存貯體。如需如何為 Amazon S3 啟用預設加密的更多資訊,請參閱 Configuring default encryption (設定預設加密)。
注意: 當您設定從 Quick Suite 到另一個帳戶的 S3 儲存貯體的跨帳戶存取權時,請使用您的資訊清單檔案來連線至您的 S3 儲存貯體。此外,請使用 S3 檔案建立資料集。請確保您使用的是 S3 資訊清單檔案支援的格式。
解決方法
更新帳戶 B 的 S3 儲存貯體政策
若要設定從 Quick Suite 到 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-service-role-v0 替換為 aws-quicksight-s3-consumers-role-v0,以避免與 Amazon S3 的連線問題。
- 執行下列 create-grant AWS CLI 命令,將帳戶 A 的 Quick Suite 服務角色新增至可存取該 S3 儲存貯體之 AWS KMS key 的使用者清單中:
aws kms create-grant --key-id aws_kms_key_arn --grantee-principal quickSight_role_arn --operations Decrypt
注意: 請將 aws_kms_key_arn 替換為您 AWS KMS key 的 Amazon Resource Name (ARN),並將 quicksight_role_arn 替換為您 Quick Suite 角色的 ARN。
若要取得您的 AWS KMS key ARN,請完成下列步驟:
- 開啟 Amazon S3 主控台。
- 在導覽窗格中,選擇 Buckets (儲存貯體),然後選取包含您資料檔案的 S3 儲存貯體。
- 選擇 Properties (屬性),然後在 Default encryption (預設加密) 下找到您的 AWS KMS key ARN。
若要取得您的 Quick Suite 服務角色 ARN,請完成下列步驟:
- 在帳戶 A 中開啟 AWS Identity Access Management (IAM) 主控台。
- 在瀏覽窗格中,選擇 Roles (角色)。
- 搜尋 aws-Quick Sight-service-role。
- 選取您的 Quick Suite 服務角色,然後記下其 ARN。
注意: 如果帳戶 A 存在 aws-quicksight-s3-consumers-role-v0 角色,請改用此角色,否則當您嘗試連線到 Amazon S3 時,可能會收到錯誤。
將 S3 儲存區新增為帳戶 A 可存取的資源
若要允許帳戶 A 存取帳戶 B 中的 S3 儲存區,請完成下列步驟:
- 開啟您的 Amazon Quick Suite 主控台。
- 選擇 Manage Quick Sight (管理 Quick Sight)。
- 選擇 Permissions (許可),然後選擇 AWS Resources (AWS 資源)。
- 選擇 Select S3 buckets (選取 S3 儲存貯體)。
- 選擇 S3 buckets that you can access across AWS (可以跨 AWS 存取的 S3 儲存貯體),以確認您的 S3 儲存貯體已列出,可供 Quick Suite 存取。
注意: 如果未列出您的 S3 儲存貯體,請在 Use a different bucket (使用其他儲存貯體) 下新增您的儲存貯體。
- 選擇 Finish (完成)。
授予帳戶 A 權限存取 S3 儲存貯體的 AWS KMS key
重要事項: 如果帳戶 A 存在 aws-quicksight-s3-consumers-role-v0 角色,請將 AWS KMS 政策附加至此角色,而非 Quick Suite 服務角色,否則您可能會遇到許可錯誤。如需了解如何解決許可錯誤,請參閱如何對 Quick Suite 中的 AWS 資源權限錯誤進行疑難排解?
若您沒有 aws-quicksight-s3-consumers-role-v0 角色,請將下列內嵌政策新增至該服務角色,以授予存取 AWS KMS key 的權限:
{ "Version": "2012-10-17", "Statement": [
{
"Sid": "ExampleStmt3",
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": "arn:aws:kms:region:S3_bucket_account_ID:key/key_ID"
}
]
}
注意: 請將 ExampleStmt3 替換為您的陳述式 ID,並將 region 替換為您 S3 儲存貯體的 AWS 區域。此外,請將 S3_bucket_account_ID 替換為您 S3 儲存貯體所在的帳戶 ID,並將 key_ID 替換為您的金鑰 ID。
如需更多資訊,請參閱 Setting granular access to AWS services through IAM (透過 IAM 設定 AWS 服務的精細存取權)。
相關資訊
Change a key policy (變更金鑰政策)
I can't connect to Amazon S3 (我無法連接至 Amazon S3)
Troubleshooting Amazon Quick Sight (對 Amazon Quick Sight 進行疑難排解)
View a key policies (檢視金鑰政策)