配置基础知识 - AWS Command Line Interface

配置基础知识

此部分介绍如何使用 AWS Command Line Interface (AWS CLI) 用来与 AWS 交互的 configcredentials 文件,快速配置基本设置。其中包括您的安全凭证、原定设置输出格式和原定设置 AWS 区域。如需改为查看 AWS IAM Identity Center (successor to AWS Single Sign-On) 的配置说明,请参阅 配置 AWS CLI 以使用 AWS IAM Identity Center (successor to AWS Single Sign-On)

注意

AWS要求所有传入的请求都进行加密签名。AWS CLI 为您执行该操作。“签名”包括日期/时间戳。因此,您必须确保正确设置电脑的日期和时间。否则,如果签名中的日期/时间与 AWS 服务认定的日期/时间相差太远,AWS 会拒绝请求。

使用 aws configure 快速配置

对于一般用途,aws configure 命令是设置 AWS CLI 安装的最快方法。输入该命令时,AWS CLI 会提示您输入四条信息:

AWS CLI 将这些信息存储在 default 文件中名为 credentials配置文件(一个设置集合)中。预设情况下,当您运行的 AWS CLI 命令未明确指定要使用的配置文件时,将使用此配置文件中的信息。有关 credentials 文件的更多信息,请参阅配置和凭证文件设置

以下示例显示了示例值。将它们替换为您自己的值,如以下部分所述。

$ 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

访问密钥 ID 和秘密访问密钥

访问密钥使用访问密钥 ID 和秘密访问密钥,用于签署对 AWS 发出的编程请求。

创建密钥对

如果用户需要在 AWS Management Console 之外与 AWS 交互,则需要编程式访问权限。授予编程式访问权限的方法取决于访问 AWS 的用户类型:

  • 如果您在 IAM Identity Center 中管理身份,则 AWS API 需要一个配置文件,而 AWS Command Line Interface 需要一个配置文件或环境变量。

  • 如果您有 IAM 用户,则 AWS API 和 AWS Command Line Interface 需要访问密钥。如有可能,创建临时凭证,该凭证由一个访问密钥 ID、一个秘密访问密钥和一个指示凭证何时到期的安全令牌组成。

要向用户授予编程式访问权限,请选择以下选项之一。

哪个用户需要编程式访问权限? To By

员工身份

(IAM Identity Center 中管理的用户)

使用短期凭证签署对 AWS CLI 或 AWS API 的编程式请求(直接或使用 AWS SDK)。

按照您希望使用的接口的说明进行操作:

  • 对于 AWS CLI,请按照 AWS IAM Identity Center (successor to AWS Single Sign-On) 用户指南获取用于 CLI 访问的 IAM 角色凭证中的说明进行操作。

  • 对于 AWS API,请按照 AWS SDK 和工具参考指南SSO 凭证中的说明进行操作。

IAM 使用短期凭证签署对 AWS CLI 或 AWS API 的编程式请求(直接或使用 AWS SDK)。 按照 IAM 用户指南将临时凭证用于 AWS 资源中的说明进行操作。
IAM 使用长期凭证签署对 AWS CLI 或 AWS API 的编程式请求(直接或使用 AWS SDK)。

(不推荐使用)

按照 IAM 用户指南管理 IAM 用户的访问密钥中的说明进行操作。

通过 .CSV 文件导入密钥对

可以在创建密钥对之后导入下载的 .csv 文件,而不是使用 aws configure 输入密钥对。

.csv 文件必须包含以下标头。

  • 用户名称

  • 访问密钥 ID

  • 秘密访问密钥

注意

在创建初始密钥对期间,一旦您关闭 Download .csv file(下载 .csv 文件)对话框,在关闭该对话框之后就无法访问秘密访问密钥了。如果您需要 .csv 文件,则需要自己创建一个包含所需标头和存储的密钥对信息的文件。如果您无法访问密钥对信息,则需要创建新的密钥对。

要导入 .csv 文件,请将 aws configure import 命令与 --csv 选项结合使用,如下所示:

$ aws configure import --csv file://credentials.csv

有关更多信息,请参阅aws_configure_import

区域

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

注意

使用 AWS 时,必须明确指定或通过设置原定设置区域来指定 AWS CLI 区域。有关可用区域的列表,请参阅区域和终端节点。AWS CLI 使用的区域指示符与您在 AWS Management Console URL 和服务终端节点中看到的名称相同。

输出格式

Default output format 指定结果的格式。可以是以下列表中的任何值。如果未指定输出格式,则原定设置使用 json

  • json – 输出采用 JSON 字符串的格式。

  • yaml – 输出采用 YAML 字符串的格式。

  • yaml-stream – 输出被流式处理并采用 YAML 字符串的格式。串流支持更快地处理大型数据类型。

  • text – 输出采用多个制表符分隔字符串值行的格式。这对于将输出传递到文本处理器(如 grepsedawk)很有用。

  • table – 输出采用表格形式,使用字符 +|- 以形成单元格边框。它通常以“人性化”格式呈现信息,这种格式比其他格式更容易阅读,但从编程方面来讲不是那么有用。

配置文件

设置的集合称为配置文件。预设情况下,AWS CLI 使用 default 配置文件。您可以通过指定 --profile 选项并指定名称来创建和使用具有不同的凭证和设置的其他命名配置文件。

以下示例创建一个名为 produser 的配置文件。

$ aws configure --profile produser AWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLE AWS Secret Access Key [None]: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY Default region name [None]: us-east-1 Default output format [None]: text

之后,您可以指定 --profile profilename 并使用按该名称存储的凭证和设置。

$ aws s3 ls --profile produser

要更新这些设置,请再次运行 aws configure(根据要更新的配置文件,使用或不使用 --profile 参数),并根据需要输入新值。下面几节包含有关 aws configure 创建的文件、其他设置和命名配置文件的更多信息。

有关命名配置文件的更多信息,请参阅AWS CLI 的命名配置文件

配置设置和优先顺序

AWS CLI 使用位于不同位置(例如,系统或用户环境变量、本地 AWS 配置文件)或在命令行上显式声明为参数的凭证和配置设置。某些位置优先于其他位置。AWS CLI 凭证和配置设置的优先顺序如下:

  1. 命令行选项 – 覆盖任何其他位置的设置。您可以在命令行上指定 --region--output--profile 作为参数。

  2. 环境变量 – 您可以在系统的环境变量中存储值。

  3. CLI 凭证文件 – 在运行 credentials 命令时,将更新 configaws configure 文件。credentials 文件位于 ~/.aws/credentials(在 Linux 或 macOS 上)或 C:\Users\USERNAME\.aws\credentials(在 Windows 上)。该文件可以包含 default 配置文件和任何命名配置文件的凭证详细信息。

  4. CLI 配置文件 – 在运行 credentials 命令时,将更新 configaws configure 文件。config 文件位于 ~/.aws/config(在 Linux 或 macOS 上)或 C:\Users\USERNAME\.aws\config(在 Windows 上)。该文件包含原定设置配置文件和任何命名配置文件的配置设置。

  5. 容器凭证 – 您可以将 IAM 角色与每个 Amazon Elastic Container Service (Amazon ECS) 任务定义关联。之后,该任务的容器就可以使用该角色的临时凭证。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的任务的 IAM 角色

  6. Amazon EC2 实例配置文件凭证 – 您可以将 IAM 角色与每个 Amazon Elastic Compute Cloud (Amazon EC2) 实例关联。之后,在该实例上运行的代码就可以使用该角色的临时凭证。凭证通过 Amazon EC2 元数据服务提供。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 Amazon EC2 的 IAM 角色IAM 用户指南中的使用实例配置文件