我在 AWS 账户“A”中有一个 redshift 集群,在账户“B”中有一个 S3 存储桶。我需要将数据从 A 中的 redshift 帐户卸载到 B 中的 S3 存储桶。
我已经提供了必要的存储桶策略和角色策略来卸载数据。数据也正在成功卸载。现在的问题是这个卸载创建的文件的所有者是帐户
A 和该文件需要由用户 B 使用。在尝试访问该对象时,我的访问被拒绝。我该如何解决这个问题?
PS:ListBucket 和 GetObject 权限已由 redshift IAM 策略授予。
最佳答案
这对我有用 - 链接 IAM 角色。
例如,假设公司 A 想要访问属于公司 B 的 Amazon S3 存储桶中的数据。公司 A 为 Amazon Redshift 创建一个名为 RoleA 的 AWS 服务角色并将其附加到他们的集群。 B 公司创建了一个名为 RoleB 的角色,该角色有权访问 B 公司存储桶中的数据。为了访问公司 B 存储桶中的数据,公司 A 使用链接 RoleA 和 RoleB 的 iam_role 参数运行 COPY 命令。在 UNLOAD 操作期间,RoleA 临时代入 RoleB 以访问 Amazon S3 存储桶。
更多详情:https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html#authorizing-redshift-service-chaining-roles
关于amazon-web-services - 如何将存储桶所有者完全控制权授予从一个帐户中的 redshift 卸载到另一个帐户中的 s3 存储桶的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51196287/