1. 简介

AWS Command Line Interface (AWS CLI) 是一种开源工具,让您能够在命令行 Shell 中使用命令与 AWS 服务进行交互。仅需最少的配置,即可使用 AWS CLI 开始运行命令,以便从终端程序中的命令提示符实现与基于浏览器的 AWS 管理控制台所提供的功能等同的功能。

2. 安装 AWS CLI 版本2

  • AWS Command Line Interface (AWS CLI) 提供两个版本。


  • 要检查已安装的版本,请运行 aws --version。返回的值提供您已安装的当前版本。以下示例显示正在运行的版本为 2.0.47。

    1. aws --version
    2. aws-cli/2.0.47 Python/3.7.4 Linux/4.14.133-113.105.amzn2.x86_64 botocore/2.0.
  • AWS CLI 版本 2 是 AWS CLI 的最新主版本,支持所有最新功能。版本 2 中引入的某些功能无法向后兼容版本 1,您必须升级才能访问这些功能。


2.1 在 Windows 上使用 MSI 安装程序安装或更新 AWS CLI 版本 2

  1. 下载适用于 Windows(64 位)的 AWS CLI MSI 安装程序:
  2. 运行下载的 MSI 安装程序并按照屏幕上的说明操作。默认情况下,AWS CLI 将安装到 C:\Program Files\Amazon\AWSCLIV2
  3. 要确认安装,请打开开始菜单,搜索 cmd 以打开命令提示符窗口,然后在命令提示符处使用 aws --version 命令。
    键入命令时,请勿包含提示符符号(C:\>)。程序列表中包含这些符号是为了区分您键入的命令与 AWS CLI 返回的输出。除非是特定于 Windows 的命令,否则本指南其余部分使用通用提示符符号 ($)。有关如何格式化代码示例的更多信息,请参阅使用示例
    1. C:\> aws --version
    2. aws-cli/2.0.47 Python/3.7.4 Windows/10 botocore/2.0.0
    如果 Windows 无法找到该程序,您需要关闭并重新打开命令提示符窗口以刷新该路径,或手动将安装目录添加到您的 PATH 环境变量。

3. 配置 AWS CLI

本部分介绍如何配置 AWS Command Line Interface (AWS CLI) 用于与 AWS 交互的设置。其中包括您的安全凭证、默认输出格式和默认 AWS 区域。

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

3.1 配置基础知识

3.1.1 使用 aws configure 快速配置

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

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

访问密钥包含访问密钥 ID 和秘密访问密钥,用于签署对 AWS 发出的编程请求。如果没有访问密钥,您可以使用AWS 管理控制台进行创建。作为最佳实践,请勿在不必要时使用 AWS 账户根用户 访问密钥执行任务。而是为自己创建一个具有访问密钥的新管理员 IAM 用户

3.1.3 区域

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

3.1.4 输出格式

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

3.1.5 配置文件

AWS CLI 将这些信息存储在 credentials 文件中名为 default配置文件(一个设置集合)中。默认情况下,当您运行的 AWS CLI 命令未明确指定要使用的配置文件时,将使用此配置文件中的信息。

您可以通过指定 --profile 选项并指定名称来创建和使用具有不同的凭证和设置的其他命名配置文件。

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

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

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

  1. $ aws s3 ls --profile produser

:::info 要更新这些设置,请再次运行 aws configure(根据要更新的配置文件,使用或不使用 --profile 参数),并根据需要输入新值。 :::

4. 将 AWS CLI 与 AWS 服务一起使用

4.1 将 Amazon EC2 与 AWS CLI 结合使用

要列出 Amazon EC2 的 AWS CLI 命令,请使用以下命令。

  1. $ aws ec2 help

在运行任何命令之前,请设置默认证书。

4.1.1 创建、显示和删除 Amazon EC2 密钥对

a. 创建密钥对

要创建密钥对,请使用 create-key-pair 命令以及 --query 选项和 --output text 选项,以通过管道将私有密钥直接传输到文件。

  1. $ aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pem

对于 Windows PowerShell,> file 重定向会默认采用 UTF-8 编码,这种编码不能用于某些 SSH 客户端。因此,您必须通过管道将输出传输到 out-file 命令和显式将编码设置为 ascii 来转换输出。

  1. $ aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text | out-file -encoding ascii -filepath MyKeyPair.pem

最后生成的 MyKeyPair.pem 文件。

您的私有密钥不存储在 AWS 中,并且只有在创建后才能检索。以后您无法恢复它。而如果您丢失了私有密钥,则必须创建新的密钥对。
如果您要从 Linux 计算机连接到您的实例,建议您使用以下命令设置您的私有密钥文件的权限,以确保只有您可以读取该文件。

  1. $ chmod 400 MyKeyPair.pem

b. 显示您的密钥对

“指纹”是从密钥对生成的,您可以使用指纹验证您本地计算机上的私有密钥是否与 AWS 中存储的公有密钥匹配。

指纹是取自私有密钥的 DER 编码副本的 SHA1 哈希。在创建密钥对时将捕获此值,此值与公有密钥一起存储在 AWS 中。您可以在 Amazon EC2 控制台中或通过运行 AWS CLI 命令 aws ec2 describe-key-pairs 查看指纹。

以下示例显示 MyKeyPair 的指纹。

  1. $ aws ec2 describe-key-pairs --key-name MyKeyPair
  2. {
  3. "KeyPairs": [
  4. {
  5. "KeyName": "MyKeyPair",
  6. "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f"
  7. }
  8. ]
  9. }

c. 删除您的密钥对

删除密钥对,请运行以下命令,将 MyKeyPair 替换为要删除的密钥对的名称。

  1. $ aws ec2 delete-key-pair --key-name MyKeyPair