

• 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)。

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

# 與其他產品及服務整合
與其他產品及服務整合

AWS Systems Manager 具有下表所示產品和服務的內建整合。


|  |  | 
| --- |--- |
|  Ansible  |  [https://www.ansible.com/](https://www.ansible.com/) 是 IT 自動化平台，可讓您更輕鬆地部署應用程式和系統。 Systems Manager 提供 Systems Manager 文件 (SSM 文件) `AWS-ApplyAnsiblePlaybooks`，其允許您建立可執行 Ansible Playbook 的 State Manager 關聯。  進一步了解 [建立執行 Ansible 手冊的關聯](systems-manager-state-manager-ansible.md)   | 
|  Chef  |  [https://www.chef.io/](https://www.chef.io/) 是 IT 自動化工具，可讓您更輕鬆地部署應用程式和系統。 Systems Manager 提供 `AWS-ApplyChefRecipes` SSM 文件，該文件允許您在 State Manager ( AWS Systems Manager中的工具) 中建立可執行 Chef 配方的關聯。  進一步了解 [建立執行 Chef 配方的關聯](systems-manager-state-manager-chef.md)  Systems Manager 也與 [https://www.chef.io/products/chef-inspec/](https://www.chef.io/products/chef-inspec/) 設定檔整合，可讓您執行合規掃描，以及檢視合規和不合規的節點。  進一步了解 [將 Chef InSpec 設定檔與 Systems Manager 合規搭配使用](integration-chef-inspec.md)   | 
|  GitHub  |  [https://github.com/](https://github.com/) 為軟體開發版本控制和協作提供託管服務。 Systems Manager 提供 SSM 文件 `AWS-RunDocument` (允許您執行存放在 GitHub 中的其他 SSM 文件)，以及 SSM 文件 `AWS-RunRemoteScript` (允許您執行存放在 GitHub 中的指令碼)。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/integrations-partners.html)  | 
|  Jenkins  |  [https://www.jenkins.io/](https://www.jenkins.io/) 是開放原始碼的自動化伺服器，讓開發人員能夠可靠地建置、測試及部署其軟體。 Automation 是 Systems Manager 中的工具，可以作為建置後步驟來預先安裝加入 Amazon Machine Images (AMIs) 的應用程式版本。  進一步了解 [使用 Automation 和 Jenkins 更新 AMIs](automation-tutorial-update-patch-ami-jenkins-integration.md)   | 
|  ServiceNow  |  [https://www.servicenow.com/](https://www.servicenow.com/) 是企業服務管理系統，方便您管理 IT 服務和操作。 Systems Manager 中的所有工具，如 Automation、Change Manager、Incident Manager 以及 OpsCenter，都能使用 AWS Service Management Connector 與 ServiceNow 整合。透過此整合，您可以從 檢視、建立、更新、新增通訊和解決 AWS 支援 案例ServiceNow。  進一步了解 [與 ServiceNow 整合](integrations-partners-servicenow.md)    | 
| Terraform |  HashiCorp [Terraform](https://registry.terraform.io/) 是一種開放原始碼*基礎設施即程式碼* (IaC) 軟體工具，可提供命令列介面 (CLI) 工作流程來管理各種雲端服務。對於 Systems Manager，可以使用 Terraform 來管理或佈建下列項目： **資源** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/integrations-partners.html) **資料來源** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/integrations-partners.html)  | 

**Topics**
+ [

# 從 GitHub 執行指令碼
](integration-remote-scripts.md)
+ [

# 將 Chef InSpec 設定檔與 Systems Manager 合規搭配使用
](integration-chef-inspec.md)
+ [

# 與 ServiceNow 整合
](integrations-partners-servicenow.md)

# 從 GitHub 執行指令碼


本主題說明如何利用預先定義的 Systems Manager 文件 (SSM 文件) `AWS-RunRemoteScript` 從 GitHub 下載指令碼，包括 Ansible Playbook、Python、Ruby 與 PowerShell 指令碼。透過使用此 SSM 文件，您不再需要手動將指令碼移植到 Amazon Elastic Compute Cloud (Amazon EC2) 或將其包裝在 SSM 文件中。 與 AWS Systems Manager 整合可將基礎設施GitHub提升為程式碼，從而減少管理節點所需的時間，同時將整個機群的組態標準化。 **

您也可以建立自訂 SSM 文件，以允許從遠端位置下載和執行指令碼，或是其他 SSM 文件。如需詳細資訊，請參閱[建立複合文件](documents-creating-content.md#documents-creating-composite)。

另外，您也能下載包含多個指令碼的目錄。當您在目錄中執行主要指令碼時，Systems Manager 會一併執行涵蓋在該目錄內的任何參考的指令碼。

從 GitHub 執行指令碼時，請注意以下重要詳細資訊。
+ Systems Manager 不會驗證指令碼是否能夠在節點上執行。請確認節點上已安裝必要軟體，然後再下載和執行指令碼。或者，您可以建立複合文件，使用 Run Command或 State Manager中的工具來安裝軟體 AWS Systems Manager，然後下載並執行指令碼。
+ 您要負責確保符合所有 GitHub 需求。包括視需求重新整理存取字符。確保沒有超出已驗證或未驗證請求的數量。如需詳細資訊，請參閱GitHub文件。
+ 不支援 GitHub Enterprise 儲存庫。

**Topics**
+ [

# 從 GitHub 執行 Ansible Playbook
](integration-github-ansible.md)
+ [

# 從 GitHub 執行 Python 指令碼
](integration-github-python.md)

# 從 GitHub 執行 Ansible Playbook


本節所涵蓋的程序能協助您使用主控台或 AWS Command Line Interface (AWS CLI) 從 GitHub 執行 Ansible Playbook。

**開始之前**  
如果您計劃執行存放在私有GitHub儲存庫中的指令碼，請為您的GitHub安全存取字符建立 AWS Systems Manager `SecureString` 參數。若透過 SSH 手動傳遞權杖，則無法存取私有 GitHub 儲存庫中的指令碼。您必須將存取字符做為 Systems Manager `SecureString` 參數傳遞。如需建立 `SecureString` 參數的詳細資訊，請參閱 [在 Systems Manager 中建立 Parameter Store 參數](sysman-paramstore-su-create.md)。

## 從 GitHub 執行 Ansible Playbook (主控台)


**從 GitHub 執行 Ansible Playbook**

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

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

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

1. 在 **Command document** (命令文件) 清單，請選擇 **`AWS-RunRemoteScript`**。

1. 在**命令參數**中，執行以下操作：
   + 在**來源類型**中，選取 **GitHub**。
   + 在 **Source Info** (來源資訊) 方塊中，按照以下格式輸入所需資訊，藉此存取來源。

     ```
     {
       "owner": "owner_name",
       "repository": "repository_name", 
       "getOptions": "branch:branch_name",
       "path": "path_to_scripts_or_directory",
       "tokenInfo": "{{ssm-secure:SecureString_parameter_name}}" 
     }
     ```

     此範例會下載名為 `webserver.yml` 的檔案。

     ```
     {
         "owner": "TestUser1",
         "repository": "GitHubPrivateTest",
         "getOptions": "branch:myBranch",
         "path": "scripts/webserver.yml",
         "tokenInfo": "{{ssm-secure:mySecureStringParameter}}"
     }
     ```
**注意**  
只有當 SSM 文件存放於 `master` 以外的分支時，才需要 `"branch"`。  
若要使用存放庫中特定「遞交」**中的指令碼版本，請使用 `commitID` 與 `getOptions` 來代替 `branch`。例如：  
`"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",`
   + 在 **Command Line** (命令列) 欄位中，輸入指令碼執行參數。請見此處範例。

     **ansible-playbook -i “localhost,” --check -c local webserver.yml**
   + (選用) 在 **Working Directory** (工作目錄) 欄位中，輸入節點上的目錄名稱；您將下載指令碼至該目錄並予以執行。
   + (選用) 在**執行逾時**中，指定指令碼命令執行失敗前，系統的等待時間 (秒)。

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. 選擇**執行**。

## GitHub 使用 從 執行 Ansible 手冊 AWS CLI


1. 如果您尚未安裝並設定 AWS Command Line Interface (AWS CLI)，請安裝並設定 。

   如需相關資訊，請參閱[安裝或更新最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

1. 執行以下命令，即可從 GitHub 下載指令碼並予以執行。

   ```
   aws ssm send-command \
       --document-name "AWS-RunRemoteScript" \
       --instance-ids "instance-IDs"\
       --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\": \"repository_name\", \"path\": \"path_to_file_or_directory\", \"tokenInfo\":\"{{ssm-secure:name_of_your_SecureString_parameter}}\" }"],"commandLine":["commands_to_run"]}'
   ```

   以下是在本機 Linux 機器上執行的範例命令。

   ```
   aws ssm send-command \    
       --document-name "AWS-RunRemoteScript" \
       --instance-ids "i-02573cafcfEXAMPLE" \
       --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\": \"GitHubPrivateTest\", \"path\": \"scripts/webserver.yml\", \"tokenInfo\":\"{{ssm-secure:mySecureStringParameter}}\" }"],"commandLine":["ansible-playbook -i “localhost,” --check -c local webserver.yml"]}'
   ```

# 從 GitHub 執行 Python 指令碼


本節包含使用 AWS Systems Manager 主控台或 () GitHub 來協助您從 執行 Python AWS Command Line Interface 指令碼的程序AWS CLI。

## 從 GitHub 執行 Python 指令碼 (主控台)


**從 GitHub 執行 Python 指令碼**

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

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

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

1. 在 **Command document** (命令文件) 清單，請選擇 **`AWS-RunRemoteScript`**。

1. 在 **Command parameters (命令參數)** 中，執行以下操作：
   + 在**來源類型**中，選取 **GitHub**。
   + 在 **Source Info** (來源資訊) 方塊中，按照以下格式輸入所需資訊，藉此存取來源：

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

     下列範例會下載名為 *complex-script* 的指令碼目錄。

     ```
     {
         "owner": "TestUser1",
         "repository": "SSMTestDocsRepo",
         "getOptions": "branch:myBranch",
         "path": "scripts/python/complex-script",
         "tokenInfo": "{{ssm-secure:myAccessTokenParam}}"
     }
     ```
**注意**  
只有當指令碼存放在 `master` 以外的分支中時，才需要 `"branch"`。  
若要使用存放庫中特定「遞交」**中的指令碼版本，請使用 `commitID` 與 `getOptions` 來代替 `branch`。例如：  
`"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",`
   + 針對 **Command Line** (命令列)，輸入指令碼執行參數。請見此處範例。

     ```
     mainFile.py argument-1 argument-2
     ```

     此範例會執行 `mainFile.py`，其稍後可執行 `complex-script` 目錄中的其他指令碼。
   + (選用) 針對 **Working Directory** (工作目錄)，輸入節點上的目錄名稱；您將下載指令碼至該目錄並予以執行。
   + (選用) 針對 **Execution Timeout (執行逾時)**，指定指令碼命令執行失敗前，系統的等待時間 (秒)。

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. 選擇**執行**。

## 使用 GitHub 從 執行 Python 指令碼 AWS CLI


1. 如果您尚未安裝並設定 AWS Command Line Interface (AWS CLI)，請安裝並設定 。

   如需相關資訊，請參閱[安裝或更新最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

1. 執行以下命令，即可從 GitHub 下載指令碼並予以執行。

   ```
   aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "instance-IDs" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"path_to_script_or_directory"}"],"commandLine":["commands_to_run"]}'
   ```

   請見此處範例。

   ```
   aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "i-02573cafcfEXAMPLE" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\":\"GitHubTestPublic\", \"path\": \"scripts/python/complex-script\"}"],"commandLine":["mainFile.py argument-1 argument-2 "]}'
   ```

   此範例會下載名為 `complex-script` 的指令碼目錄。`commandLine` 項目會執行 `mainFile.py`，其稍後可執行 `complex-script` 目錄中的其他指令碼。

# 將 Chef InSpec 設定檔與 Systems Manager 合規搭配使用


AWS Systems Manager 與 整合[https://www.chef.io/products/chef-inspec](https://www.chef.io/products/chef-inspec)。 Chef InSpec 是一種開放原始碼測試架構，可讓您建立人類可讀的設定檔，以存放在 GitHub或 Amazon Simple Storage Service (Amazon S3) 中。然後，您可以使用 Systems Manager 執行合規掃描，檢視合規與不合規的節點。*描述檔*能滿足適合運算環境的安全、合規或政策需求。例如，您能夠建立設定檔，在使用合規 ( AWS Systems Manager中的工具) 掃描節點時，執行下列檢查：
+ 檢查特定連接埠是開啟或關閉狀態。
+ 檢查特定應用程式是否正在執行。
+ 檢查是否已安裝特定套件。
+ 檢查特定屬性的 Windows 登錄機碼。

對於您透過 Systems Manager 管理的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體，您可以*僅*建立 InSpec 設定檔。不支援內部部署伺服器和虛擬機器 (VM)。以下 Chef InSpec 範例設定檔會檢查連接埠 22 是否為開啟狀態。

```
control 'Scan Port' do
impact 10.0
title 'Server: Configure the service port'
desc 'Always specify which port the SSH server should listen to.
Prevent unexpected settings.'
describe sshd_config do
its('Port') { should eq('22') }
end
end
```

InSpec 內含資源集合，能協助您快速編寫檢查作業並稽核控制項。為了以 Ruby 撰寫這些控制項，InSpec 會採用 [InSpec 特定領域語言 (DSL)](https://docs.chef.io/inspec/7.0/reference/glossary/#dsl)。此外，您也能使用由廣大 InSpec 使用者社群所建立的描述檔。例如，GitHub 上的 [DevSec chef-os-hardening](https://github.com/dev-sec/chef-os-hardening) 專案包含數十種設定檔，皆可保障節點的安全。您能夠撰寫設定檔，並將其存放在 GitHub 或 Amazon S3 中。

## 運作方式


以下程序將說明如何結合使用 InSpec 描述檔與合規：

1. 請找出要使用的預先定義 InSpec 描述檔，或建立自己的描述檔。您可以使用 GitHub 上[預先定義的設定檔](https://github.com/search?p=1&q=topic%3Ainspec+org%3Adev-sec&type=Repositories)，立刻開始操作。有關如何建立自有 InSpec 設定檔的資訊，請參閱 [ChefChef InSpec Profiles](https://www.inspec.io/docs/reference/profiles/)。

1. 在公有或私有 GitHub 儲存庫或 S3 儲存貯體中存放設定檔。

1. 請使用 Systems Manager 文件 (SSM 文件) `AWS-RunInspecChecks`，以透過 InSpec 描述檔執行合規操作。您可以使用 中的工具Run Command開始合規掃描 AWS Systems Manager，以進行隨需掃描，也可以使用 中的工具State Manager來排程定期合規掃描 AWS Systems Manager。

1. 利用合規 API 或合規主控台來辨識未合規的節點。

**注意**  
記下以下資訊。  
Chef 會採用節點上的用戶端處理設定檔。因此，您不需要另外安裝用戶端。Systems Manager 執行 SSM 文件 `AWS-RunInspecChecks` 時，系統即會檢查是否已安裝用戶端。若尚未安裝，Systems Manager 就會在掃描期間安裝 Chef 用戶端，然後在掃描完成後解除安裝該用戶端。
執行 SSM 文件 `AWS-RunInspecChecks` (如本主題所述) 會指派類型 `Custom:Inspec` 的合規項目到每個目標節點。若要指派此合規類型，文件會呼叫 [PutComplianceItems](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutComplianceItems.html) API 操作。

## 執行 InSpec 合規掃描


本節包含如何使用 Systems Manager 主控台和 AWS Command Line Interface () 執行 InSpec 合規掃描的相關資訊AWS CLI。主控台程序會說明如何設定 State Manager，以執行掃描作業。 AWS CLI 程序顯示如何設定 Run Command 以執行掃描。

### 使用 State Manager (主控台) 執行 InSpec 合規掃描


**使用 AWS Systems Manager 主控台State Manager對 執行 InSpec 合規掃描**

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

1. 在導覽窗格中，選擇 **State Manager**。

1. 選擇 **Create association (建立關聯)**。

1. 在 **Provide association details (提供關聯詳細資訊)** 區段中，輸入一個名稱。

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

1. 在 **Document version (文件版本)** 清單中，選擇 **Latest at runtime (執行時間的最新版本)**。

1. 在**參數**區段的**來源類型**清單中，選擇 **GitHub** 或 **S3**。

   若您選擇 **GitHub**，請在**來源資訊**欄位中輸入公有或私有 GitHub 儲存庫中的 InSpec 設定檔路徑。此處是由 Systems Manager 團隊提供的公有描述檔範例路徑，其來自以下位置：[https://github.com/awslabs/amazon-ssm/tree/master/Compliance/InSpec/PortCheck](https://github.com/awslabs/amazon-ssm/tree/master/Compliance/InSpec/PortCheck)。

   ```
   {"owner":"awslabs","repository":"amazon-ssm","path":"Compliance/InSpec/PortCheck","getOptions":"branch:master"}
   ```

   如果您選擇 **S3**，請在 **Source Info (來源資訊)** 欄位中，輸入 S3 儲存貯體中的 InSpec 描述檔的有效 URL。

   如需有關 Systems Manager 如何與 GitHub 及 Amazon Simple Storage Service (Amazon S3) 整合的詳細資訊，請參閱 [從 GitHub 執行指令碼](integration-remote-scripts.md)。

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

1. 在 **Specify schedule** (指定排程) 區段中，使用排程建置器選項來建立排程，以指定合規掃描的執行時間。

1. 對於**速率控制**：
   + 在**並行**中，指定可同時執行命令的受管節點數目或百分比。
**注意**  
如果您透過指定套用至受管節點的標籤或指定 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. 選擇 **Create Association (建立關聯)**。系統會隨即建立關聯，並自動執行合規掃描。

1. 請稍候幾分鐘，等待掃描作業完成。接著，在導覽窗格中選擇 **Compliance (合規)**。

1. 在 **Corresponding managed instances (對應的受管執行個體)** 中，尋找 **Compliance Type (合規類型)** 欄位是 **Custom:Inspec (Custom:Inspec)** 的節點。

1. 選擇節點 ID，藉此檢視未合規狀態的詳細資訊。

### 使用 Run Command (AWS CLI) 執行 InSpec 合規掃描


1. 如果您尚未安裝和設定 AWS Command Line Interface (AWS CLI)。

   如需相關資訊，請參閱[安裝或更新最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

1. 執行下列其中一個命令，即可從 GitHub 或 Amazon S3 執行 InSpec 設定檔。

    命令接受下列參數：
   + **sourceType**：GitHub 或 Amazon S3
   + **sourceInfo**：GitHub 或 S3 儲存貯體中的 InSpec 設定檔資料夾的 URL。該資料夾必須包含基本 InSpec 檔案 (\$1.yml)，以及所有相關的控制項 (\$1.rb)。

   **GitHub**

   ```
   aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"Inspec.yml_file"}"]}'
   ```

   請見此處範例。

   ```
   aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters '{"sourceType":["GitHub"],"getOptions":"branch:master","sourceInfo":["{\"owner\":\"awslabs\", \"repository\":\"amazon-ssm\", \"path\": \"Compliance/InSpec/PortCheck\"}"]}'
   ```

   **Amazon Simple Storage Service (Amazon S3)**

   ```
   aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/Inspec.yml_file\"}"]}'
   ```

   請見此處範例。

   ```
   aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/InSpec/PortCheck.yml\"}"]}' 
   ```

1. 執行下列命令，以檢視合規掃描摘要。

   ```
   aws ssm list-resource-compliance-summaries --filters Key=ComplianceType,Values=Custom:Inspec
   ```

1. 執行下列命令，以檢視不相容的節點的詳細資訊。

   ```
   aws ssm list-compliance-items --resource-ids node_ID --resource-type ManagedInstance --filters Key=DocumentName,Values=AWS-RunInspecChecks
   ```

# 與 ServiceNow 整合


ServiceNow 提供雲端服務管理系統，可建立和管理組織層級的工作流程，例如 IT 服務、票證系統和支援。 AWS Service Management Connector ServiceNow與 Systems Manager 整合，以佈建、管理和操作 AWS 來自 的資源ServiceNow。您可以使用 AWS Service Management Connector ServiceNow與 Automation、、Change ManagerIncident Manager 和 整合OpsCenter所有工具 AWS Systems Manager。

可以使用 ServiceNow 執行下列任務：
+ 從 Systems Manager 執行自動化手冊。
+ 從 Systems Manager OpsItems 檢視、更新及解決事件。
+ 透過 Systems Manager OpsCenter 檢視和管理營運項目，例如事件。
+ 從預先核准的變更範本的精選清單中，檢視並執行 Systems Manager 變更要求。
+ 與 Incident Manager 整合，以管理和解決涉及 AWS 託管應用程式的事件。

**注意**  
如需如何與 整合的資訊ServiceNow，請參閱[AWS 《Service Management Connector 管理員指南》中的設定服務整合](https://docs.aws.amazon.com/smc/latest/ag/sn-config-integ.html)。 *AWS *