用于配置 Amazon CLI 的环境变量 - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon CLI 版本 1 将弃用 Python 2.7、3.4 和 3.5。有关更多信息,请参阅关于 Amazon CLI 版本的 Amazon CLI 版本 1 部分。

用于配置 Amazon CLI 的环境变量

环境变量提供了另一种指定配置选项和凭证的方法;若要编写脚本或将一个命名配置文件临时设置为默认配置文件,环境变量会很有用。

注意

您不能使用环境变量指定 Amazon Web Services Single Sign On (Amazon Web Services SSO) 身份验证。而是必须在共享配置文件 .aws/config 中使用命名的配置文件。有关更多信息,请参阅 配置 Amazon CLI 以使用 Amazon Web Services Single Sign On

选项的优先顺序

  • 如果您使用本主题中描述的某个环境变量指定选项,则它将在配置文件中覆盖从配置文件加载的任何值。

  • 如果您通过在 Amazon CLI 命令行上使用参数指定选项,则它将在配置文件中覆盖相应环境变量或配置文件中的任何值。

有关优先顺序以及 Amazon CLI 如何确定使用哪些凭证的更多信息,请参阅配置设置和优先顺序

如何设置环境变量

下面的示例介绍您如何可以为默认用户配置环境变量。

Linux or macOS
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE $ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY $ export AWS_DEFAULT_REGION=us-west-2

设置环境变量会更改使用的值,直到 Shell 会话结束或直到您将该变量设置为其他值。通过在 shell 的启动脚本中设置变量,可使变量在未来的会话中继续有效。

Windows Command Prompt
C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> setx AWS_DEFAULT_REGION us-west-2

使用 set 设置环境变量会更改使用的值,直到当前命令提示符会话结束,或者直到您将该变量设置为其他值。使用 setx 设置环境变量会更改当前命令提示符会话和运行该命令后创建的所有命令提示符会话中使用的值。它 影响在运行该命令时已经运行的其他命令 shell。

PowerShell
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" PS C:\> $Env:AWS_DEFAULT_REGION="us-west-2"

如果在 PowerShell 提示符下设置环境变量(如前面的示例所示),则仅保存当前会话持续时间的值。要在所有 PowerShell 和命令提示符会话中使环境变量设置保持不变,请使用控制面板中的系统应用程序来存储该变量。或者,您可以通过将其添加到 PowerShell 配置文件来为将来的所有 PowerShell 会话设置该变量。有关存储环境变量或跨会话保存它们的更多信息,请参阅 PowerShell 文档

Amazon CLI 支持的环境变量

Amazon CLI 支持以下环境变量。

AWS_ACCESS_KEY_ID

指定与 IAM 用户或角色关联的Amazon访问密钥。

如果已定义,此环境变量将覆盖配置文件设置 aws_access_key_id 的值。您不能使用命令行选项来指定访问密钥 ID。

AWS_CA_BUNDLE

指定要用于 HTTPS 证书验证的证书捆绑包的路径。

如果已定义,此环境变量将覆盖配置文件设置 ca_bundle 的值。您可以使用 --ca-bundle 命令行参数覆盖此环境变量。

AWS_CLI_AUTO_PROMPT
此功能只在 Amazon CLI 版本 2 中提供。

仅当您使用 Amazon CLI 版本 2 时,以下功能才可用。如果您运行 Amazon CLI 版本 1,则此功能不可用。有关如何安装版本 2 的信息,请参阅安装、更新和卸载 Amazon CLI 版本 2

为 Amazon CLI 版本 2 启用自动提示。可以使用两种设置:

  • on 每次尝试运行 aws 命令时都会使用完整的自动提示模式。这包括在完整或不完整的命令之后按 ENTER 键。

    aws_cli_auto_prompt=on
  • on-partial 使用部分自动提示模式。如果命令不完整或由于客户端验证错误而无法运行,则使用自动提示。如果您已有现有脚本、运行手册,或者如果您希望只对于不熟悉的命令收到自动提示,而不是每个命令都收到提示,则此模式将非常有帮助。

    aws_cli_auto_prompt=on-partial

如果已定义,此环境变量将覆盖 cli_auto_prompt 配置文件设置的值。您可以使用 --cli-auto-prompt--no-cli-auto-prompt 命令行参数覆盖此环境变量。

有关 Amazon CLI 版本 2 自动提示功能的信息,请参阅 让 Amazon CLI 提示您输入命令

AWS_CLI_FILE_ENCODING

仅限 Amazon CLI 版本 2。指定用于文本文件的编码。默认情况下,编码与您的区域设置匹配。要设置与区域设置不同的编码,请使用 aws_cli_file_encoding 环境变量。例如,如果您使用 Windows 以及默认编码 CP1252,则 aws_cli_file_encoding=UTF-8 设置会将 CLI 设置为使用 UTF-8 打开文本文件。

AWS_CONFIG_FILE

指定 Amazon CLI 用于存储配置文件的文件的位置。默认路径为 ~/.aws/config

您不能在命名配置文件设置中或使用命令行参数来指定此值。

AWS_DEFAULT_OUTPUT

指定要使用的输出格式

如果已定义,此环境变量将覆盖配置文件设置 output 的值。您可以使用 --output 命令行参数覆盖此环境变量。

AWS_DEFAULT_REGION

指定要将请求发送到的 Amazon 区域。

如果已定义,此环境变量将覆盖配置文件设置 region 的值。您可以使用 --region 命令行参数覆盖此环境变量。

AWS_EC2_METADATA_DISABLED

禁用 Amazon EC2 实例元数据服务 (IMDS)。

