繁体   English   中英

授予 Redshift Cluster 对另一个账户拥有的 S3 存储桶的访问权限

[英]Give a Redshift Cluster access to S3 bucket owned by another account

我正在尝试使用 iam_role 将数据从 Redshift 卸载到 S3。 只要我将数据卸载到与 Redshift 集群相同的帐户所拥有的 S3 存储桶,卸载命令就可以正常工作。

但是,如果我尝试将数据卸载到另一个帐户拥有的 S3 存储桶中,则它不起作用。 我已经尝试过这些教程中提到的方法:

但是,我总是得到S3ServiceException:Access Denied,Status 403,Error AccessDenied,Rid

有没有人这样做过?

我让它工作。 这是我所做的:

  • 在具有AmazonS3FullAccess策略的账户 A 中创建了一个IAM 角色(用于测试)
  • 在账户 A 中启动了Amazon Redshift 集群
  • 将数据加载到 Redshift 集群中
  • 测试 1:卸载到账户 A 中的存储桶——成功
  • 测试 2:卸载到账户 B 中的存储桶——失败
  • 为账户 B 中的存储桶添加存储桶策略(见下文)
  • 测试 3:卸载到账户 B 中的存储桶——成功!

这是我使用的存储桶策略:

{
  "Id": "Policy11",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PermitRoleAccess",
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ],
      "Principal": {
        "AWS": [
          "arn:aws:iam::123456789012:role/Redshift-loader"
        ]
      }
    }
  ]
}

Redshift-loader角色已经与我的 Redshift 集群相关联。 此策略授予角色(位于不同 AWS 账户中)对此 S3 存储桶的访问权限。

我使用 access_key_id 和 secret_access_key 而不是 iam_rol 解决了它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM