如何允許 Amazon QuickSight 存取使用拒絕政策的 S3 儲存貯體?

1 分的閱讀內容
0

我想要確定 Amazon Simple Storage Service (Amazon S3) 儲存貯體政策允許從 Amazon QuickSight 進行存取。

簡短描述

如果 Amazon S3 儲存貯體使用拒絕政策,該政策會覆寫您在 Amazon QuickSight 主控台中指定的任何 S3 權限。若要允許 Amazon QuickSight 存取 S3 儲存貯體,請在拒絕政策中新增 Amazon QuickSight 服務角色 (aws-quicksight-service-role-v0) 作為例外狀況。

解決方法

1.    確認 Amazon QuickSight 擁有存取 S3 儲存貯體的權限

2.    使用 AWS Command Line Interface (AWS CLI)AWS Identity and Access Management (IAM) API 取得 aws-quicksight-service-role-v0 角色的唯一 ID。該 ID 對於每個 Amazon QuickSight 帳戶都是唯一的。例如:

aws iam get-role --role-name aws-quicksight-service-role-v0 --query 'Role.RoleId' --output json
"AROAEXAMPLEID"

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確定您使用的是最新版本的 AWS CLI

3.    開啟 Amazon S3 主控台

4.    選擇要使用 Amazon QuickSight 存取的儲存貯體。

5.    選擇權限視圖。

6.    選擇儲存貯體政策

7.    輸入類似於此範例的儲存貯體政策。用唯一 ID 取代 AROAEXAMPLEID。若要為 IAM 使用者新增例外狀況,請用 IAM 使用者的唯一 ID 取代 AIDAEXAMPLEUSERID。IAM 使用者政策也必須包含 S3 儲存貯體的允許陳述式。例如:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::examplebucketname",
        "arn:aws:s3:::examplebucketname/*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:userid": [
            "AROAEXAMPLEID:*",
            "AIDAEXAMPLEUSERID"
          ]
        }
      }
    }
  ]
}

拒絕政策為 Amazon QuickSight 服務角色和 IAM 使用者新增例外狀況。

**注意:**如果刪除 Amazon QuickSight 服務角色和 IAM 使用者,則將被鎖定在儲存貯體之外。若要解決此問題,請以 AWS 帳戶根使用者身分登入,然後使用 delete-bucket-policy 命令刪除儲存貯體政策。

相關資訊

如何將 Amazon S3 儲存貯體存取權限制為特定 IAM 角色

AWS 官方
AWS 官方已更新 9 個月前