模块 3:设置 AWS CLI:

教程

设置 AWS CLI

在此模块中,您将配置 AWS 命令行界面(CLI)

您将学到的内容

在本模块中,您将:
  • 为您的操作系统安装 AWS 命令行界面(AWS CLI)
  • 配置凭证以访问您的 AWS 账户
  • 配置多个配置文件以访问不同的 AWS 账户

实施

AWS CLI 是用于管理 AWS 服务的统一工具。只需要下载和配置一个工具,您就可以使用命令行控制多个 AWS 产品并利用脚本来自动执行这些服务。 

要使用 CLI 与 AWS 交互,我们需要配置凭证以供其在进行 API 调用时使用。我们还将展示如何设置多个配置文件以访问多个 AWS 账户,期间可使用附加凭证或通过 IAM 角色切换。

 完成时间

10 分钟

 模块要求

  • 互联网浏览器
  • AWS 账户

 获取帮助

安装 AWS CLI

可通过不同的方式安装 AWS CLI,具体取决于您的操作系统或使用容器的偏好。要安装 AWS CLI v2,请参阅安装或更新最新版本的 AWS CLI

安装 AWS CLI 后,您可以在命令行中运行 aws --version 并查看以下输出(版本可能有所不同):

aws --version

例如,在 Windows 10 上安装 AW CLI 时的响应如下所示:

aws-cli/2.12.1 Python/3.11.3 Windows/10 exe/AMD64 prompt/off

AWS CLI 现已安装,您可以开始配置凭证。 

配置 AWS CLI 凭证

要配置凭证,请使用命令 <aws configure sso> 包含在本教程上一模块中创建的用户的凭证。

在 CLI 中,运行 <aws configure sso> 命令,系统将要求您提供以下信息:

  • SSO 会话名称提供会话的名称,该名称包含在与该会话关联的条目的 AWS CloudTrail 日志中。如果您不输入名称,则会自动生成一个名称。对于本教程,请使用 <Test1>。
  • SSO 起始 URL您在配置 IAM Identity Center 时获得的 AWS Access 门户 URL
  • SSO 区域在本教程中,示例使用 <us-east-1>。自己运行命令时,请指定已启用 IAM IdentityCenter 的区域。您可以在 AWS 管理控制台的 IAM Identity Center 控制面板的设置摘要中找到此信息。
  • SSO 注册范围范围授权访问不同的端点。在本教程中,我们将使用 <sso:account:access> 的最小范围从 IAM Identity Center 服务获取刷新令牌。

输入 <aws configure sso> 命令后,系统将提示您在终端中输入每一项的内容。

aws configure sso

注意:如果您不知道账户的起始 URL 或区域,请以根用户身份登录控制台,然后前往 IAM Identity Center 控制面板。区域和 AWS Access 门户 URL 显示在设置摘要中。

以下示例代码显示了此阶段的 CLI 内容:

$ aws configure sso

SSO session name (Recommended): Test1
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access

CLI 会尝试在您的默认浏览器中自动打开 SSO 授权页面,并开始您的 IAM Identity Center 账户的登录流程。

提供您的密码(如果已启用 MFA,还需提供 MFA 凭证)后,系统会要求您允许访问您的数据。这将向 AWS CLI 授予相关权限,以便检索和显示您有权在 IAM Identity Center 中使用的 AWS 账户和角色。

由于 AWS CLI 是在适用于 Python 的 SDK 的基础上构建的,因此权限消息可能包含 botocore 名称的变体,例如 botocore-client-Test1。选择允许。完成身份认证后,您会被告知可以关闭窗口。   

CLI 将更新并向您显示可供您使用的 AWS 账户和角色。因为此时您只设置了一个具有 AdministratorAccess 角色的 AWS 账户,即您登录时使用的账户和角色。现在,您的 CLI 窗口应显示以下几行:

The only AWS account available to you is: 111122223333
Using the account ID 111122223333
The only role available to you is: AdministratorAccess
Using the role name "AdministratorAccess"   

然后,系统会要求您指定默认输出格式、向其发送命令的默认 AWS 区域,并提供配置文件的名称,以便在 CLI 中运行命令时可以引用此配置文件。

建议的配置文件名称是账户 ID 号,后跟下划线,然后是角色名称,但是在本教程中,我们将使用较短的配置文件名称 admin-1。现在,您的 CLI 窗口应显示以下几行:

To use this profile, specify the profile name using --profile, as shown:
aws s3 ls --profile admin-1

现在,运行 <aws ec2 describe-vpcs> 命令来检查配置是否正确。每个新的 AWS 账户都配置了默认 VPC,因此您无需在 AWS 账户上配置任何其他服务即可运行此命令。

aws ec2 describe-vpcs

现在,您的 CLI 窗口应显示以下信息。

这就确认您的 AWS CLI 现在已正确设置。

通过执行此过程,您已经使用一个 sso-session 部分和命名配置文件更新了 AWS Config 文件。

在运行 Linux 或 macOS 的计算机上,配置文件位于 ~/.aws/config;在运行 Windows 的计算机上,则位于 C:\Users\ USERNAME \.aws\config。如果您打开配置文件,则会看到以下两个部分:

aws ec2 describe-vpcs --profile admin-1

{
    "Vpcs": [
        {
            "CidrBlock": "10.0.0.0/16",
            "DhcpOptionsId": "dopt-d12345",
            "State": "available",
            "VpcId": "vpc-0123456789abcdef",
            "OwnerId": "111122223333",
            "InstanceTenancy": "default",
............"CidrBlockAssociationSet": [
................{
....................."AssociationId": "vpc-cidr-assoc-38b060a751a39af8e",
....................."CidrBlock": "10.24.34.0/23",
....................."CidrBlockState": {
........................."State": "associated"
......................}
................}
............],
............"IsDefault": true
.........}
    ]
}

[profile admin-1]
sso_session = Test1
sso_account_id = 111122223333
sso_role_name = AdministratorAccess
region = us-east-1
output = json

[sso-session Test1]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access

现在,您可以使用 <aws sso login> 命令,通过此 sso-session 会话和配置文件来请求凭证。 

aws sso login

现在,您的 CLI 窗口应显示以下信息:

aws sso login -–profile admin-1
Attempting to automatically open the SSO authorization page in your default browser.

If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
https://device.sso.us-east1.amazonaws.com/

Then enter the code:
XXXX-XXXX

导航到浏览器窗口并允许访问您的数据。当您返回 CLI 窗口时,随之出现的消息会显示以下行:

Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start

配置多个配置文件(可选)

当您向 AWS 账户添加角色以及为组织添加其他 AWS 账户时,请重复上述步骤,为这些角色和账户创建配置文件。

随着复杂性的增加,建议使用将 AWS 账户 ID 和角色名称关联起来的配置文件命名策略,以便区分配置文件。 

结论

恭喜! 您已经学习了如何设置 AWS CLI 和配置命名配置文件。在下一个模块中,您将学习如何设置基于云的 IDE AWS Cloud9。

此页内容对您是否有帮助?

设置 AWS Cloud9