使用 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 解析凭证的位置。