我已经创建了一个存储桶来保存由s3-log-service创建的日志文件,并且我已经创建了权限,以便可以列出存储桶并且可以公开访问这些内容。我可以列出存储桶的内容,但是对于日志的Web访问被拒绝,并出现403错误。
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*"
},
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::mybucket"
}
]
}
当对象(日志文件)归其他人所有时,我收集这样的策略不起作用。
那么,我需要将哪些其他权限应用于存储桶内容以使其可以公开访问?
答案 0 :(得分:0)
您说存储桶策略不适用于不属于 AWS 账户的对象是正确的。您有 2 个选择:
public-read
:AWS_ACCESS_KEY_ID=XXX \
AWS_SECRET_ACCESS_KEY=XXX \
aws s3 cp \
s3://BUCKET/OBJECT_PATH \
s3://BUCKET/OBJECT_PATH \
--acl public-read
bucket-owner-full-control
。从那里,存储桶策略接管对象的权限。我发现执行任一选项的唯一方法(不会出现访问被拒绝错误)是使用 AWS 账户根用户的凭据。