连接到Cloudformation生成的S3bucket超时

时间:2017-03-10 09:50:39

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

我试图用我的AWS Cloudformation模板解决问题。我的模板包括一个带有私有子网的VPC,以及一个允许连接到S3存储桶的VPC端点。 水桶本身包含3个水桶,我有几个已经在同一地区说过的预先存在的水桶(在这种情况下,eu-west-1)。

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

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

[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": "*"
        }
    ]
}

accesscontrol似乎也不会影响它。

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

存储分区策略似乎也不是问题(我已经生成了没有附加策略的存储桶,而且只有生成的云数据生成了超时)。在网站上,连接的桶和超时的桶的配置看起来与我相同。

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

有没有人知道问题可能是什么?

编辑:我可以从VPC公共子网连接,所以可能它毕竟是一个端点问题?

1 个答案:

答案 0 :(得分:0)

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

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