设置 AWS CLI - AWS Command Line Interface

设置 AWS CLI

本主题介绍如何快速配置 AWS Command Line Interface (AWS CLI)的基本设置,以便与 AWS 交互。其中包括您的安全凭证、原定设置输出格式和原定设置 AWS 区域。

收集您的凭证信息以进行编程访问

如果您需要在 AWS Management Console 之外与 AWS 进行交互,则需要编程式访问权限。对于身份验证和凭证说明,请选择以下选项之一:

身份验证类型 用途 说明

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 CLI 将您的配置和凭证信息存储在 credentialsconfig 文件的配置文件(设置集合)中。

以下示例将示例值用于每种身份验证方法。请将示例值替换为您自己的值。

使用 AWS CLI 命令进行配置

对于一般用途,在您的首选终端中使用 aws configureaws configure sso 命令是设置 AWS CLI 安装的最快方法。根据您首选的凭证方法,AWS CLI 会提示您输入相关信息。预设情况下,当您运行的 AWS CLI 命令未明确指定要使用的配置文件时,将使用此配置文件中的信息。

有关 credentialsconfig 文件的更多信息,请参阅AWS CLI 中的配置和凭证文件设置

IAM Identity Center (SSO)

此示例介绍使用 aws configure sso 向导的 AWS IAM Identity Center。有关更多信息,请参阅 使用 AWS CLI 配置 IAM Identity Center 身份验证

$ aws configure sso SSO session name (Recommended): my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1 Attempting to automatically open the SSO authorization page in your default browser. There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (111122223333) ProductionAccount, production-account-admin@example.com (444455556666) Using the account ID 111122223333 There are 2 roles available to you. > ReadOnly FullAccess Using the role name "ReadOnly" CLI default client Region [None]: us-west-2 CLI default output format [None]: json CLI profile name [123456789011_ReadOnly]: user1
IAM Identity Center (Legacy SSO)

此示例介绍使用 aws configure sso 向导的 AWS IAM Identity Center 的传统方法。要使用传统 SSO,请将会话名称留空。有关更多信息,请参阅 使用 AWS CLI 配置 IAM Identity Center 身份验证

$ aws configure sso SSO session name (Recommended): SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1 SSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request. There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (111122223333) ProductionAccount, production-account-admin@example.com (444455556666) Using the account ID 111122223333 There are 2 roles available to you. > ReadOnly FullAccess Using the role name "ReadOnly" CLI default client Region [None]: us-west-2 CLI default output format [None]: json CLI profile name [123456789011_ReadOnly]: user1
Short-term credentials

此示例介绍来自 AWS Identity and Access Management 的短期凭证。aws 配置向导用于设置初始值,然后 aws configure set 命令分配所需的最后一个值。有关更多信息,请参阅 在 AWS CLI 中使用短期凭证进行身份验证

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json $ aws configure set aws_session_token fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
IAM role

此示例介绍代入 IAM 角色。使用 IAM 角色的配置文件从另一个配置文件提取凭证,然后应用 IAM 角色权限。在以下示例中,default 是凭证的源配置文件,user1 将借用相同的凭证,然后代入新角色。此过程没有向导,因此,将使用 aws configure set 命令设置每个值。有关更多信息,请参阅 在 AWS CLI 中使用 IAM 角色

$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole $ aws configure set source_profile default $ aws configure set role_session_name session_user1 $ aws configure set region us-west-2 $ aws configure set output json
Amazon EC2 instance metadata credentials

此示例介绍从托管 Amazon EC2 实例元数据中获得的凭证。此过程没有向导,因此,将使用 aws configure set 命令设置每个值。有关更多信息,请参阅 在 AWS CLI 中将 Amazon EC2 实例元数据用作凭证

$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole $ aws configure set credential_source Ec2InstanceMetadata $ aws configure set region us-west-2 $ aws configure set output json
Long-term credentials
警告

为了避免安全风险,在开发专用软件或处理真实数据时,请勿使用 IAM 用户进行身份验证,而是使用与身份提供者的联合身份验证,例如 AWS IAM Identity Center

此示例介绍来自 AWS Identity and Access Management 的长期凭证。有关更多信息,请参阅 在 AWS CLI 中使用 IAM 用户凭证进行身份验证

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

有关身份验证和凭证方法的更多详细信息,请参阅 AWS CLI 身份验证和访问凭证

手动编辑凭证和配置文件

在复制和粘贴信息时,我们建议手动编辑 configcredentials 文件。根据您首选的凭证方法,将通过不同的方式设置文件。

