如何授予存储桶拥有者完全控制权,以将文件从一个帐户的redshift卸载到另一个帐户的s3存储桶?

doc*_*ore 5 amazon-s3 amazon-web-services amazon-iam amazon-redshift

我在AWS帐户“ A”中有一个redshift集群,在帐户“ B”中有一个S3存储桶。我需要将数据从A中的redshift帐户卸载到B中的S3存储桶。

我已经提供了必要的存储区策略和角色策略以卸载数据。数据也已成功卸载。现在的问题是,从此卸载创建的文件的所有者是帐户A,并且该文件需要由用户B使用。在尝试访问该对象时,我被拒绝访问。我该如何解决?

PS:Redshift IAM策略已授予ListBucket和GetObject权限。

doc*_*ore 2

这对我有用 - 链接 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