

# 使用 Amazon CLI 的控制台凭证对登录进行故障排除
<a name="cli-configure-sign-in-troubleshoot"></a>

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

## 问题：运行“aws login”时防火墙阻止网络访问
<a name="cli-configure-sign-in-troubleshoot-firewall"></a>

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

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

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

```
$ aws login --remote
```

## 问题：我们无法完成您的请求
<a name="cli-configure-sign-in-troubleshoot-unable-to-complete"></a>

运行 `aws login` 时，您可能会成功打开新的浏览器以访问 Amazon，但新页面不支持您选择会话。相反，该页面显示您无法完成请求。出现这种情况的可能原因如下：
+ 如果您使用的是我们的新 Amazon 体验，则可能使用了错误的 Amazon 区域。使用 `aws configure list` 来查看与您的 Amazon CLI 命令关联的默认区域。如果您不知道需要使用哪个 Amazon 区域，请参阅[您项目的 Amazon 区域](https://docs.amazonaws.cn/accounts/latest/reference/project-regions.html)。
+ 如果您正在使用我们新的 Amazon 体验，且有人已与您共享了某个项目，您可能已失去对该项目的访问权限。请联系项目所有者以了解更多信息。
+ 您对特定 Amazon 区域的访问可能已被阻止。有关更多信息，请联系您的系统管理员。
+ 您对 Amazon 的访问可能已被阻止。有关更多信息，请联系您的系统管理员。

## 问题：使用“aws login”后出现 ExpiredToken 或 AccessDeniedException 错误
<a name="cli-configure-sign-in-troubleshoot-expired-token"></a>

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