使用 AWS CloudShell 来使用 AWS Control Tower - AWS Control Tower

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

使用 AWS CloudShell 来使用 AWS Control Tower

AWS CloudShell 是一项便于在 AWS CLI 中工作的 AWS 服务 — 它是一个基于浏览器、经过预先验证的 shell,您可以直接从启动。 AWS Management Console无需下载或安装命令行工具。您可以通过首选外壳(Bash PowerShell 或 Z shell)为和其他 AWS 服务运行 AWS CLI 命令。 AWS Control Tower

当您AWS CloudShell 从启动时 AWS Management Console,用于登录控制台的 AWS 凭据将在新的 shell 会话中可用。当你与其他 AWS 服务交互时,你可以跳过输入配置凭证,而你将使用预先安装在外壳程序计算环境中的 AWS CLI 版本 2。你已通过预先身份验证。 AWS Control Tower AWS CloudShell

获取 IAM 权限 AWS CloudShell

AWS Identity and Access Management 提供访问管理资源,允许管理员向 IAM 用户和 IAM Identity Center 用户授予访问权限 AWS CloudShell。

管理员向用户授予访问权限的最快方法是通过 AWS 托管策略。AWS 托管式策略 是由 AWS创建和管理的独立策略。以下的 AWS 托管策略 CloudShell 可以附加到 IAM 身份:

  • AWSCloudShellFullAccess:授予使用权限,并 AWS CloudShell 具有对所有功能的完全访问权限。

如果您想限制 IAM 用户或 IAM Identity Center 用户可以执行的操作范围 AWS CloudShell,则可以创建使用AWSCloudShellFullAccess托管策略作为模板的自定义策略。有关限制中可供用户执行的操作的更多信息 CloudShell,请参阅AWS CloudShell 用户指南中的使用 IAM 策略管理 AWS CloudShell 访问和使用情况

注意

您的 IAM 身份还需要一个授予调用权限的策略 AWS Control Tower。有关更多信息,请参阅使用 AWS Control Tower 控制台所需的权限

与 AWS Control Tower 使用进行交互 AWS CloudShell

AWS CloudShell 从启动后 AWS Management Console,您可以立即开始 AWS Control Tower 从命令行界面与之交互。 AWS CLI 命令在中以标准方式工作 CloudShell。

注意

AWS CLI 在中使用时 AWS CloudShell,您无需下载或安装任何其他资源。您已经在 shell 中进行了身份验证,因此无需在拨打电话之前配置凭据。

启动 AWS CloudShell

  • 从中 AWS Management Console,您可以 CloudShell 通过选择导航栏上的以下可用选项来启动:

    • 选择图 CloudShell 标。

    • 开始在搜索框中输入 “cloudshell”,然后选择相应 CloudShell选项。

    现在你已经开始了 CloudShell,你可以输入任何你需要使用的 AWS CLI 命令 AWS Control Tower。例如,您可以检查自己的 AWS Config 状态。

AWS CloudShell 用于帮助设置 AWS Control Tower

在执行这些程序之前,除非另有说明,否则您必须登录到着陆区域的主区域,并且必须以 IAM Identity Center 用户或对包含您的着陆区的管理账户具有管理权限的 IAM 用户身份登录。 AWS Management Console

  1. 在开始配置 landing zone 之前,您可以通过以下方式在中 AWS CloudShell 使用 AWS Config CLI 命令来确定配置记录器和传送渠道 AWS Control Tower 的状态。

    查看您的 AWS Config 状态

    查看命令:
    • aws configservice describe-delivery-channels

    • aws configservice describe-delivery-channel-status

    • aws configservice describe-configuration-recorders

    • The normal response is something like "name": "default"

  2. 如果您有现有的 AWS Config 录音机或传送渠道,需要在设置 landing z AWS Control Tower one 之前将其删除,则可以输入以下命令:

    管理您先前存在 AWS Config 的资源

    删除命令:
    • aws configservice stop-configuration-recorder --configuration-recorder-name NAME-FROM-DESCRIBE-OUTPUT

    • aws configservice delete-delivery-channel --delivery-channel-name NAME-FROM-DESCRIBE-OUTPUT

    • aws configservice delete-configuration-recorder --configuration-recorder-name NAME-FROM-DESCRIBE-OUTPUT

      重要

      请勿删除 AWS Config 的 AWS Control Tower 资源。这些资源的丢失可能导致 AWS Control Tower 进入不一致的状态。

    有关更多信息,请参阅 AWS Config 文档
  3. 此示例显示了为启用或禁用可信 AWS CloudShell 访问而输入的 AWS CLI 命令 AWS Organizations。因为 AWS Control Tower 您不需要为启用或禁用可信访问权限 AWS Organizations,这只是一个示例。但是,如果您要在中自动执行或自定义操作,则可能需要启用或禁用其他 AWS 服务的可信访问权限。 AWS Control Tower

    启用或禁用可信服务访问权限
    • aws organizations enable-aws-service-access

    • aws organizations disable-aws-service-access

使用创建 Amazon S3 存储桶 AWS CloudShell

在以下示例中,您可以使用 AWS CloudShell 创建 Amazon S3 存储桶,然后使用PutObject方法将代码文件作为对象添加到该存储桶中。

  1. 要在指定 AWS 区域创建存储桶,请在命令行中输入以下 CloudShell 命令:

    aws s3api create-bucket --bucket insert-unique-bucket-name-here --region us-east-1

    如果调用成功,命令行将显示来自服务的响应,输出与以下类似:

    { "Location": "/insert-unique-bucket-name-here" }
    注意

    如果您不遵守命名存储桶的规则(例如,仅使用小写字母),则会显示以下错误:调用 CreateBucket 操作时出现错误 (InvalidBucketName):指定的存储桶无效

  2. 要上传文件并将其作为对象添加到刚刚创建的存储桶中,请调用以下PutObject方法:

    aws s3api put-object --bucket insert-unique-bucket-name-here --key add_prog --body add_prog.py

    如果对象成功上传到 Amazon S3 存储桶,则命令行会显示来自该服务的响应,类似于以下输出:

    { "ETag": "\"ab123c1:w:wad4a567d8bfd9a1234ebeea56\""}

    ETag是已存储对象的哈希值。它可用于检查上传到 Amazon S3 的数据元的完整性