Amazon s3 如何读取AWS S3上匿名发布的文件?
我在AWS S3上有一个bucket(我们称之为bucket-1),我无法读取它。我还有一个桶(我们称之为bucket-2),我可以从中阅读 我可以列出两个bucket的内容,但我不能复制bucket-1的任何内容Amazon s3 如何读取AWS S3上匿名发布的文件?,amazon-s3,aws-cli,Amazon S3,Aws Cli,我在AWS S3上有一个bucket(我们称之为bucket-1),我无法读取它。我还有一个桶(我们称之为bucket-2),我可以从中阅读 我可以列出两个bucket的内容,但我不能复制bucket-1的任何内容 % aws s3 ls s3://bucket-1/ | grep 0046 2016-03-09 15:39:50 4413909 0046f326-6e7d-4c16-80e4-491fa0b19dd7 % aws s3 cp s3://bucket-1/0046f326
% aws s3 ls s3://bucket-1/ | grep 0046
2016-03-09 15:39:50 4413909 0046f326-6e7d-4c16-80e4-491fa0b19dd7
% aws s3 cp s3://bucket-1/0046f326-6e7d-4c16-80e4-491fa0b19dd7 .
A client error (403) occurred when calling the HeadObject operation: Forbidden
在试图弄明白这一点的过程中,我切换回使用AWS帐户的访问密钥,而不是IAM用户(假设AWS帐户基本上拥有所有权限)
开始挖掘
假设原因在权限中,我运行
% aws s3api get-bucket-acl --bucket my-bucket-1
% aws s3api get-bucket-acl --bucket my-bucket-2
普通的
它将我的AWS帐户显示为这两个存储桶的所有者
不同的
bucket-2有一个权限:对我的AWS帐户进行完全控制
bucket-1列出了多个权限,其中完全控制是而不是。它列出
- 阅读
- 写
- READ_ACP
- 写入ACP
% aws s3api get-object-acl --bucket bucket-1 --key 0046f326-6e7d-4c16-80e4-491fa0b19dd7
A client error (AccessDenied) occurred when calling the GetObjectAcl operation: Access Denied
% aws s3api get-object --bucket bucket-1 --key 0046f326-6e7d-4c16-80e4-491fa0b19dd7 local.file
A client error (AccessDenied) occurred when calling the GetObject operation: Access Denied
% aws s3api head-object --bucket bucket-1 --key 0046f326-6e7d-4c16-80e4-491fa0b19dd7
A client error (403) occurred when calling the HeadObject operation: Forbidden
问题
在一个实例中,我发现可以使用put对象acl将acl设置为bucket owner完全控制。我试过了。但是,您必须使用文件所有者的凭据来执行此操作—如果文件以匿名方式发布,您如何执行此操作
- 我还能试什么
- S3上的对象(如bucket)是否有所有者
- 如果是,我可以在web控制台的哪里找到这些信息
- 不允许匿名上传到您的存储桶。如果您这样做了,并且上传程序没有正确设置权限,那么您唯一可以执行的操作就是删除该对象
% aws s3api get-object-acl --bucket bucket-1 --key 0046f326-6e7d-4c16-80e4-491fa0b19dd7
A client error (AccessDenied) occurred when calling the GetObjectAcl operation: Access Denied
% aws s3api get-object --bucket bucket-1 --key 0046f326-6e7d-4c16-80e4-491fa0b19dd7 local.file
A client error (AccessDenied) occurred when calling the GetObject operation: Access Denied
% aws s3api head-object --bucket bucket-1 --key 0046f326-6e7d-4c16-80e4-491fa0b19dd7
A client error (403) occurred when calling the HeadObject operation: Forbidden
可以设置bucket策略,以便拒绝匿名上传,除非上传者将ACL设置为bucket owner full control,但这仅对将来的上传有用
万一。。。是否有合法的匿名上传应用程序?非常可疑。查看桶策略应该会有所帮助。谢谢您的回答,我同意。我想不出“匿名上传的合法应用程序”。在我们当时的情况下,这只是最快的选择,而且一如既往——时机至关重要。