问题描述
我很好奇要了解使用以下存储桶策略创建S3存储桶的功能区别是什么
{
"Version": "2012-10-17","Statement": [
{
"Sid": "Access-to-specific-VPC-only","Principal": "*","Action": "s3:*","Effect": "Deny","Resource": ["arn:aws:s3:::example-bucket","arn:aws:s3:::example-bucket/*"],"Condition": {
"StringNotEquals": {
"aws:sourceVpc": "vpc-111bbb22"
}
}
}
]
}
与创建VPC端点类似,
{
"Name": "example-vpc-ap","Bucket": "example-bucket","NetworkOrigin": "VPC","VpcConfiguration": {
"VpcId": "vpc-111bbb22"
},"CreationDate": "2019-11-27T00:00:00Z"
}
它们在功能上是否等效?是被贬低还是最佳实践?引用后还不清楚答案是什么
- https://docs.aws.amazon.com/AmazonS3/latest/dev/creating-access-points.html#access-points-vpc
- VPC access policy for S3 buckets
- S3 VPC end point Bucket policy
谢谢
解决方法
我认为aws:sourceVpc
只能与VPC端点一起使用。
来自Example Bucket Policies for VPC Endpoints for Amazon S3 - Amazon Simple Storage Service:
您可以使用
aws:SourceVpc
条件创建一个存储桶策略,以限制对特定VPC的访问。如果您在同一VPC中配置了多个VPC终端节点,并且想要管理所有终端节点对Amazon S3存储桶的访问,这将很有用。
您的问题中显示的VPC端点定义只是在说端点已连接到特定的VPC。它不会不将存储桶访问限制为仅对该端点的访问。用户仍然可以通过Internet或其他端点访问存储桶。
但是,我将承认所有这些端点和配置都相当混乱!