首页 > 解决方案 > 我不小心拒绝了除私有 vpc cidr 之外的所有人访问我的 Amazon S3 存储桶。如何重新获得访问权限?

问题描述

我使用 s3 存储桶策略如下:

{
  "Version": "2012-10-17",
  "Id": "OnlyAllowMyVPC",
  "Statement": [
    {
      "Sid": "denyOthers",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws-cn:s3:::devbucket",
        "arn:aws-cn:s3::: devbucket/*"
      ],
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": "10.192.0.0/19"
        }
      }
    }
  ]
}

10.192.0.0/19是我的VPC的CIDR,我的VPC不能上网。

然后,即使从这个 VPC 中的 ec2,我仍然无法访问“devbucket”存储桶,但我可以访问其他存储桶。我不知道为什么。

谁能帮帮我,非常感谢!

一种方法是使用root用户删除bucket权限,但是我很难获得root用户的访问权限。

更新:

我可以访问其他s3的原因是因为我添加了s3 VPC Endpoint。当我删除端点时,我无法访问任何存储桶。

标签: amazon-web-servicesamazon-s3amazon-vpc

解决方案


尝试使用 S3 的 VPC 端点。基本上,它将允许来自私有子网的 EC2 实例以更安全的方式连接 S3。


推荐阅读