AWS CLI 身份验证和访问凭证
在使用 AWS 服务进行开发时,必须确定 AWS CLI 如何使用 AWS 进行身份验证。要为 AWS CLI 配置用于编程访问的凭证,请选择下列选项之一。这些选项按推荐顺序排列。
身份验证类型 | 用途 | 说明 |
---|---|---|
IAM Identity Center 员工用户短期凭证 |
(推荐)为 IAM Identity Center 员工用户提供短期凭证。 最佳安全实践是将 AWS Organizations 与 IAM Identity Center 结合使用。它能够将短期凭证与用户目录(例如内置 IAM Identity Center 目录或 Active Directory)结合在一起。 |
使用 AWS CLI 配置 IAM Identity Center 身份验证 |
IAM 用户短期凭证 | 使用 IAM 用户短期凭证,它比长期凭证更安全。如果您的凭证遭到泄露,则在凭证过期之前的使用时间有限。 | 在 AWS CLI 中使用短期凭证进行身份验证 |
Amazon EC2 实例上的 IAM 或 IAM Identity Center 用户。 | 通过分配给 Amazon EC2 实例的角色,使用 Amazon EC2 实例元数据查询临时凭证。 | 在 AWS CLI 中将 Amazon EC2 实例元数据用作凭证 |
代入角色以获得权限 | 将另一个凭证方法配对并代入一个角色以临时访问您的用户可能无法访问的 AWS 服务。 | 在 AWS CLI 中使用 IAM 角色 |
IAM 用户长期凭证 | (不推荐)使用不会过期的长期凭证。 | 在 AWS CLI 中使用 IAM 用户凭证进行身份验证 |
IAM 或 IAM Identity Center 员工用户的外部存储 | (不推荐)将另一个凭证方法配对,但存储位于 AWS CLI 外部的凭证值。此方法的安全性取决于存储凭证的外部位置。 | 在 AWS CLI 中使用外部进程获取凭证 |
配置和凭证优先顺序
凭证和配置设置位于不同位置(例如,系统或用户环境变量、本地 AWS 配置文件)或在命令行上显式声明为参数。某些身份验证优先于其他身份验证。AWS CLI 身份验证设置的优先顺序如下:
-
命令行选项 – 覆盖任何其他位置的设置,例如
--region
、--output
和--profile
参数。 -
环境变量 – 您可以在系统的环境变量中存储值。
-
代入角色 – 通过配置或
assume-role
命令代入 IAM 角色的权限。 -
使用 Web 身份代入角色 – 通过配置或
assume-role-with-web-identity
命令使用 Web 身份代入 IAM 角色的权限。 -
AWS IAM Identity Center – 在您运行
aws configure sso
命令时,存储在config
文件中的 IAM Identity Center 配置设置将更新。运行aws sso login
命令时会对凭证进行身份验证。config
文件位于~/.aws/config
(在 Linux 或 macOS 上)或C:\Users\
(在 Windows 上)。USERNAME
\.aws\config -
凭证文件 – 在运行命令
aws configure
时,将更新credentials
和config
文件。credentials
文件位于~/.aws/credentials
(在 Linux 或 macOS 上)或C:\Users\
(在 Windows 上)。USERNAME
\.aws\credentials -
自定义流程 – 从外部来源获取您的凭证。
-
配置文件 – 在运行命令
aws configure
时,将更新credentials
和config
文件。config
文件位于~/.aws/config
(在 Linux 或 macOS 上)或C:\Users\
(在 Windows 上)。USERNAME
\.aws\config -
容器凭证 – 您可以将 IAM 角色与每个 Amazon Elastic Container Service (Amazon ECS) 作业定义关联。之后,该任务的容器就可以使用该角色的临时凭证。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的任务的 IAM 角色。
-
Amazon EC2 实例配置文件凭证 – 您可以将 IAM 角色与每个 Amazon Elastic Compute Cloud (Amazon EC2) 实例关联。之后,在该实例上运行的代码就可以使用该角色的临时凭证。凭证通过 Amazon EC2 元数据服务提供。有关更多信息,请参阅《Amazon EC2 用户指南》中的 Amazon EC2 的 IAM 角色和《IAM 用户指南》中的使用实例配置文件。