Amazon web services AWS s3跨帐户网站访问被拒绝

Amazon web services AWS s3跨帐户网站访问被拒绝,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我有两个AWS账户,账户A和账户B 我正在使用以下方式将一些静态网站文件从accountA发送到accountB: aws s3 cp s3:BucketA s3://BucketB --recursive --acl bucket-owner-full-control 在我尝试访问该网站之前,一切都正常,当我遇到AccessDenied错误时 如果acl不起作用,我该怎么办 另外,我的bucket已配置为用作网站,如果我从帐户本身上载文件,我可以完全访问该网站。问题是accountB不拥有这

我有两个AWS账户,账户A和账户B

我正在使用以下方式将一些静态网站文件从accountA发送到accountB:

aws s3 cp s3:BucketA s3://BucketB --recursive --acl bucket-owner-full-control
在我尝试访问该网站之前,一切都正常,当我遇到AccessDenied错误时

如果acl不起作用,我该怎么办


另外,我的bucket已配置为用作网站,如果我从帐户本身上载文件,我可以完全访问该网站。

问题是accountB不拥有这些对象,因此bucket策略不适用于这些对象。有两种方法可以解决此问题:

复制时,accountA复印机必须应用公共读取ACL。 accountB bucket所有者在复制后必须通过复制每个对象本身来获得对象的所有权,可能需要一些小的修改,如元数据。
最简单的解决方案是1,在这种情况下,我建议您在复制文件时同时应用public read和bucket owner full control ACL。

已经有了将对象公开的策略。{效果:Allow,主体:*,操作:s3:GetObject,资源:arn:aws:s3:::BucketB/*}。或者我做错了什么?问题是accountB不拥有这些对象,所以bucket策略不适用。请相信accountA复制者在复制时必须应用公共读取ACL,或者accountB bucket所有者在复制后必须通过在其自身上复制每个对象来获得对象的所有权,可能需要一些小的修改,例如元数据。您需要传递acl public read,否则只有bucket所有者帐户有权访问,因为您仍然是对象的所有者,除非bucket owner帐户重新复制该对象并成为其所有者并为*.s启用公共访问或bucket策略,否则它将是可公共访问的。aws s3 cp命令将发送到哪个帐户?是使用A帐户还是B帐户的凭据?我明白了。让公众读起来很有魅力。我是否可以将acl同时设置为public read和bucket owner full control?我不知道我可以同时设置这两个acl。非常感谢。