我需要在两个AWS帐户之间迁移几个桶。这可以通过AWS进行一些配置,然后从一个S3复制到另一个配置。我跟着从另一个AWS帐户复制S3对象,一切都很顺利。但是,当我检查对象的权限时,没有启用公共访问。
一些前因后果:
在这一刻,我需要将内容迁移到我的目标桶,而不会失去对对象的公共访问。我在AWS文档和其他博客中找到了这个,但是我什么也没找到。
希望你能帮我,谢谢!
发布于 2019-12-07 08:40:59
您可以使用同步中的--acl param轻松地向复制的对象添加公共访问权限。从您在问题中粘贴的url中可以看到,您使用了泛型命令:
aws s3 sync s3://awsexamplesourcebucket s3://awsexampledestinationbucket在上面的命令中添加--acl param:
aws s3 sync s3://awsexamplesourcebucket s3://awsexampledestinationbucket --acl 'public-read'- ACL (string)在执行命令时为对象设置ACL。如果使用此参数,则必须在IAM策略的操作列表中包含"s3:PutObjectAcl“权限。只接受私有、公共读取、公共读-写、认证-读取、aws读、桶-所有者-读、桶-所有者-完全控制和日志传递-写入的值。
如果您的一些对象需要是公共的,而另一些则不需要,那么您需要结合使用上面的命令--包括和--排除,以便授予对某些对象的公共访问权,并将私有权限授予其他对象。
参考文献
https://stackoverflow.com/questions/59218944
复制相似问题