AccessControl属性-S3存储桶

时间:2019-07-18 20:09:47

标签: amazon-web-services amazon-s3 amazon-iam

在创建存储桶的过程中,我们设置了以下选项:

  PublicAccessBlockConfiguration:
    BlockPublicAcls: true
    BlockPublicPolicy: true
    IgnorePublicAcls: true
    RestrictPublicBuckets: true

使所有试图更改此选项的用户都不受限制:

enter image description here

我们还添加了以下选项:

  AccessControl: Private

可能的值为:Private, PublicRead, PublicReadWrite, AuthenticatedRead, LogDeliveryWrite, BucketOwnerRead, BucketOwnerFullControl, or AwsExecRead


这是一个单区域VPC:

enter image description here


1)PrivatePublicRead是什么意思?

2)EC2在VPC中创建(默认情况下)。是否在VPC外部创建存储桶?在公共领域...在哪里创建存储桶?

1 个答案:

答案 0 :(得分:1)

Private意味着只有所有者有权访问该资源(无论是存储桶还是对象),PublicRead意味着资源所有者仍然拥有完全控制权,而allUsersGroup则意味着每个人,无论是否是IAM用户还是没有对该资源的读取权限。 PrivatePublicRead都指定一组预定义的授予或所谓的canned ACLs

S3存储桶未在您的VPC中创建,它位于不属于VPC的AWS平面中。因此,默认情况下,当您从VPC内进行S3 API调用时,流量将通过Internet传输。如果您需要VPC和S3中的资源之间的流量通过专用网络,则需要将S3的VPC网关端点放入VPC并通过它路由S3流量。

这是一个最小的模板,其中包含新的VPC,一个子网,S3 VPC端点和该子网的路由表,以及到S3端点的S3流量路由。

AWSTemplateFormatVersion: 2010-09-09

Resources:
    MyVPC:
        Type: 'AWS::EC2::VPC'
        Properties:
            CidrBlock: 10.0.0.0/16
            EnableDnsHostnames: true
            EnableDnsSupport: true
    MySubnet:
        Type: 'AWS::EC2::Subnet'
        Properties:
            VpcId: !Ref MyVPC
            CidrBlock: 10.0.0.0/24
    MyRouteTable:
        Type: 'AWS::EC2::RouteTable'
        Properties:
            VpcId: !Ref MyVPC
    SubnetRouteTableAssociation:
        Type: AWS::EC2::SubnetRouteTableAssociation
        Properties:
            RouteTableId: !Ref MyRouteTable
            SubnetId: !Ref MySubnet
    S3Endpoint:
        Type: 'AWS::EC2::VPCEndpoint'
        Properties:
            VpcId: !Ref MyVPC
            RouteTableIds:
                - !Ref MyRouteTable
            ServiceName: !Sub com.amazonaws.${AWS::Region}.s3