

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

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


****  

| 身份验证类型 | 用途 | 说明 | 
| --- | --- | --- | 
| Amazon 管理控制台凭证 | **（推荐）**使用您的控制台凭证登录 Amazon CLI，来使用短期凭证。如果使用根用户、IAM 用户或 IAM 联合身份验证来访问 Amazon 账户，则建议您采用这种方式 | [使用控制台凭证登录以进行 Amazon 本地开发](cli-configure-sign-in.md) | 
| IAM Identity Center 员工用户短期凭证 | 为 IAM Identity Center 员工用户提供短期凭证。最佳安全实践是将 Amazon Organizations 与 IAM Identity Center 结合使用。它能够将短期凭证与用户目录（例如内置 IAM Identity Center 目录或 Active Directory）结合在一起。 | [使用 Amazon CLI 配置 IAM Identity Center 身份验证](cli-configure-sso.md) | 
| IAM 用户短期凭证 | 使用 IAM 用户短期凭证，它比长期凭证更安全。如果您的凭证遭到泄露，则在凭证过期之前的使用时间有限。 | [在 Amazon CLI 中使用短期凭证进行身份验证](cli-authentication-short-term.md) | 
| Amazon EC2 实例上的 IAM 或 IAM Identity Center 用户。 | 通过分配给 Amazon EC2 实例的角色，使用 Amazon EC2 实例元数据查询临时凭证。 | [在 Amazon CLI 中将 Amazon EC2 实例元数据用作凭证](cli-configure-metadata.md) | 
| 代入角色以获得权限 | 将另一个凭证方法配对并代入一个角色以临时访问您的用户可能无法访问的 Amazon Web Services 服务。 | [在 Amazon CLI 中使用 IAM 角色](cli-configure-role.md) | 
| IAM 用户长期凭证 | （不推荐）使用不会过期的长期凭证。 | [在 Amazon CLI 中使用 IAM 用户凭证进行身份验证](cli-authentication-user.md) | 
| IAM 或 IAM Identity Center 员工用户的外部存储  | （不推荐）将另一个凭证方法配对，但存储位于 Amazon CLI 外部的凭证值。此方法的安全性取决于存储凭证的外部位置。 | [在 Amazon CLI 中使用外部进程获取凭证](cli-configure-sourcing-external.md) | 

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

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

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

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

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

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

1. **[Amazon IAM Identity Center](cli-configure-files.md)** – 在您运行 `aws configure sso` 命令时，存储在 `config` 文件中的 IAM Identity Center 配置设置将更新。运行 `aws sso login` 命令时会对凭证进行身份验证。`config` 文件位于 `~/.aws/config`（在 Linux 或 macOS 上）或 `C:\Users\{{USERNAME}}\.aws\config`（在 Windows 上）。

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

1. **[Amazon EC2 实例配置文件凭证](https://docs.amazonaws.cn/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.amazonaws.cn/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)和《IAM 用户指南》**中的[使用实例配置文件](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。

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