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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

用于配置的环境变量 Amazon CLI

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

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

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

有关优先级以及如何 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

使用 setx 设置环境变量会更改当前命令提示符会话和运行该命令后创建的所有命令提示符会话中使用的值。它 影响在运行该命令时已经运行的其他命令 shell。您可能需要重启终端来加载设置。

仅为当前会话设置

使用 set 设置环境变量会更改使用的值,直到当前命令提示符会话结束,或者直到您将该变量设置为其他值。

C:\> set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE C:\> set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> set AWS_DEFAULT_REGION=us-west-2
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 的自动提示。可以使用两种设置:

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

  • on-partial 使用部分自动提示模式。如果命令不完整或由于客户端验证错误而无法运行,则使用自动提示。如果您有预先存在的脚本、运行手册,或者只想自动提示您输入不熟悉的命令,而不是在每个命令上都得到提示,则此模式非常有用。

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

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

AWS_CLI_FILE_ENCODING

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

AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS

如果使用自定义s3 mv命令时源存储桶和目标存储桶相同,则可以将源文件或对象移到其自身上,这可能会导致源文件或对象意外删除。AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS环境变量和--validate-same-s3-paths选项指定是验证接入点 ARN 还是验证您的 Amazon S3 源或目标 URI 中的接入点别名。

注意

的路径验证s3 mv需要额外的 API 调用。

AWS_CONFIG_FILE

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

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

AWS_DATA_PATH

加载 Amazon CLI 数据~/.aws/models时需要在内置搜索路径之外检查的其他目录列表。设置此环境变量将指示在回滚到内置搜索路径前要先检查的其他目录。应使用 os.pathsep 字符(在 Linux 上为 :,在 Windows 上为 ;)隔开多个条目。

AWS_DEFAULT_OUTPUT

指定要使用的输出格式

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

AWS_DEFAULT_REGION

Default region name识默认情况下您要向其服务器发送请求的 Amazon 区域。通常是离您最近的区域,但可以是任意区域。例如,您可以键入 us-west-2 以使用美国西部(俄勒冈)。除非在命令中另行指定,否则这是所有后续请求将发送到的区域。

注意

使用时, Amazon 必须明确或通过设置默认区域来指定区域。 Amazon CLI有关可用区域的列表,请参阅区域和终端节点。使用的区域标识符与您在 Amazon Web Services Management Console 网址和服务端点中看到的名称相同。 Amazon CLI

如果已定义此环境变量,它将覆盖配置文件设置 region 的值。您可以使用--region命令行参数和与 Amazon SDK 兼容的环境变量来覆盖此AWS_REGION环境变量

AWS_EC2_METADATA_DISABLED

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

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

AWS_ENDPOINT_URL

指定用于所有服务请求的端点。

端点配置设置位于多个位置,例如系统或用户环境变量、本地 Amazon 配置文件或在命令行中明确声明为参数。 Amazon CLI 端点配置设置的优先顺序如下:

  1. --endpoint-url 命令行选项。

  2. 如果启用,则 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全局端点环境变量或配置文件设置 ignore_configure_endpoint_urls 将忽略自定义端点。

  3. 由特定于服务的环境变量 AWS_ENDPOINT_URL_<SERVICE> 提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 环境变量提供的值。

  5. 共享 config 文件 services 节中的 endpoint_url 设置提供的特定于服务的端点值。

  6. 共享 config 文件的 profile 中的 endpoint_url 设置提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 设置。

  8. 最后使用相应 Amazon Web Service 端点的所有默认端点 URL。有关每个区域可用的标准服务端点的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon 区域和端点

AWS_ENDPOINT_URL_<SERVICE>

指定用于特定服务的自定义终端节点,其中替换<SERVICE>为标 Amazon Web Service 识符。例如, Amazon DynamoDB 有一serviceIdDynamoDB。对于此服务,端点 URL 环境变量为 AWS_ENDPOINT_URL_DYNAMODB

有关特定于服务的所有环境变量的列表,请参阅特定于服务的标识符列表

端点配置设置位于多个位置,例如系统或用户环境变量、本地 Amazon 配置文件或在命令行中明确声明为参数。 Amazon CLI 端点配置设置的优先顺序如下:

  1. --endpoint-url 命令行选项。

  2. 如果启用,则 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全局端点环境变量或配置文件设置 ignore_configure_endpoint_urls 将忽略自定义端点。

  3. 由特定于服务的环境变量 AWS_ENDPOINT_URL_<SERVICE> 提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 环境变量提供的值。

  5. 共享 config 文件 services 节中的 endpoint_url 设置提供的特定于服务的端点值。

  6. 共享 config 文件的 profile 中的 endpoint_url 设置提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 设置。

  8. 最后使用相应 Amazon Web Service 端点的所有默认端点 URL。有关每个区域可用的标准服务端点的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon 区域和端点

AWS_IGNORE_CONFIGURED_ENDPOINT_URLS

如果启用,则会 Amazon CLI 忽略所有自定义终端节点配置。有效值为 truefalse

