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

本文档仅适用于 Amazon CLI 版本 1。有关 Amazon CLI 版本 2 的相关文档,请参阅版本 2 用户指南

Amazon CLI 的命名配置文件

命名配置文件 是指您可以应用到 Amazon CLI 命令的设置和凭证的集合。当您指定配置文件来运行命令时,将使用相应的设置和凭证来运行该命令。可将多个命名配置文件 存储在 configcredentials 文件中。

您可以指定一个 default 配置文件,以在没有显式引用配置文件时使用。对于其他配置文件的名称,您可以在单个命令的命令行中将其指定为参数。或者,您也可以在 AWS_PROFILE 环境变量中指定一个配置文件,该配置文件会覆盖在该会话中运行的命令的原定设置配置文件。

创建命名配置文件

您可以通过在 aws configure 中使用 --profile 选项或手动通过向 configcredentials 文件中添加条目来配置其他配置文件。有关 configcredentials 文件的更多信息,请参阅 配置和凭证文件设置

凭证配置文件

下面的示例介绍一个有两个配置文件的 credentials 文件。第一个 [default] 配置文件在运行没有配置文件的 Amazon CLI 命令时使用。第二个在运行有 --profile user1 参数的 Amazon CLI 命令时使用。

credentials 文件使用的命名格式与 Amazon CLI config 文件用于命名配置文件的格式不同。在 credentials 文件中创建条目时,请勿 使用单词 profile

~/.aws/credentials(Linux 和 Mac)或 %USERPROFILE%\.aws\credentials (Windows)

[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

有关密钥对的更多信息,请参阅访问密钥 ID 和秘密访问密钥

Config 配置文件

每个配置文件都可以指定不同的凭证,还可以指定不同的 Amazon 区域和输出格式。在 config 文件中命名配置文件时,请包括前缀词“profile”。

以下示例指定 defaultuser1 配置文件的区域和输出信息。

~/.aws/config(Linux 和 Mac)或 %USERPROFILE%\.aws\config (Windows)

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

使用命名配置文件

要使用命名配置文件,请向您的命令添加 --profile profile-name 选项。以下示例列出了使用先前示例文件中 user1 配置文件中定义的凭证和设置的所有 Amazon EC2 实例。

$ aws ec2 describe-instances --profile user1

要为多个命令使用一个命名配置文件,通过在命令行设置 AWS_PROFILE 环境变量可以避免在每个命令中指定配置文件。

Linux 或 macOS

$ export AWS_PROFILE=user1

Windows

C:\> setx AWS_PROFILE user1

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

使用 setx 设置环境变量会更改运行命令后创建的所有命令 Shell 中的值。这不会 影响运行命令时已在运行的任何命令 Shell。关闭并重新启动命令 Shell 可查看这一更改的效果。

设置环境变量会更改默认配置文件,直到 Shell 会话结束或直到您将该变量设置为其他值。通过将环境变量放在 shell 的启动脚本中,可使环境变量在未来的会话中继续有效。有关更多信息,请参阅 用于配置 Amazon CLI 的环境变量

注意

如果您在单个命令上使用 --profile 指定配置文件,则该配置文件会覆盖环境变量中仅为该命令指定的设置。