S3存储桶策略和S3 VPC端点之间有什么区别?

时间:2020-11-10 19:29:25

标签: amazon-web-services amazon-s3 amazon-cloudformation amazon-vpc

我很好奇要了解使用以下存储桶策略创建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"
}

它们在功能上是否等效?是被贬低还是最佳实践?引用后还不清楚答案是什么

谢谢

1 个答案:

答案 0 :(得分:1)

我认为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或其他端点访问存储桶。

但是,我将承认所有这些端点和配置都相当混乱!