端点配置设置位于多个位置,例如系统或用户环境变量、本地 Amazon 配置文件或在命令行中明确声明为参数。 Amazon CLI 端点配置设置的优先顺序如下:

  1. --endpoint-url 命令行选项。

  2. 如果启用,则 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全局端点环境变量或配置文件设置 ignore_configure_endpoint_urls 将忽略自定义端点。

  3. 由特定于服务的环境变量 AWS_ENDPOINT_URL_<SERVICE> 提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 环境变量提供的值。

  5. 共享 config 文件 services 节中的 endpoint_url 设置提供的特定于服务的端点值。

  6. 共享 config 文件的 profile 中的 endpoint_url 设置提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 设置。

  8. 最后使用相应 Amazon Web Service 端点的所有默认端点 URL。有关每个区域可用的标准服务端点的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon 区域和端点

AWS_MAX_ATTEMPTS

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

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

AWS_METADATA_SERVICE_NUM_ATTEMPTS

尝试在配置了 IAM 角色的 Amazon EC2 实例上检索证书时,会在停止之前 Amazon CLI 尝试从实例元数据服务中检索一次证书。如果您知道您的命令将在 Amazon EC2 实例上运行,则可增大此值,以使 Amazon CLI 在放弃前重试多次。

AWS_METADATA_SERVICE_TIMEOUT

与实例元数据服务的连接超时前等待的秒数。尝试在已配置 IAM 角色的 Amazon EC2 实例上检索凭证时,默认情况下,与实例元数据服务的连接将在 1 秒后超时。如果您知道您正在已配置 IAM 角色的 Amazon EC2 实例上运行,如有必要,可增大此值。

AWS_PAGER

指定用于处理输出的分页程序。默认情况下, Amazon CLI 版本 2 通过操作系统的默认寻呼机程序返回所有输出。

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

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

AWS_PROFILE

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

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

AWS_REGION

与 Amazon SDK 兼容的环境变量,用于指定要向其发送请求的 Amazon 区域。

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

AWS_RETRY_MODE

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

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

AWS_ROLE_ARN

指定具有网络身份提供商的 IAM 角色的 Amazon 资源名称 (ARN),您要使用该提供商来运行命令。 Amazon CLI

结合使用 AWS_WEB_IDENTITY_TOKEN_FILEAWS_ROLE_SESSION_NAME 环境变量。

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

注意

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

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

AWS_ROLE_SESSION_NAME

指定要附加到角色会话的名称。该值在 Amazon CLI 调用AssumeRole操作时提供给RoleSessionName参数,并成为代入角色用户 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_USE_DUALSTACK_ENDPOINT

允许使用双堆栈端点发送 Amazon 请求。要详细了解支持 IPv4 和 IPv6 流量的双堆栈端点,请参阅 Amazon Simple Storage Service 用户指南中的使用 Amazon S3 双堆栈端点。双堆栈端点适用于某些区域。如果服务不存在双栈端点或 Amazon Web Services 区域,则请求将失败。默认情况下,将禁用该功能。

端点配置设置位于多个位置,例如系统或用户环境变量、本地 Amazon 配置文件或在命令行中明确声明为参数。 Amazon CLI 端点配置设置的优先顺序如下:

  1. --endpoint-url 命令行选项。

  2. 如果启用,则 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全局端点环境变量或配置文件设置 ignore_configure_endpoint_urls 将忽略自定义端点。

  3. 由特定于服务的环境变量 AWS_ENDPOINT_URL_<SERVICE> 提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 环境变量提供的值。

  5. 共享 config 文件 services 节中的 endpoint_url 设置提供的特定于服务的端点值。

  6. 共享 config 文件的 profile 中的 endpoint_url 设置提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 设置。

  8. 最后使用相应 Amazon Web Service 端点的所有默认端点 URL。有关每个区域可用的标准服务端点的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon 区域和端点

AWS_USE_FIPS_ENDPOINT

有些 Amazon 服务提供的端点支持联邦信息处理标准 (FIPS) 140-2。 Amazon Web Services 区域当 Amazon 服务支持 FIPS 时,此设置指定 Amazon CLI 应使用哪个 FIPS 端点。与标准 Amazon 端点不同,FIPS 端点使用符合 FIPS 140-2 的 TLS 软件库。与美国政府有业务来往的企业可能需要使用这些端点。

如果启用了此设置,但您的服务中不存在 FIPS 端点 Amazon Web Services 区域,则该 Amazon 命令可能会失败。在这种情况下,请使用 --endpoint-url 选项手动指定要在命令中使用的端点,或者使用特定于服务的端点

有关通过指定 FIPS 端点的更多信息 Amazon Web Services 区域,请参阅按服务划分的 FIPS 终端节点

端点配置设置位于多个位置,例如系统或用户环境变量、本地 Amazon 配置文件或在命令行中明确声明为参数。 Amazon CLI 端点配置设置的优先顺序如下:

  1. --endpoint-url 命令行选项。

  2. 如果启用,则 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全局端点环境变量或配置文件设置 ignore_configure_endpoint_urls 将忽略自定义端点。

  3. 由特定于服务的环境变量 AWS_ENDPOINT_URL_<SERVICE> 提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 环境变量提供的值。

  5. 共享 config 文件 services 节中的 endpoint_url 设置提供的特定于服务的端点值。

  6. 共享 config 文件的 profile 中的 endpoint_url 设置提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 设置。

  8. 最后使用相应 Amazon Web Service 端点的所有默认端点 URL。有关每个区域可用的标准服务端点的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon 区域和端点

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 身份提供商的代入角色,而不适用于常规代入角色提供商配置。