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
Amazon web services 如何在Amazon S3 Bucket上设置公共只读访问?_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services 如何在Amazon S3 Bucket上设置公共只读访问?

Amazon web services 如何在Amazon S3 Bucket上设置公共只读访问?,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我在StackOverflow上发现了两个类似的问题,但它们都很老了,从那以后S3的情况似乎发生了变化。他们添加了以下四种设置,这四种设置非常混乱: 如果我关闭这些功能,是否意味着它使我的存储桶可以被公共写入? 此外,我还添加了以下策略: { "Version": "2008-10-17", "Statement": [ { "Sid": "PublicReadForGetBucketObjects", "Effect": "Allow",

我在StackOverflow上发现了两个类似的问题,但它们都很老了,从那以后S3的情况似乎发生了变化。他们添加了以下四种设置,这四种设置非常混乱: 如果我关闭这些功能,是否意味着它使我的存储桶可以被公共写入? 此外,我还添加了以下策略:

{
"Version": "2008-10-17",
"Statement": [
    {
        "Sid": "PublicReadForGetBucketObjects",
        "Effect": "Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::REDACTED/*"
    },
    {
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::REDACTED:user/REDACTED"
        },
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::REDACTED",
            "arn:aws:s3:::REDACTED/*"
        ]
    }
]
这个CORS配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>REDACTED</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

编辑
得到
邮递
放
*
我试图授予公共读取权限,并限制我在IAM中创建的用户的完全访问权限。
如果有人能确认我的设置是正确的,或者如果设置不正确,我将不胜感激。

要使对象可以公开访问,请使用如下策略:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"PublicRead",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::examplebucket/*"]
    }
  ]
}
请注意,使用
“主体”:“*”
,这与使用
“主体”:{“AWS”:“*”}
的策略不同

这允许访问对象(
GetObject
),但不能列出bucket的内容。这需要对bucket本身拥有
ListBucket
权限(没有
/*


您还需要关闭与Bucket策略相关的两个Block Public Access设置。

您的策略似乎是错误的。从中,设置策略并关闭块公共访问(已完成)。否,禁用块公共访问不会使您的存储桶公开可写(或可读)。禁用它只会让您将对象公开。谢谢,在您的帮助下,我找到了正确的设置!是的,我也有类似的问题。。这些设置不必要地混淆了+1,以解释列出bucket内容的权限以及哪些块设置需要关闭。这正是我需要知道的。