如何設定從 Amazon QuickSight 到另一個帳戶中 Amazon S3 儲存貯體的跨帳户存取權?

2 分的閱讀內容
0

我想嘗試使用另一個帳戶中 Amazon Simple Storage Service (Amazon S3) 儲存貯體的資料在 Amazon QuickSight 中建立資料集。我該如何操作?

簡短描述

請完成以下步驟,建立從 Amazon QuickSight (帳戶 A) 到另一個帳戶 (帳戶 B) 中加密 Amazon S3 儲存貯體的跨帳戶存取權:

  1. 更新帳戶 B (S3 儲存貯體所在位置) 中的 S3 儲存貯體政策。
  2. 將 S3 儲存貯體新增為 QuickSight 服務角色 (帳戶 A) 可存取的資源。
  3. 允許 QuickSight 服務角色存取 S3 儲存貯體的 AWS Key Management Service (KMS) 金鑰。

**注意:**本文假設您的 S3 儲存貯體已加密。使用 AWS KMS 金鑰加密 S3 儲存貯體也是一種最佳實務。如需如何為 Amazon S3 啟用預設加密的詳細資訊,請參閱啟用 Amazon S3 預設儲存貯體加密

解決方法

更新帳戶 B 中的 S3 儲存貯體政策

若要設定從 QuickSight 到 Amazon S3 的跨帳户存取權,請完成以下步驟:

1.    在帳戶 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 的連線問題。

2.    將帳戶 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,請執行下列操作:

  1. 開啟 Amazon S3 主控台
  2. 前往包含資料檔案的 S3 儲存貯體。
  3. 選擇屬性標籤。AWS KMS 金鑰 ARN 位於預設加密之下。

若要取得 QuickSight 服務角色 ARN,請執行下列操作:

  1. 在帳戶 A 中開啟 AWS Identity Access Management (IAM) 主控台
  2. 在左側導覽窗格中,選擇角色
  3. 搜尋 aws-quicksight-service-role
  4. 選取 QuickSight 服務角色,然後複製其 ARN。

**注意:**如果帳戶 A 中存在 aws-quicksight-s3-consumers-role-v0 角色,請務必改用此角色。否則,當您嘗試連線到 Amazon S3 時,可能會收到錯誤。

將 S3 儲存貯體新增為 QuickSight 服務角色可存取的資源

若要允許 QuickSight 服務角色存取帳戶 B 中的 S3 儲存貯體,請完成以下步驟:

  1. 打開 Amazon QuickSight 主控台
  2. 選擇管理 QuickSight
  3. 選擇安全和許可
  4. 選擇新增或移除
  5. 選擇詳細資訊
  6. 選擇選取 S3 儲存貯體
  7. 選擇可以跨 AWS 存取的 S3 儲存貯體標籤以確認您的 S3 儲存貯體已列出,可供 QuickSight 存取使用。
  8. (選用) 如果未列出您的 S3 儲存貯體,請在使用不同的儲存貯體下新增您的儲存貯體。
  9. 選擇完成

允許 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

檢視金鑰政策 (主控台)

AWS 官方
AWS 官方已更新 2 年前