View a markdown version of this page

使用 AWS CLI 的控制台凭证对登录进行故障排除 - AWS Command Line Interface

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

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

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

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

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

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

$ aws login --remote

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

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

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

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

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

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

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

在为给定配置文件运行 aws login 后执行 AWS 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 解析凭证的位置。