Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 如何公开s3日志服务拥有的下载文件?_Amazon S3 - Fatal编程技术网

Amazon s3 如何公开s3日志服务拥有的下载文件?

Amazon s3 如何公开s3日志服务拥有的下载文件?,amazon-s3,Amazon S3,我已经创建了一个bucket来保存由s3日志服务创建的日志文件,并且我已经设置了权限,以便可以列出bucket,并且可以公开访问其内容。我可以列出bucket的内容,但由于403错误,对日志的web访问被拒绝 { "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPublicRead", "Effect": "Allow", "Principal": { "

我已经创建了一个bucket来保存由s3日志服务创建的日志文件,并且我已经设置了权限,以便可以列出bucket,并且可以公开访问其内容。我可以列出bucket的内容,但由于403错误,对日志的web访问被拒绝

{
"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"
    }
  ]
}
我推测,当对象(日志文件)归其他人所有时,这种策略不起作用


那么,我还需要对bucket内容应用哪些其他权限才能使其公开访问呢?

您说bucket策略不适用于AWS帐户不拥有的对象是正确的。您有两种选择:

  • 您需要将对象复制到自身上,将ACL标志设置为
    public read
  • 将ACL标志设置为
    bucket owner full control
    。从此,bucket策略接管对象的权限

  • 我发现执行这两个选项的唯一方法(不出现拒绝访问错误)是使用AWS帐户根用户的凭据。

    您说的bucket策略不适用于AWS帐户不拥有的对象是正确的。您有两种选择:

  • 您需要将对象复制到自身上,将ACL标志设置为
    public read
  • 将ACL标志设置为
    bucket owner full control
    。从此,bucket策略接管对象的权限

  • 我发现做这两种选择的唯一方法(不出现拒绝访问错误)是使用AWS帐户root用户的凭据。

    在亚马逊论坛上,未回答。为什么要公开日志文件?看起来你实际上是在试图解决一个不同于你在这里描述的问题?在亚马逊论坛上,没有回答。你为什么要公开你的日志文件?看起来你实际上是在试图解决一个不同于你在这里描述的问题?
    AWS_ACCESS_KEY_ID=XXX \
    AWS_SECRET_ACCESS_KEY=XXX \
    aws s3 cp \
        s3://BUCKET/OBJECT_PATH \
        s3://BUCKET/OBJECT_PATH \
        --acl public-read