View a markdown version of this page

使用 Amazon CLI 的控制台凭证对登录进行故障排除 - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

使用 Amazon CLI 的控制台凭证对登录进行故障排除

以下内容为您在使用 Amazon CLI 的控制台凭证进行登录来实施 Amazon 本地开发时可能遇到的错误和问题提供故障排除建议。这不包括您在使用 Amazon CLI 时可能遇到的问题。有关更多信息,请参阅 排查 Amazon CLI 错误。

问题:运行“aws login”时防火墙阻止网络访问

运行 aws login 时,您可能会遇到防火墙软件弹出的窗口或消息,阻止 Amazon CLI 访问您的网络。

可能的原因:您的防火墙或安全软件阻止了 Amazon CLI 打开用于处理 OAuth 回调的端口。

为避免此问题,请改用 --remote 选项。这将提示您复制并粘贴授权码,而不是使用 OAuth 回调。

$ aws login --remote

问题:我们无法完成您的请求

运行 aws login 时,您可能会成功打开新的浏览器以访问 Amazon,但新页面不支持您选择会话。相反,该页面显示您无法完成请求。出现这种情况的可能原因如下:

  • 如果您使用的是我们的新 Amazon 体验,则可能使用了错误的 Amazon 区域。使用 aws configure list 来查看与您的 Amazon CLI 命令关联的默认区域。如果您不知道需要使用哪个 Amazon 区域,请参阅您项目的 Amazon 区域。

  • 如果您正在使用我们新的 Amazon 体验,且有人已与您共享了某个项目,您可能已失去对该项目的访问权限。请联系项目所有者以了解更多信息。

  • 您对特定 Amazon 区域的访问可能已被阻止。有关更多信息,请联系您的系统管理员。

  • 您对 Amazon 的访问可能已被阻止。有关更多信息,请联系您的系统管理员。

问题:使用“aws login”后出现 ExpiredToken 或 AccessDeniedException 错误

在为给定配置文件运行 aws login 后执行 Amazon CLI 命令时,您可能会遇到凭证过期或无效的错误。

$ aws s3 ls An error occurred (ExpiredToken) when calling the ListBuckets operation: The provided token has expired.

可能的原因:您在该配置文件中混合使用了现有凭证和新的登录凭证。

运行 aws configure list 或 aws configure list --profile <profile-name>,以输出 CLI 为默认配置文件或给定配置文件解析凭证的位置。

如果 TYPE 列的值不是 login,这意味着目标配置文件中仍然设置了其他类型的凭证。

在此示例中,凭证是从主目录中的共享凭证文件中解析的,该文件优先于登录凭证。

$ aws configure list NAME : VALUE : TYPE : LOCATION profile : <not set> : None : None access_key : ****************MPLE : shared-credentials-file : secret_key : ****************EKEY : shared-credentials-file : region : us-east-1 : config-file : ~/.aws/config

要解决此问题,请从配置和凭证文件中手动删除目标配置文件的所有现有凭证。执行此操作后,再次运行 aws configure list 时,您应该会看到登录凭证。

$ aws configure list NAME : VALUE : TYPE : LOCATION profile : <not set> : None : None access_key : ****************MPLE : login : secret_key : ****************EKEY : login : region : us-east-1 : config-file : ~/.aws/config

此外,使用 --debug 选项将显示 CLI 解析凭证的位置。