连接到 Cloudformation 生成的 S3bucket 超时

Connection to Cloudformation generated S3bucket times out

我正在尝试解决我的 AWS Cloudformation 模板的问题。我拥有的模板包括一个带有私有子网的 VPC,以及一个允许连接到 S3 存储桶的 VPC 端点。 存储桶本身包括 3 个存储桶,并且我在同一区域中已经提到了几个预先存在的存储桶(在本例中,eu-west-1)。

我使用 aws-cli 登录私有子网中的 EC2 实例,然后使用 aws-cli 命令访问 S3(例如 sudo aws s3 ls bucketname

我的问题是我只能列出该区域中预先存在的存储桶的内容,或者我通过网站手动创建的新存储桶的内容。当我尝试列出 cloudformation 生成的存储桶时,它只是挂起并超时:

[ec2-user@ip-10-44-1-129 ~]$ sudo aws s3 ls testbucket
HTTPSConnectionPool(host='vltestbucketxxx.s3.amazonaws.com', port=443): Max retries exceeded with url: /?delimiter=%2F&prefix=&encoding-type=url (Caused by ConnectTimeoutError(<botocore.awsrequest.AWSHTTPSConnection object at 0x7f2cc0bcf110>, 'Connection to vltestbucketxxx.s3.amazonaws.com timed out. (connect timeout=60)'))

似乎与VPC端点无关(将配置设置为允许一切都没有效果)

{
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        }
    ]
}

访问控制似乎也没有影响它。

{
  "Resources": {
    "testbucket": {
      "Type": "AWS::S3::Bucket",
      "Properties": {
        "AccessControl": "PublicReadWrite",
        "BucketName": "testbucket"
      }
    }
  }
}

存储桶策略似乎也不是问题(我生成的存储桶没有附加任何策略,而且只有 cloudformation 生成的存储桶超时)。在网站上,一个连接的桶和一个超时的桶的配置看起来和我一样。

尝试访问其他区域的存储桶也会超时,但据我了解,cloudformation 在与 VPC 相同的区域生成存储桶,所以不应该这样(该网站还显示存储桶位于同一地区)。

有人知道问题出在哪里吗?

编辑:我可以从 VPC public 子网连接,所以这可能是端点问题?

使用 VPC 端点时,请确保您已将客户端配置为通过 ServiceName 属性(例如,com.amazonaws.eu-west-1.s3).

要使用 AWS CLI 执行此操作,请设置 AWS_DEFAULT_REGION environment variable or the --region command line option,例如 aws s3 ls testbucket --region eu-west-1。如果您没有明确设置区域,S3 客户端将默认使用全局端点 (s3.amazonaws.com) 进行请求,这与您的 VPC 端点不匹配。