AWS S3 CLI - Could not connect to the endpoint URL

$ aws s3 ls


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

What could be the problem?

207981 次浏览

您可能在默认区域的默认配置文件中出现了错误。

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

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

将该区域修复为 region=us-east-1,然后命令将正常工作

首先使用 aws configure 然后输入访问密钥和密钥, 和区域。你输入的区域对这个问题很重要。 试着输入“ s3.us-east-1”,而不是“ s3.us-east-1a”。 这样问题就解决了。

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

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

在这个例子中,该地区被迫使用 eu-west-1(例如爱尔兰) :

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

测试并与 awsworkmail 一起使用以删除用户:

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

我从这个帖子中得到了这个想法,它对我非常有用——所以我想分享它。希望能有帮助!

如果上面给出的解决方案都不能正常工作,还要检查您的权限和防火墙设置。在我的例子中,添加代理环境变量完成了这项工作。

用于 Linux 或者 Mac

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

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

适用于视窗

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

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

enter image description here

您应该在 CLI 脚本中指定区域,而不是依赖使用 awsconfigure 指定的默认区域(作为当前最流行的应答断言)。另一个答案暗示了这一点,但是如果通过 AWS Tools for Powershell 使用 CLI,那么语法是错误的。

这个示例强制执行 region to us-west-2(Northern California) ,PowerShell 语法:

aws s3 ls --region us-west-2

在配置 aws 时,默认区域可能有问题。 在您的例子中,URL 显示“ https://s3.us-east-1a.amazonaws.com/

在您的命令提示符中,

Aws 配置, 输入你的钥匙, 现在修正你的区域从我们-东1a 到 Us-east-1

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

假设您在 ~/aws/config中的配置文件正在使用该区域(而不是按照您最初的问题使用 AZ) ; 另一个原因是您的客户端无法连接到 s3.us-east-1.amazonaws.com。在我的情况下,由于网络配置中的错误,我无法解析该 DNS 名称。修复 DNS 问题解决了我的问题。

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

  1. 更新了我的 CLI 并给出了这个错误(之前的错误是“ aws connection aborted error 10013”)
  2. 尝试 nslookup aws3结束: nslookup s3.us-east-2.amazonaws.com

    DNS 请求超时。 暂停时间是2秒。 服务器: 未知 地址: 192.168.10.1

- > 嗯,很奇怪

  1. 转到 Windows 网络故障排除并选择测试访问特定页面。 它通知 Windows 防火墙阻塞了连接,修正了这个问题

  2. 通过防火墙修复请求后,收到一个新错误:

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

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

你应该在 CLI 上做以下事情: 1. aws configure’
2. 输入访问密钥 3. 输入密钥 4. 然后是区域,即 eu-west-1(在1后面留下 a 或 b)

每个人都有不同的默认值,有趣的是它会随着时间的推移而改变。作为一个例子,首先我是在全球,然后15分钟后,它显示俄亥俄州(这是 us-east-2)。

最好的方法是在工作期间检查它——在 AWS 工作区的控制台中,只需将它设置在顶部栏上靠近您名字的右上方的 < strong > 上 检查您的地区名称,并点击向下箭头查看您的地区。

在 AWS CLI 中键入 aws configureaws2 configure,给出您的访问权限和机密 ID,然后在默认区域中写入您的区域并按 Enter。

你一定会得到访问特定的区域设置,它将工作。

解决我问题的办法是逃跑:

    sudo aws configure

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

    sudo aws s3 ls

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

在 Windows 上再次运行 aws configure 命令并重置区域(不带字母) ,例如,如果您的区域是 us-east-1a,则需要将其更改为 us-east-1以使其工作。

enter image description here

  1. 检查主目录下的.aws 目录。 视窗: C: Users < home-name > . aws C: 用户 < home-name > . aws Linux: ~/. aws

  2. 在此目录下,您将找到配置文件和凭据文件。它将包含您以前可能运行过的 aws 配置信息。如果没有,那么

  3. 运行 aws configure 输入访问密钥- 密钥-输入密钥 地区-(ap- 东南 -1或 us- 东 -1或任何其他地区) Format-(json 或者将其保留为空,它将拾取默认值,您可以简单地按回车键)

  4. 在步骤2中,您应该看到配置文件,打开它,它应该有一个区域。请确保指定了区域。

  5. 现在可以运行以下命令来列出存储桶 aws s3 ls 应该没问题。

如果它在默认区域中无法工作,请尝试提供一个靠近您的区域。这对我很有效:

   PS C:\Users\shrig> aws  configure
AWS Access Key ID [****************C]:**strong text**
AWS Secret Access Key [****************WD]:
Default region name [us-east1]: ap-south-1
Default output format [text]:

这招对我很管用。

  1. 使用调试选项,以获得明确的错误的想法

Awsec2描述-实例—— instance-ids (myid)——区域 ap-south-1——调试

我有个问题。

EndpointConnectionError: 无法连接到端点 URL: “ https://ec2.ap-south-1b.amazonaws.com/" ;

  1. 我试着平,但它不工作

Ec2.ap-south-1b.amazonaws.com : Ec2.ap-south-1b.amazonaws.com : 姓名或服务不详

  1. 在使用 awsconfigure 时,我检查了 Area 的无效值

但配置得当

[默认] region = ap-south-1

  1. 然后,我转到 * * IAM-> Users-> (yourusername)-> Add 许可

并添加了“管理员访问”策略 * * 。

  1. 在那之后,我的一切都很顺利。

MainThread-urllib3.Connectionpool-DEBUG-启动新的 HTTPS 连接(1) : ec2.ap-south-1.amazonaws.com : 443主线程- Connectionpool-DEBUG- Https://ec2.ap-south-1.amazonaws.com:443 “ POST/HTTP/1.1”2007176

奇怪的是,对我来说,重新启动我的笔记本电脑有所帮助。我最近一直在使用 VPN,我认为它搞乱了一些网络设置,导致这个错误。

检查您的环境设置:

set |& grep REGION

我的 AWS _ REGION 和 AWS _ DEFAULT _ REGION 环境变量中有一个输入错误,因此它试图访问一个不存在的区域。