如果设置为 true,则不会从 IMDS 请求用户凭证或配置(如区域)。

AWS_MAX_ATTEMPTS

指定 Amazon CLI 重试处理程序使用的最大重试次数值,其中初始调用计入您提供的值。有关重试的更多信息,请参阅Amazon CLI 重试次数

如果已定义,此环境变量将覆盖配置文件设置 max_attempts 的值。

AWS_PAGER

指定用于处理输出的分页程序。预设情况下,Amazon CLI 版本 2 会通过操作系统的原定设置分页程序返回所有输出。

要完全禁用外部分页程序,请将该变量设置为空字符串。

如果已定义,此环境变量将覆盖配置文件设置 cli_pager 的值。

AWS_PROFILE

指定包含要使用的凭证和选项的 Amazon CLI 配置文件的名称。可以是存储在 credentialsconfig 文件中的配置文件的名称,也可以是值 default,后者使用默认配置文件。

如果您定义了此环境变量,它将在配置文件中覆盖使用名为 [default] 的配置文件的行为。您可以使用 --profile 命令行参数覆盖此环境变量。

AWS_RETRY_MODE

指定 Amazon CLI 使用哪种重试模式。有三种重试模式可用:旧模式(默认模式)、标准模式和自适应模式。有关重试的更多信息,请参阅Amazon CLI 重试次数

如果已定义,此环境变量将覆盖配置文件设置 retry_mode 的值。

AWS_ROLE_ARN

指定要用于运行 Amazon CLI 命令的 IAM 角色的 Amazon Resource Name(ARN)以及 Web 身份提供商。

结合使用 AWS_WEB_IDENTITY_TOKEN_FILEAWS_ROLE_SESSION_NAME 环境变量。

如果已定义,此环境变量将覆盖配置文件设置 的值role_arn。不能将角色会话名称指定为命令行参数。

注意

此环境变量仅适用于使用 Web 身份提供商的代入角色,而不适用于常规代入角色提供商配置。

有关使用 Web 身份的更多信息,请参阅 通过 Web 身份代入角色

AWS_ROLE_SESSION_NAME

指定要附加到角色会话的名称。此值在 RoleSessionName 调用 Amazon CLI 操作时将提供给 AssumeRole 参数,并成为代入角色用户 ARN 的一部分: arn:aws:sts::123456789012:assumed-role/role_name/role_session_name。此参数为可选参数。如果未提供此值,则将自动生成会话名称。此名称显示在与此会话关联的条目的 Amazon CloudTrail 日志中。

如果已定义,此环境变量将覆盖配置文件设置 的值role_session_name

结合使用 AWS_ROLE_ARNAWS_WEB_IDENTITY_TOKEN_FILE 环境变量。

有关使用 Web 身份的更多信息,请参阅 通过 Web 身份代入角色

注意

此环境变量仅适用于使用 Web 身份提供商的代入角色,而不适用于常规代入角色提供商配置。

AWS_SECRET_ACCESS_KEY

指定与访问密钥关联的私有密钥。这基本上是访问密钥的“密码”。

如果已定义,此环境变量将覆盖配置文件设置 aws_secret_access_key 的值。您不能将秘密访问密钥 ID 指定为命令行选项。

AWS_SESSION_TOKEN

指定在使用您直接从 Amazon STS 操作中检索的临时安全凭证时需要的会话令牌值。有关更多信息,请参阅 Amazon CLI 命令引用中的代入角色命令的输出部分

如果已定义,此环境变量将覆盖配置文件设置 aws_session_token 的值。

AWS_SHARED_CREDENTIALS_FILE

指定 Amazon CLI 用于存储访问密钥的文件的位置。默认路径为 ~/.aws/credentials

您不能在命名配置文件设置中或使用命令行参数来指定此值。

AWS_STS_REGIONAL_ENDPOINTS

指定 Amazon CLI 如何确定 Amazon CLI 客户端用于与 Amazon Security Token Service (Amazon STS) 通信的Amazon服务终端节点。

  • Amazon CLI 版本 1 的原定设置值为 legacy

  • Amazon CLI 版本 2 的原定设置值为 regional

您可以指定以下两个值之一:

  • legacy – 对以下Amazon区域使用全局 STS 终端节点 sts.amazonaws.comap-northeast-1ap-south-1ap-southeast-1ap-southeast-2aws-globalca-central-1eu-central-1eu-north-1eu-west-1eu-west-2eu-west-3sa-east-1us-east-1us-east-2us-west-1us-west-2。所有其他区域自动使用其各自的区域终端节点。

  • regional – Amazon CLI 始终使用当前配置的区域的 Amazon STS 终端节点。例如,如果客户端已配置为使用 us-west-2,则对 Amazon STS 进行的所有调用都针对区域终端节点 sts.us-west-2.amazonaws.com 而非全局 sts.amazonaws.com 终端节点。要在启用此设置时向全局终端节点发送请求,您可以将区域设置为 aws-global

AWS_WEB_IDENTITY_TOKEN_FILE

指定一个文件的路径,该文件包含由身份提供商提供的 OAuth 2.0 访问令牌或 OpenID Connect ID 令牌。Amazon CLI 加载此文件的内容,并将其作为 WebIdentityToken 参数传递给 AssumeRoleWithWebIdentity 操作。

结合使用 AWS_ROLE_ARNAWS_ROLE_SESSION_NAME 环境变量。

如果已定义,此环境变量将覆盖配置文件设置 web_identity_token_file 的值。

有关使用 Web 身份的更多信息,请参阅 通过 Web 身份代入角色

注意

此环境变量仅适用于使用 Web 身份提供商的代入角色,而不适用于常规代入角色提供商配置。