我在http://tstststs.s3-us-west-2.amazonaws.com/有一个空桶,它具有为公共访问启用的ListObjects权限,但在执行aws s3 ls s3://tstststs
时,我收到以下消息:An error occurred (AccessDenied) when calling the ListObjects operation: Access Denied
任何人都可以帮我解决这个问题吗?由于我将其设置为公共访问权限,因此无法成为凭据错误,可以吗?
答案 0 :(得分:0)
您需要将S3存储桶策略设置为这样的。注意:这将允许任何人阅读" yourbucketname"中的任何对象。如果您需要更具体的内容,亚马逊已经发布了大量示例:
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "PublicReadOnly",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::yourbucketname/*"
}]
}
答案 1 :(得分:-1)
aws s3 ls
命令实际上触发的不仅仅是ListObjects命令。 (例如,它可能会获取存储区域,这涉及更多权限。)
如果您希望它纯粹调用ListOjects,请使用aws s3api list-objects
。