

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

# 用于AWS CloudShell与之配合AWS Control Tower
<a name="using-aws-with-cloudshell"></a>

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

当您[AWS CloudShell从启动](https://docs.aws.amazon.com/cloudshell/latest/userguide/working-with-cloudshell.html#launch-options)时AWS 管理控制台，用于登录控制台的AWS凭据将在新的 shell 会话中可用。当你与其他AWS服务交互时，你可以跳过输入配置凭证，而你将使用预先安装在外壳程序计算环境中的AWS CLI版本 2。你已通过预先身份验证。AWS Control TowerAWS CloudShell

## 获取 IAM 权限AWS CloudShell
<a name="cloudshell-permissions"></a>

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

管理员向用户授予访问权限的最快方法是通过AWS托管策略。[AWS托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)是由AWS创建和管理的独立策略。以下的AWS托管策略 CloudShell 可以附加到 IAM 身份：
+ `AWSCloudShellFullAccess`：授予使用权限，并AWS CloudShell具有对所有功能的完全访问权限。

 如果您想限制 IAM 用户或 IAM Identity Center 用户可以执行的操作范围AWS CloudShell，则可以创建使用`AWSCloudShellFullAccess`托管策略作为模板的自定义策略。有关限制中可供用户执行的操作的更多信息 CloudShell，请参阅*AWS CloudShell用户指南*中的[使用 IAM 策略管理AWS CloudShell访问和使用情况](https://docs.aws.amazon.com/cloudshell/latest/userguide/sec-auth-with-identities.html)。

**注意**  
您的 IAM 身份还需要一个策略来授予对AWS Control Tower进行调用的权限。有关更多信息，请参阅[使用AWS Control Tower控制台所需的权限](https://docs.aws.amazon.com//controltower/latest/userguide/access-control-managing-permissions.html#additional-console-required-permissions)。

### 启动AWS CloudShell
<a name="launch-cloudshell"></a>

从中AWS 管理控制台，您可以 CloudShell 通过选择导航栏上的以下可用选项来启动：
+  选择图 CloudShell 标。
+ 开始在搜索框中输入 “cloudshell”，然后选择相应 CloudShell选项。

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

# AWS Control Tower通过以下方式与之互动AWS CloudShell
<a name="cshell-examples"></a>

AWS CloudShell从启动后AWS 管理控制台，您可以立即开始AWS Control Tower从命令行界面与之交互。AWS CLI命令在中以标准方式工作 CloudShell。

**注意**  
AWS CLI在中使用时AWS CloudShell，您无需下载或安装任何其他资源。您已经在 Shell 中进行了身份验证，因此在进行调用之前也无需配置凭证。<a name="cloudshell-and-controltower"></a>

# AWS CloudShell用于帮助设置AWS Control Tower
<a name="cloudshell-and-controltower"></a>

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

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`
   + 正常的响应类似于 `"name": "default"`

1. 如果您有现有的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 Control Tower资源AWS Config。这些资源的丢失可能导致AWS Control Tower进入不一致的状态。

**有关更多信息，请参阅AWS Config文档**
   +  [管理配置记录器 (AWS CLI)](https://docs.aws.amazon.com//config/latest/developerguide/stop-start-recorder.html#managing-recorder_cli)
   +   [管理传输通道](https://docs.aws.amazon.com//config/latest/developerguide/manage-delivery-channel.html)

1. 此示例显示了为启用或禁用可信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`<a name="cloudshell-and-s3"></a>

# 示例：使用创建 Amazon S3 存储桶AWS CloudShell
<a name="cloudshell-and-s3"></a>

在以下示例中，您可以使用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"
   }
   ```
**注意**  
如果您不遵守[命名存储桶的规则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules)（例如，仅使用小写字母），则会显示以下错误：调用 CreateBucket 操作时出现错误 (InvalidBucketName)：指定的存储桶无效。

1. 要上传文件并将其作为对象添加到刚创建的存储桶，请调用 **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 的对象的完整性](https://aws.amazon.com/premiumsupport/knowledge-center/data-integrity-s3/)。