我在某些ec2实例上使用以下命令,以便从s3存储桶中获取一些配置文件。 ec2具有一个具有s3完整权限的实例角色:
aws s3 cp s3://bucket-name/file ./ --region eu-west-1
在我提供的具有默认ami的某些实例上,这项工作按预期进行,但是在相同区域和AZ具有相同实例角色的一些现有实例中,我遇到以下错误:
Connect timeout on endpoint URL: "https://bucket-name.eu-west-1.amazonaws.com/?list-type=2&delimiter=2%F&prefix=&encoding-type=url"
failed to run commands: exit status 255
我的问题是,为什么S3Uris没有以s3://作为前缀,并返回带有URL字符串https://的错误?显然,此aws cli版本尝试通过https而不是由我在命令中提供的s3://端点到达s3。反正有覆盖吗?
答案 0 :(得分:1)
我的问题是为什么S3Uris没有以s3://作为前缀并返回 网址字符串https://的错误?
aws cli
在后台使用HTTPS
调用AWS服务,因此为什么在超时时看到https://bucket-name.eu-west-1...
而不是s3://
超时。
默认情况下,AWS CLI通过使用TCP端口443上的HTTPS将请求发送到AWS服务。要成功使用AWS CLI,您必须能够在TCP端口443上建立出站连接。
某些实例上的超时可能是因为它们位于没有NAT gateway的专用子网中。
如果ping google.com
没有响应,则可以简单地进行验证,则实例中的私有子网中没有NAT或没有出站允许的流量。