如何公开 s3-log-service 拥有的下载文件



>我创建了一个存储桶来保存由 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"
    }
  ]
}

我收集这样的策略在对象(日志文件(归其他人所有时不起作用。

那么,我需要对存储桶内容应用哪些其他权限才能使其可公开访问?

您说存储桶策略不适用于不属于 AWS 账户的对象是正确的。您有 2 个选项:

  1. 您需要将对象复制到自身上,将 ACL 标志设置为 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
  1. 将 ACL 标志设置为 bucket-owner-full-control 。从那里,存储桶策略接管对象的权限。

我发现执行任一选项(不会收到拒绝访问错误(的唯一方法是使用 AWS 账户根用户的凭证。

最新更新