

**本文档仅适用于 AWS CLI 版本 1。**

我们已宣布即将终止对 AWS CLI 版本 1 的支持。建议您迁移到 AWS CLI 版本 2。有关日期、其它详细信息以及如何迁移的信息，请参阅[公告](https://aws.amazon.com/blogs/developer/cli-v1-maintenance-mode-announcement/)。有关 AWS CLI 版本 2 的相关文档，请参阅[版本 2 用户指南](https://docs.aws.amazon.com/cli/latest/userguide/)。

# AWS CLI 身份验证和访问凭证
<a name="cli-chap-authentication"></a>

在使用 AWS 服务进行开发时，必须确定 AWS CLI 如何使用 AWS 进行身份验证。要为 AWS CLI 配置用于编程访问的凭证，请选择下列选项之一。这些选项按推荐顺序排列。


****  

| 身份验证类型 | 用途 | 说明 | 
| --- | --- | --- | 
| IAM 用户短期凭证 | 使用 IAM 用户短期凭证，它比长期凭证更安全。如果您的凭证遭到泄露，则在凭证过期之前的使用时间有限。 | [在 AWS CLI 中使用短期凭证进行身份验证](cli-authentication-short-term.md) | 
| Amazon EC2 实例上的 IAM 。 | 通过分配给 Amazon EC2 实例的角色，使用 Amazon EC2 实例元数据查询临时凭证。 | [在 AWS CLI 中将 Amazon EC2 实例元数据用作凭证](cli-configure-metadata.md) | 
| 代入角色以获得权限 | 将另一个凭证方法配对并代入一个角色以临时访问您的用户可能无法访问的 AWS 服务。 | [在 AWS CLI 中使用 IAM 角色](cli-configure-role.md) | 
| IAM 用户长期凭证 | （不推荐）使用不会过期的长期凭证。 | [在 AWS CLI 中使用 IAM 用户凭证进行身份验证](cli-authentication-user.md) | 
| IAM 外部存储  | （不推荐）将另一个凭证方法配对，但存储位于 AWS CLI 外部的凭证值。此方法的安全性取决于存储凭证的外部位置。 | [在 AWS CLI 中使用外部进程获取凭证](cli-configure-sourcing-external.md) | 

## 配置和凭证优先顺序
<a name="cli-chap-authentication-precedence"></a>

凭证和配置设置位于不同位置（例如，系统或用户环境变量、本地 AWS 配置文件）或在命令行上显式声明为参数。某些位置优先于其他位置。AWS CLI 凭证和配置设置的优先顺序如下：

1. **[命令行选项](cli-configure-options.md)** – 覆盖任何其他位置的设置，例如 `--region`、`--output` 和 `--profile` 参数。

1. **[环境变量](cli-configure-envvars.md)** – 您可以在系统的环境变量中存储值。

1. **[代入角色](cli-configure-role.md)**：通过配置或 [https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role.html) 命令代入 IAM 角色的权限。

1. **[使用 Web 身份代入角色](cli-configure-role.md)**：通过配置或 [https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role-with-web-identity.html) 命令使用 Web 身份代入 IAM 角色的权限。

1. **[凭证文件](cli-configure-files.md)** – 在运行命令 `aws configure` 时，将更新 `credentials` 和 `config` 文件。`credentials` 文件位于 `~/.aws/credentials`（在 Linux 或 macOS 上）或 `C:\Users\{{USERNAME}}\.aws\credentials`（在 Windows 上）。

1. **[自定义流程](cli-configure-sourcing-external.md)** – 从外部来源获取您的凭证。

1. **[配置文件](cli-configure-files.md)** – 在运行命令 `aws configure` 时，将更新 `credentials` 和 `config` 文件。`config` 文件位于 `~/.aws/config`（在 Linux 或 macOS 上）或 `C:\Users\{{USERNAME}}\.aws\config`（在 Windows 上）。

1. **[容器凭证](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)** – 您可以将 IAM 角色与每个 Amazon Elastic Container Service (Amazon ECS) 作业定义关联。之后，该任务的容器就可以使用该角色的临时凭证。有关更多信息，请参阅 *Amazon Elastic Container Service 开发人员指南*中的[任务的 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)。

1. **[Amazon EC2 实例配置文件凭证](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)** – 您可以将 IAM 角色与每个 Amazon Elastic Compute Cloud (Amazon EC2) 实例关联。之后，在该实例上运行的代码就可以使用该角色的临时凭证。凭证通过 Amazon EC2 元数据服务提供。有关更多信息，请参阅《Amazon EC2 用户指南》**中的 [Amazon EC2 的 IAM 角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)和《IAM 用户指南》**中的[使用实例配置文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。

## 此部分中的其他主题
<a name="cli-chap-authentication-topics"></a>
+ [在 AWS CLI 中使用短期凭证进行身份验证](cli-authentication-short-term.md)
+ [在 AWS CLI 中使用 IAM 角色](cli-configure-role.md)
+ [在 AWS CLI 中使用 IAM 用户凭证进行身份验证](cli-authentication-user.md)
+ [在 AWS CLI 中将 Amazon EC2 实例元数据用作凭证](cli-configure-metadata.md)
+ [在 AWS CLI 中使用外部进程获取凭证](cli-configure-sourcing-external.md)