2017-09-25 75 views
2

我想在AWS S3 ACL公共读写一些解释,从docsAWS S3 ACL公共读写:安全问题

所有者获得FULL_CONTROL。 AllUsers组获得READ和WRITE 访问权限。一般不建议在桶上放置此项。

[...]

所有用户组 - 由 http://acs.amazonaws.com/groups/global/AllUsers代表。访问权限为 此组允许任何人访问资源。请求可以是 签名(已认证)或未签名(匿名)。未签名的请求在请求中省略了 Authentication标头。

但这意味着每个aws帐户都可以读取/写入我的文件?或者只有我的IAM用户可以读/写我的文件?

+2

以上表明*任何*可以访问资源,如在整个AWS上的任何*认证用户。这可能是“通常不推荐”的原因。您可以随时通过创建这样一个存储桶并尝试以各种不同的用户身份访问它来自行测试它。 –

回答

1

看看这个文件:http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html

亚马逊S3组预定义

亚马逊S3具有一组预定义组。当向组授予帐户访问权限 时,您可以指定我们的一个URI而不是规范的用户 ID。我们提供以下预定义组:

经过身份验证的用户组 - 由 http://acs.amazonaws.com/groups/global/AuthenticatedUsers表示。此组 代表所有AWS账户。对该组的访问权限允许 任何AWS账户访问资源。但是,所有请求必须是 签名(已验证)。

所有用户组 - 代表 http://acs.amazonaws.com/groups/global/AllUsers。访问权限为 此组允许任何人访问资源。请求可以是 签名(已认证)或未签名(匿名)。未签名的请求在请求中省略了 Authentication标头。

日志传递组 - 由http://acs.amazonaws.com/groups/s3/LogDelivery表示。对存储区的WRITE 权限使该组能够将服务器访问日志 (请参阅服务器访问日志记录)写入存储区。

通过ACL,您可以与其他AWS账户共享您的S3存储桶。谁没有登录AWS账户,他们无法访问您的存储桶。

如果您希望AWS账户和非AWS账户均可访问您的S3存储桶,则必须定义S3存储桶策略。 例如:

{ 
    "Version": "2008-10-17", 
    "Statement": [ 
     { 
      "Sid": "AllowPublicRead", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::S3-Bucket-name/*" 
     } 
    ] 
} 
+0

这意味着每个拥有AWS账户的用户都可以删除/更新文件? – ar099968

+0

其他aws帐户可以删除/更新您的文件或不依赖于您的设置。您可以将其设置为读取权限或完全权限 –

+0

我对文件的设置是在没有“完全控制”的情况下读取/写入的。 – ar099968