跳至內容

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

3 分的閱讀內容
0

我想嘗試使用另一個 AWS 帳戶的 Amazon Simple Storage Service (Amazon S3) 儲存貯體資料,在 Amazon Quick Suite 中建立資料集。

簡短說明

若要建立從帳戶 A 的 Quick Suite 到帳戶 B 已加密 Amazon S3 儲存貯體的跨帳戶存取權,請完成下列步驟:

  1. 更新帳戶 B 的 S3 儲存貯體政策。
  2. 將 S3 儲存貯體新增為帳戶 A 可以存取的資源。
  3. 授予帳戶 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 的跨帳戶存取權,請完成下列步驟:

  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-service-role-v0 替換為 aws-quicksight-s3-consumers-role-v0,以避免與 Amazon S3 的連線問題。
  2. 執行下列 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,請完成下列步驟:

  1. 開啟 Amazon S3 主控台
  2. 在導覽窗格中,選擇 Buckets (儲存貯體),然後選取包含您資料檔案的 S3 儲存貯體。
  3. 選擇 Properties (屬性),然後在 Default encryption (預設加密) 下找到您的 AWS KMS key ARN。

若要取得您的 Quick Suite 服務角色 ARN,請完成下列步驟:

  1. 在帳戶 A 中開啟 AWS Identity Access Management (IAM) 主控台
  2. 在瀏覽窗格中,選擇 Roles (角色)。
  3. 搜尋 aws-Quick Sight-service-role
  4. 選取您的 Quick Suite 服務角色,然後記下其 ARN。

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

將 S3 儲存區新增為帳戶 A 可存取的資源

若要允許帳戶 A 存取帳戶 B 中的 S3 儲存區,請完成下列步驟:

  1. 開啟您的 Amazon Quick Suite 主控台
  2. 選擇 Manage Quick Sight (管理 Quick Sight)。
  3. 選擇 Permissions (許可),然後選擇 AWS Resources (AWS 資源)。
  4. 選擇 Select S3 buckets (選取 S3 儲存貯體)。
  5. 選擇 S3 buckets that you can access across AWS (可以跨 AWS 存取的 S3 儲存貯體),以確認您的 S3 儲存貯體已列出,可供 Quick Suite 存取。
    注意: 如果未列出您的 S3 儲存貯體,請在 Use a different bucket (使用其他儲存貯體) 下新增您的儲存貯體。
  6. 選擇 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 (檢視金鑰政策)

AWS 官方已更新 7 個月前