gpt4 book ai didi

amazon-web-services - Amazon S3 文件权限,从其他账户复制时访问被拒绝

转载 作者:行者123 更新时间:2023-12-02 03:15:38 24 4
gpt4 key购买 nike

我有一组视频文件,这些文件是从另一个账户的一个 AWS 存储桶复制到我自己的存储桶中的账户中的。

我现在遇到了所有文件的问题,当我尝试公开所有文件时,我收到“访问被拒绝”错误。

具体来说,我登录我的 AWS 账户,进入 S3,深入查看文件夹结构以找到其中一个视频文件。

当我查看此特定文件时,文件上的权限选项卡没有显示分配给任何人的任何权限。尚未分配任何用户、组或系统权限。

在“权限”选项卡的底部,我看到一个小框,上面写着“错误:访问被拒绝”。我无法更改该文件的任何内容。我无法添加元数据。我无法将用户添加到文件中。我无法公开该文件。

有什么方法可以控制这些文件以便我可以将它们公开吗?有超过 15,000 个文件/大约 60GB 文件。我想避免下载和重新上传所有文件。

在人们的帮助和建议下,我尝试了以下方法。我在我的存储桶中创建了一个名为“media”的新文件夹。

我尝试了这个命令:

aws s3 cp s3://mybucket/2014/09/17/thumb.jpg s3://mybucket/media --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=my_aws_account_email_address

我在调用 HeadObject 操作时收到 fatal error 403:Forbidden。

最佳答案

一个非常有趣的难题!幸运的是,有一个解决方案。

首先,回顾一下:

  • 账户 A 中的存储桶 A
  • 账户 B 中的存储桶 B
  • 账户 A 中的用户将对象复制到存储桶 B(已被授予执行此操作的适当权限)
  • 存储桶 B 中的对象仍然属于账户 A,账户 B 无法访问

我成功地重现了此问题,并且可以确认账户 B 中的用户无法访问该文件——甚至账户 B 中的 root 用户也无法访问该文件!

幸运的是,事情是可以解决的。 AWS Command-Line Interface (CLI) 中的 aws s3 cp 命令复制到同名文件时可以更新文件的权限。但是,要触发此操作,您还必须更新其他内容,否则您会收到此错误:

This copy request is illegal because it is trying to copy an object to itself without changing the object's metadata, storage class, website redirect location or encryption attributes.

因此,可以使用以下命令更新权限:

aws s3 cp s3://my-bucket/ s3://my-bucket/ --recursive --acl bucket-owner-full-control --metadata "One=Two"
  • 必须由拥有对象访问权限的帐户 A 用户运行(例如最初将对象复制到存储桶 B 的用户)
  • 元数据内容不重要,但需要强制更新
  • --acl bucket-owner-full-control 将向账户 B 授予权限,以便您能够正常使用这些对象

最终结果:您可以使用的存储桶!

关于amazon-web-services - Amazon S3 文件权限,从其他账户复制时访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43722678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com