AWS S3-将一个帐户拥有的文件复制到另一个帐户的存储桶所有者中



我有3个AWS帐户:

  • S3所有者
  • 账户A
  • 账户B

我有一个由";S3所有者";具有bucket策略的帐户,以允许a和B帐户对bucket和对象具有完全访问权限。我还设置了ACL,这样A和B帐户也可以完全访问对象。

我试图让账户A或B将对象上传到bucket,但允许另一个账户复制。然而,我一直收到拒绝访问的异常。我会使用lambda将对象上的ACL设置为与bucket(所有3个ACL(相同,但这需要在帐户a和B中都运行lambda,必须确定它是否是所有者才能设置ACL。有没有更简单的方法来实现这一点?

我和你也有同样的问题。我看到bucket可以完全访问这些对象。我尝试了2种方法将帐户B上传的对象复制到帐户A:

  1. 设置bucket策略以允许帐户A读取bucket中的任何内容-仍然获得访问拒绝异常
  2. 使用假定角色让帐户A读取bucket中的任何内容。-这成功地读取了对象,但复制失败(因为我所扮演的角色没有对帐户A写入权限(

我想知道这两种授予跨帐户权限的方式之间有什么区别。。。

当一个对象在另一个帐户拥有的Amazon S3存储桶中创建/复制时,重要的是指定:

ACL = bucket-owner-full-control

这将对象"赋予"拥有bucket的帐户。

如果没有指定这一点,那么对象(奇怪地(由源帐户"拥有",并且(更奇怪的是(拥有bucket的帐户通常甚至无法从自己的bucket中删除对象!

此外,仅供参考,要授予对帐户A和B的访问权限,您可以简单地使用Bucket Policy。没有必要对ACL做任何事情。(事实上,除了bucket-owner-full-control和使用public-read公开单个对象之外,很少需要使用ACL

相关内容

最新更新