在创建存储桶的过程中,我们设置了以下选项:
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
使所有试图更改此选项的用户都不受限制:
我们还添加了以下选项:
AccessControl: Private
可能的值为:Private, PublicRead, PublicReadWrite, AuthenticatedRead, LogDeliveryWrite, BucketOwnerRead, BucketOwnerFullControl, or AwsExecRead
这是一个单区域VPC:
1)Private
和PublicRead
是什么意思?
2)EC2在VPC中创建(默认情况下)。是否在VPC外部创建存储桶?在公共领域...在哪里创建存储桶?
答案 0 :(得分:1)
Private
意味着只有所有者有权访问该资源(无论是存储桶还是对象),PublicRead
意味着资源所有者仍然拥有完全控制权,而allUsersGroup
则意味着每个人,无论是否是IAM用户还是没有对该资源的读取权限。 Private
和PublicRead
都指定一组预定义的授予或所谓的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