AWS S3 CLI-无法连接到端点URL


118
$ aws s3 ls

Could not connect to the endpoint URL: "https://s3.us-east-1a.amazonaws.com/"

可能是什么问题呢?


尝试在上创建cloudsearch域时发生了这种情况us-east-2,我必须使用us-east-1
杰森·古玛

Answers:


259

您的默认配置文件中默认区域可能有问题。

在检查文件~/.aws/config,您有类似

[default]
region=us-east-1a
...

将区域固定到region=us-east-1,然后该命令将正常工作


3
我在〜/ .aws / config中有一个类似的错误条目,该条目是由“ aws configure”命令创建的。默认情况下,它建议我接受我的区域名称“孟买”。这就是问题所在。将其替换为ap-south-1后,命令(aws s3 ls)开始起作用。谢谢。
阿努拉格

1
非常感谢你。现在我的头上还剩下很少的头发,现在再安全一会儿……
copper.hat

1
谢谢。我不知道你怎么知道的。
user890332 '19

2
我有一个类似的错误,发现也可以通过将区域指定为命令行选项来解决aws s3 ls --region us-east-1
Kurt Peek

3
我希望他们能够将财务捐款发送给这样的答案。
RayLoveless

8

首先,您使用“ aws configure”,然后输入访问密钥,秘密密钥以及区域。您输入的区域对于此问题很重要。尝试输入类似“ s3.us-east-1”的内容,而不是“ s3.us-east-1a”。它将解决问题。


6

某些AWS服务仅在与您的实际区域不匹配的特定区域中可用。如果是这种情况,您可以通过将区域添加到实际的cli命令中来覆盖标准设置。

对于不想在配置文件中更改其默认区域的人来说,这可能是一个方便的解决方案。如果未设置您的常规配置文件:请检查以上建议。

在此示例中,该地区被迫进入eu-west-1(例如爱尔兰):

aws s3 ls --region=eu-west-1

经过测试并与AWS Workmail一起使用以删除用户:

aws workmail delete-user --region=eu-west-1 --organization-id [org-id] --user-id [user-id]

我是从这个主题中衍生出这个想法的,它对我来说很完美-所以我想分享一下。希望能帮助到你!


5

如果以上给出的解决方案均无效,请检查您的权限和防火墙设置。以我为例,添加代理环境变量可以完成这项工作。

对于Linux或Mac

$ export HTTP_PROXY=http://<YOUR PROXY IP>:<PORT>

$ export HTTPS_PROXY=http://<YOUR PROXY IP>:<PORT>

对于Windows

set HTTP_PROXY=http://<YOUR PROXY IP>:<PORT>

set HTTPS_PROXY=http://<YOUR PROXY IP>:<PORT> Windows CLI

在此处输入图片说明


5

您应该在CLI脚本中指定区域,而不要依赖使用aws configure指定的默认区域(如当前最流行的答案所言)。提到了另一个答案,但是如果您通过AWS Tools for Powershell使用CLI,则语法是错误的。

本示例使用PowerShell语法将区域强制为us-west-2(北加州):

aws s3 ls --region us-west-2

2

配置aws时,默认区域可能出了问题。在您的情况下,URL会显示“ https://s3.us-east-1a.amazonaws.com/

在命令提示符下,

aws configure,输入密钥,现在将您的区域从us-east-1a固定到us-east-1

请根据您使用的CLI检查语法。这会有所帮助。


1

假设您的个人资料~/aws/config正在使用该区域(而不是按照您的原始问题使用AZ);另一个原因是您的客户无法连接s3.us-east-1.amazonaws.com。就我而言,由于网络配置错误,我无法解析该DNS名称。解决DNS问题解决了我的问题。


0

为了解决这个问题,我做了几件事:

  1. 更新了我的CLI,并给出了此错误(先前的错误是“ aws connection aborted error 10013”)
  2. 尝试使用nslookup AWS S3 Endpoing:nslookup s3.us-east-2.amazonaws.com

    DNS请求超时。超时为2秒。服务器:未知地址:192.168.10.1

-> 嗯很奇怪

  1. 进入Windows网络故障排除并选择测试对特定页面的访问。它通知Windows防火墙阻止了该连接。修正了这个

  2. 通过firewal修复请求后,收到新错误:

    调用ListBuckets操作时发生错误(RequestTimeTooSkewed):请求时间与当前时间之间的差太大。

  3. 将我的日期和时间更新为自动->固定


0

您应该在CLI上执行以下操作:1. aws configure'2
.输入访问密钥3.输入秘密密钥4.然后是区域,即eu-west-1(将a或b留在1之后)


0

每个人都有不同的默认值,有趣的是它会随着时间的流逝而改变。举例来说,我首先是在全球范围内,然后在15分钟后显示俄亥俄州(是us-east-2)。

最好的方法是在工作期间进行检查-在AWS工作区的控制台中,将其设置在右上角,靠近顶部栏上您的姓名, 检查您的区域名称,然后单击向下箭头以查看您的区域。

在AWS CLI中,输入aws configureaws2 configure,然后提供您的访问权限和密钥ID,然后在默认区域内输入您的区域,然后按Enter。

您一定可以访问特定区域集,并且可以使用。


0

我的问题的解决方案是运行:

    sudo aws configure

输入您的凭据,然后运行:

    sudo aws s3 ls

另一种解决方案是确保.aws / config文件中的区域与端点相同

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.