这些文件存储在您的主目录下的 .aws 文件夹中。主目录位置因操作系统而异,但在 Windows 中使用环境变量 %UserProfile% 引用,在基于 Unix 的系统中使用 $HOME~(波形符)引用。有关这些设置的存储位置的更多信息,请参阅 配置设置存储在何处?

以下示例显示了一个 default 配置文件和一个名为 user1 的配置文件,并且将使用示例值。请将示例值替换为您自己的值。有关 credentialsconfig 文件的更多信息,请参阅AWS CLI 中的配置和凭证文件设置

IAM Identity Center (SSO)

此示例适用于 AWS IAM Identity Center。有关更多信息,请参阅 使用 AWS CLI 配置 IAM Identity Center 身份验证

凭证文件

credentials 文件不用于此身份验证方法。

Config 文件

[default] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = readOnly region = us-west-2 output = text [profile user1] sso_session = my-sso sso_account_id = 444455556666 sso_role_name = readOnly region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access
IAM Identity Center (Legacy SSO)

此示例介绍 AWS IAM Identity Center 的传统方法。有关更多信息,请参阅 使用 AWS CLI 配置 IAM Identity Center 身份验证

凭证文件

credentials 文件不用于此身份验证方法。

Config 文件

[default] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 111122223333 sso_role_name = readOnly region = us-west-2 output = text [profile user1] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 444455556666 sso_role_name = readOnly region = us-east-1 output = json
Short-term credentials

此示例介绍来自 AWS Identity and Access Management 的短期凭证。有关更多信息,请参阅 在 AWS CLI 中使用短期凭证进行身份验证

凭证文件

[default] aws_access_key_id=ASIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE [user1] aws_access_key_id=ASIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY aws_session_token = fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

Config 文件

[default] region=us-west-2 output=json [profile user1] region=us-east-1 output=text
IAM role

此示例介绍代入 IAM 角色。使用 IAM 角色的配置文件从另一个配置文件提取凭证,然后应用 IAM 角色权限。在以下示例中,default 是凭证的源配置文件,user1 将借用相同的凭证,然后代入新角色。有关更多信息,请参阅 在 AWS CLI 中使用 IAM 角色

凭证文件

credentials 文件取决于源配置文件使用的身份验证。在以下示例中,源配置文件使用短期凭证。

[default] aws_access_key_id=ASIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

Config 文件

[default] region=us-west-2 output=json [profile user1] role_arn=arn:aws:iam::777788889999:role/user1role source_profile=default role_session_name=session_user1 region=us-east-1 output=text
Amazon EC2 instance metadata credentials

此示例介绍从托管 Amazon EC2 实例元数据中获得的凭证。有关更多信息,请参阅 在 AWS CLI 中将 Amazon EC2 实例元数据用作凭证

凭证文件

credentials 文件不用于此身份验证方法。

Config 文件

[default] role_arn=arn:aws:iam::123456789012:role/defaultrole credential_source=Ec2InstanceMetadata region=us-west-2 output=json [profile user1] role_arn=arn:aws:iam::777788889999:role/user1role credential_source=Ec2InstanceMetadata region=us-east-1 output=text
Long-term credentials
警告

为了避免安全风险,在开发专用软件或处理真实数据时,请勿使用 IAM 用户进行身份验证,而是使用与身份提供者的联合身份验证,例如 AWS IAM Identity Center

此示例介绍来自 AWS Identity and Access Management 的长期凭证。有关更多信息,请参阅 在 AWS CLI 中使用 IAM 用户凭证进行身份验证

凭证文件

[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY [user1] aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

Config 文件

[default] region=us-west-2 output=json [profile user1] region=us-east-1 output=text

有关身份验证和凭证方法的更多详细信息,请参阅 AWS CLI 身份验证和访问凭证

使用现有配置和凭证文件

如果您现在拥有配置和凭证文件,这些文件可用于 AWS CLI。

要使用 configcredentials 文件,请将它们移至主目录中名为 .aws 的文件夹中。主目录位置因操作系统而异,但在 Windows 中使用环境变量 %UserProfile% 引用,在基于 Unix 的系统中使用 $HOME~(波形符)引用。

通过将 AWS_CONFIG_FILEAWS_SHARED_CREDENTIALS_FILE 环境变量设置为另一个本地路径,可以为 configcredentials 文件指定非原定设置位置。有关详细信息,请参阅 为 AWS CLI 配置环境变量

有关配置和凭证文件的更多详细信息,请参阅 AWS CLI 中的配置和凭证文件设置