

• 2026 年 4 月 30 日之後， AWS Systems Manager CloudWatch Dashboard 將不再可用。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板，就像現在一樣。如需詳細資訊，請參閱 [Amazon CloudWatch Dashboard 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

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

# 從遠端位置執行 文件
<a name="documents-running-remote-github-s3"></a>

您可以使用`AWS-RunDocument`預先定義的 SSM 文件，從遠端位置執行 AWS Systems Manager (SSM) 文件。本文件支援執行在下列位置存放的 SSM 文件：
+ 公有和私有 GitHub 儲存庫 (不支援 GitHub Enterprise)
+ Amazon S3 儲存貯體
+ Systems Manager

雖然您也可以在 中使用 State Manager或 自動化工具來執行遠端文件 AWS Systems Manager，但下列程序僅說明如何在 Systems Manager 主控台中使用 AWS Systems Manager Run Command 來執行遠端 SSM 文件。

**注意**  
`AWS-RunDocument` 只能用來執行命令類型的 SSM 文件，而不能執行其他類型，例如 Automation Runbook。`AWS-RunDocument` 使用 `aws:downloadContent` 外掛程式。如需有關 `aws:downloadContent` 外掛程式的詳細資訊，請參閱 [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent)。

**警告**  
`AWS-RunDocument` 可以從各種來源執行文件內容 (SSM 文件、GitHub、S3、URLs)。執行遠端文件時，評估的 IAM 許可是遠端文件`ssm:GetDocument`上的 和 `ssm:SendCommand`上的 `AWS-RunDocument`。如果您有拒絕存取特定 SSM 文件的 IAM 政策，具有`AWS-RunDocument`許可的使用者仍然可以透過將文件內容傳遞為參數來執行這些拒絕的文件，這可能不受相同文件特定 IAM 限制的約束。  
若要正確限制文件執行，請使用下列其中一種方法：  
**允許清單核准來源**：如果您需要使用巢狀文件執行，請使用每種來源類型的適當控制項來限制對核准來源的存取：用於控制 SSM 文件來源`ssm:GetDocument`的 IAM 政策、用於 Amazon S3 來源的 IAM 和 Amazon S3 儲存貯體政策，以及用於公有網際網路來源的網路設定 （例如 VPC 端點或安全群組）。
**限制對 AWS-RunDocument 的存取**：拒絕 `AWS-RunDocument`和任何其他在 IAM 政策中使用`aws:runDocument`外掛程式的文件，以防止巢狀文件執行。 `ssm:SendCommand`
**使用許可界限**：實作 IAM 許可界限來設定使用者的最大許可，防止他們執行未經授權的文件，無論執行方法為何。
如需 IAM 最佳實務和許可界限的詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的 [IAM 實體的許可界限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。

**開始之前**  
在您可以開始執行遠端文件之前，請必須完成以下工作。
+ 建立一份 SSM 命令文件，並將它儲存在遠端位置。如需詳細資訊，請參閱[建立 SSM 文件內容](documents-creating-content.md)
+ 如果您打算執行存放在 GitHub 私有儲存庫中的遠端文件，則必須為 GitHub 安全存取權杖建立一個 Systems Manager `SecureString` 參數。您無法透過 SSH 手動傳遞權杖來存取 GitHub 私有儲存庫中的遠端文件。您必須將存取字符做為 Systems Manager `SecureString` 參數傳遞。如需建立 `SecureString` 參數的詳細資訊，請參閱 [在 Systems Manager 中建立 Parameter Store 參數](sysman-paramstore-su-create.md)。

## 執行遠端文件 (主控台)
<a name="documents-running-remote-github-s3-console"></a>

**執行遠端文件**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 AWS Systems Manager 主控台。

1. 在導覽窗格中，選擇 **Run Command**。

1. 選擇**執行命令**。

1. 在 **Document** (文件) 清單中，請選擇 **`AWS-RunDocument`**。

1. 在 **Command parameters (命令參數)** 中，針對 **Source Type (來源類型)** 選擇選項。
   + 如果選擇 **GitHub**，請指定**來源資訊**，資訊格式如下：

     ```
     {
         "owner": "owner_name",
         "repository": "repository_name",
         "path": "path_to_document",
         "getOptions":"branch:branch_name",
         "tokenInfo": "{{ssm-secure:secure-string-token}}"
     }
     ```

     例如：

     ```
     {
         "owner":"TestUser",
         "repository":"GitHubTestExamples",
         "path":"scripts/python/test-script",
         "getOptions":"branch:exampleBranch",
         "tokenInfo":"{{ssm-secure:my-secure-string-token}}"
     }
     ```
**注意**  
`getOptions` 是可從主要分支以外的分支或從儲存庫中的特定遞交中擷取內容的額外選項。如果您使用主要分支中的最新遞交，則可省略 `getOptions`。只有當 SSM 文件存放於 `master` 以外的分支時，才需要 `branch` 參數。  
若要使用存放庫中特定「遞交」**中的 SSM 文件，請使用 `commitID` 與 `getOptions` 來代替 `branch`。例如：  

     ```
     "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
     ```
   + 如果您選擇 **S3**，指定 **Source Info (來源資訊)** 的資訊格式如下：

     ```
     {"path":"URL_to_document_in_S3"}
     ```

     例如：

     ```
     {"path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/scripts/ruby/mySSMdoc.json"}
     ```
   + 如果您選擇 **SSMDocument**，指定 **Source Info (來源資訊)** 的資訊格式如下：

     ```
     {"name": "document_name"}
     ```

     例如：

     ```
     {"name": "mySSMdoc"}
     ```

1. 在 **Document Parameters** (文件參數) 欄位中輸入遠端 SSM 文件的參數。例如，如果您執行 `AWS-RunPowerShell` 文件，您可以指定：

   ```
   {"commands": ["date", "echo \"Hello World\""]}
   ```

   如果您執行 `AWS-ConfigureAWSPack` 文件，您可以指定：

   ```
   {
      "action":"Install",
      "name":"AWSPVDriver"
   }
   ```

1. 在 **Targets** (目標) 區段中，透過手動指定標籤、選取執行個體或邊緣裝置，或指定資源群組，選擇您要執行這項操作的受管節點。
**提示**  
如果您預期看到的受管節點未列出，請參閱 [疑難排解受管節點的可用性](fleet-manager-troubleshooting-managed-nodes.md) 以取得疑難排解秘訣。

1. 對於**其他參數**：
   + 在 **Comment** (註解) 中，輸入此命令的相關資訊。
   + 在**逾時 (秒)** 中，指定在命令執行全面失敗之前，系統要等候的秒數。

1. 對於 **Rate control** (速率控制)：
   + 在**並行**中，指定可同時執行命令的受管節點數目或百分比。
**注意**  
如果您透過指定套用至受管節點的標籤或指定 AWS 資源群組來選取目標，而且您不確定目標的受管節點數量，則透過指定百分比來限制可同時執行文件的目標數量。
   + 在 **Error threshold** (錯誤閾值) 中，指定在特定數目或百分比之節點上的命令失敗之後，停止在其他受管節點上執行命令。例如，如果您指定三個錯誤，則 Systems Manager 會在收到第四個錯誤時停止傳送命令。仍在處理命令的受管節點也可能會傳送錯誤。

1. (選用) 針對**輸出選項**，若要將命令輸出儲存至檔案，請選取**將命令輸出寫入至 S3 儲存貯體**方塊。在方塊中輸入儲存貯體和字首 (資料夾) 名稱。
**注意**  
授予能力以將資料寫入至 S3 儲存貯體的 S3 許可，會是指派給執行個體之執行個體設定檔 (適用於 EC2 執行個體) 或 IAM 服務角色 (啟用混合模式的機器) 的許可，而不是執行此任務之 IAM 使用者的許可。如需詳細資訊，請參閱[設定 Systems Manager 所需的執行個體許可](setup-instance-permissions.md)或[建立混合環境的 IAM 服務角色](hybrid-multicloud-service-role.md)。此外，若指定的 S3 儲存貯體位於不同的 AWS 帳戶內，請確保與受管節點相關聯的執行個體設定檔或 IAM 服務角色是否具有寫入該儲存貯體的必要許可。

1. 在**SNS 通知**區段中，如果您要傳送有關命令執行狀態的通知，請選取**啟用 SNS 通知**核取方塊。

   如需為 Run Command 設定 Amazon SNS 通知的詳細資訊，請參閱 [使用 Amazon SNS 通知監控 Systems Manager 狀態變更](monitoring-sns-notifications.md)。

1. 選擇**執行**。

**注意**  
如需使用 Run Command 呼叫指令碼時重新開機伺服器和執行個體的資訊，請參閱 [執行命令時處理重新啟動](send-commands-reboot.md)。