如何使用拒绝策略允许 Amazon QuickSight 访问 Amazon S3 存储桶?

1 分钟阅读
0

我想确保我的 Amazon Simple Storage Service (Amazon S3) 存储桶策略允许从 Amazon QuickSight 进行访问。

概述

如果您的 Amazon S3 存储桶使用拒绝策略,则该策略将覆盖您在 Amazon QuickSight 控制台中指定的所有 Amazon S3 权限。要允许 Amazon QuickSight 访问 Amazon S3 存储桶,请在拒绝策略中将 Amazon QuickSight 服务角色 (aws-quicksight-service-role-v0) 添加为例外。

解决方法

  1. 确认 Amazon QuickSight 有权访问 Amazon S3 存储桶

  2. 使用 AWS 命令行界面 (AWS CLI)AWS Identity and Access Management (AWS IAM) API 获取 aws-quicksight-service-role-v0 角色的唯一 ID。每个 Amazon QuickSight 账户的编号都是唯一的。例如:

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

**注意:**如果您在运行 AWS CLI 命令时收到错误,请确保使用最新版本的 AWS CLI

  1. 打开 Amazon S3 控制台

  2. 选择您要通过 Amazon QuickSight 访问的存储桶。

  3. 选择权限视图。

  4. 选择桶策略

  5. 输入与本示例类似的存储桶策略。将 AROAEXAMPLEID 替换为您的唯一 ID。要为 IAM 用户添加例外,请将 AIDAEXAMPLEUSERID 替换为 IAM 用户的唯一 ID。IAM 用户策略还必须包含 Amazon S3 存储桶的 Allow 语句。例如:

{
  "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 个月前