

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 AWS CloudShell 來使用 AWS Control Tower
<a name="using-aws-with-cloudshell"></a>

AWS CloudShell 是一種有助於在 CLI AWS 中工作的 AWS 服務，它是瀏覽器型、預先驗證的 Shell，您可以直接從 啟動 AWS 管理主控台。您不需要下載或安裝命令列工具。您可以從您偏好的 shell (Bash、PowerShell 或 Z shell) 執行 AWS Control Tower 和其他 AWS 服務的 AWS CLI 命令。

當您[從 啟動 AWS CloudShellAWS 管理主控台](https://docs.aws.amazon.com/cloudshell/latest/userguide/working-with-cloudshell.html#launch-options)時，您用來登入主控台的 AWS 登入資料可在新的 shell 工作階段中使用。您可以在與 AWS Control Tower 和其他 AWS 服務互動時，略過輸入設定登入資料，而且您將使用預先安裝在 shell 運算環境的第 2 AWS CLI 版。您已預先驗證 AWS 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建立並管理的獨立政策。下列適用於 CloudShell 的 AWS 受管政策可以連接到 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 管理主控台，您可以立即從命令列 interface. AWS CLI commands AWS Control Tower 開始與 互動，在 CloudShell 中以標準方式運作。

**注意**  
在 AWS CLI 中使用 時 AWS CloudShell，您不需要下載或安裝任何其他資源。您已在 shell 中驗證，因此在進行呼叫之前不需要設定登入資料。<a name="cloudshell-and-controltower"></a>

# 使用 AWS CloudShell 協助設定 AWS Control Tower
<a name="cloudshell-and-controltower"></a>

在執行這些程序之前，除非另有說明，否則您必須登入您登陸區域的 AWS 管理主控台 主區域中的 ，而且您必須以 IAM Identity Center 使用者或 IAM 使用者身分登入，並具有包含您登陸區域的管理帳戶管理許可。

1. 以下是在開始設定 AWS Control Tower 登陸區域之前，您可以在 中使用 AWS Config CLI 命令 AWS CloudShell 來判斷組態記錄器和交付管道的狀態。

   **範例：檢查您的 AWS Config 狀態**

**檢視命令：**
   + `aws configservice describe-delivery-channels`
   + `aws configservice describe-delivery-channel-status`
   + `aws configservice describe-configuration-recorders`
   + 正常回應類似 `"name": "default"`

1. 如果您有在設定 AWS Control Tower 登陸區域之前需要刪除的現有 AWS Config 記錄器或交付管道，您可以輸入以下命令：

   **範例：管理您預先存在 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 CLI 命令 AWS CloudShell ，以啟用或停用受信任的存取 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/)。