

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

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

# Azure 先決條件
<a name="cloud-connector-prereqs-azure"></a>

完成 Azure 環境中的下列步驟。您需要 AWS 先決條件中的下列值：
+ **發行者 URL** — 上一節的 AWS OIDC 發行者 URL。
+ **主旨** — Systems Manager Azure 聯合角色的 ARN，例如： `arn:aws:iam::{{ACCOUNT_ID}}:role/service-role/SSM-AzureRole-{{connector-name}}-{{id8}}`

**設定聯合的 Azure 端**

1. 

**建立 Azure Entra ID 應用程式**

   在 Microsoft Entra ID （先前稱為 Azure Active Directory) 中建立應用程式註冊。記下輸出中的*應用程式 （用戶端） ID*。

   ```
   az ad app create --display-name "{{AWSSSMAzureIntegration}}" --query appId
   ```

1. 

**為應用程式建立服務主體**

   建立與應用程式相關聯的服務主體。請注意輸出中的服務主體 *ID*。

   ```
   az ad sp create --id {{APPLICATION_ID}}
   ```

1. 

**新增聯合身分憑證**

   將聯合身分憑證新增至信任 AWS OIDC 發行者的應用程式。這可讓 Azure 接受由 AWS 代表 Systems Manager Azure 聯合角色發行的權杖 （請參閱 [Azure 聯合角色](cloud-connector-azure-federation-role.md))。

   ```
   az ad app federated-credential create \
       --id {{APPLICATION_ID}} \
       --parameters "{
           \"name\": \"aws-ssm-federation\",
           \"issuer\": \"{{AWS_OIDC_ISSUER_URL}}\",
           \"subject\": \"arn:aws:iam::{{ACCOUNT_ID}}:role/service-role/SSM-AzureRole-{{CONNECTOR_NAME}}-{{ID8}}\",
           \"audiences\": [\"api://AzureADTokenExchange\"]
       }"
   ```

   取代：
   + {{APPLICATION\_ID}} — 步驟 1 中的應用程式 （用戶端） ID。
   + {{AWS\_OIDC\_ISSUER\_URL}} — OIDC AWS 發行者 URL （例如 `https://a1667813-695b-5415-b0f7-d473d62bb123.tokens.sts.global.api.aws`)。
   + {{ACCOUNT\_ID}} — 您的 AWS 帳戶 ID。
   + {{CONNECTOR\_NAME}} — Cloud Connector 的已淨化顯示名稱。
   + {{ID8}} — 指派給 Azure 聯合角色之 UUID 的前八個字元。您可以在 中建立 Cloud Connector 之後，在角色名稱中找到， AWS 管理主控台或在手動建立角色時指定它 （請參閱 [Azure 聯合角色](cloud-connector-azure-federation-role.md))。

1. 

**建立 VM Run Command 自訂角色**

   建立自訂角色，授予 Systems Manager 在 Azure VMs 上執行命令所需的最低許可。將 {{SUBSCRIPTION\_ID}} 取代為您要管理的 Azure 訂閱 ID。

   ```
   az role definition create --role-definition '{
       "Name": "AWSSSMVMExtensionRole-{{SUBSCRIPTION_ID}}",
       "Description": "Allows AWS Systems Manager to run commands on Azure VMs",
       "Actions": [
           "Microsoft.Compute/virtualMachines/read",
           "Microsoft.Compute/virtualMachines/runCommand/action",
           "Microsoft.Compute/virtualMachines/runCommands/*"
       ],
       "AssignableScopes": [
           "/subscriptions/{{SUBSCRIPTION_ID}}"
       ]
   }'
   ```

   對於租戶層級範圍 （租戶中的所有訂閱），請改用管理群組範圍：

   ```
   az role definition create --role-definition '{
       "Name": "AWSSSMVMExtensionRole-{{TENANT_ID}}",
       "Description": "Allows AWS Systems Manager to run commands on Azure VMs",
       "Actions": [
           "Microsoft.Compute/virtualMachines/read",
           "Microsoft.Compute/virtualMachines/runCommand/action",
           "Microsoft.Compute/virtualMachines/runCommands/*"
       ],
       "AssignableScopes": [
           "/providers/Microsoft.Management/managementGroups/{{TENANT_ID}}"
       ]
   }'
   ```

   若要驗證已建立角色：

   ```
   az role definition list --name "AWSSSMVMExtensionRole-{{SUBSCRIPTION_ID}}" --output table
   ```

1. 

**將 VM Run Command 角色指派給服務主體**

   將自訂角色指派給您在步驟 2 中建立的服務主體。範圍決定 Systems Manager 可以管理哪些 Azure 資源。

   對於訂閱層級範圍 （每個訂閱重複）：

   ```
   az role assignment create \
       --assignee {{SERVICE_PRINCIPAL_ID}} \
       --role "AWSSSMVMExtensionRole-{{SUBSCRIPTION_ID}}" \
       --scope "/subscriptions/{{SUBSCRIPTION_ID}}"
   ```

   對於管理群組層級範圍：

   ```
   az role assignment create \
       --assignee {{SERVICE_PRINCIPAL_ID}} \
       --role "AWSSSMVMExtensionRole-{{TENANT_ID}}" \
       --scope "/providers/Microsoft.Management/managementGroups/{{TENANT_ID}}"
   ```

1. 

**為 建立 Azure Entra ID 應用程式 AWS Config**

   為 建立單獨的應用程式註冊， AWS Config 以便在記錄 Azure 資源狀態時使用。記下輸出中的*應用程式 （用戶端） ID*。

   ```
   az ad app create \
       --display-name "AWSConfigAzureIntegration-{{ACCOUNT_ID}}-{{TENANT_ID_PREFIX}}" \
       --query appId
   ```

   為 AWS Config 應用程式建立服務主體：

   ```
   az ad sp create --id {{CONFIG_APPLICATION_ID}}
   ```

1. 

**新增 的聯合身分憑證 AWS Config**

   將聯合身分憑證新增至 AWS Config 應用程式。主旨是 AWS Config 服務連結角色 ARN （在後續步驟中建立 Config 連接器時自動建立）。

   ```
   az ad app federated-credential create \
       --id {{CONFIG_APPLICATION_ID}} \
       --parameters "{
           \"name\": \"aws-config-federation\",
           \"issuer\": \"{{AWS_OIDC_ISSUER_URL}}\",
           \"subject\": \"arn:aws:iam::{{ACCOUNT_ID}}:role/aws-service-role/thirdparty.config.amazonaws.com/AWSServiceRoleForConfigThirdParty\",
           \"audiences\": [\"api://AzureADTokenExchange\"]
       }"
   ```

1. 

**將 Reader 角色指派給 AWS Config 服務主體**

   將 Azure 內建讀取器角色指派給租用戶 （管理群組） 層級 AWS Config 的服務主體。這可讓 AWS Config 探索 Azure 資源。

   ```
   az role assignment create \
       --assignee {{CONFIG_SERVICE_PRINCIPAL_ID}} \
       --role "acdd72a7-3385-48ef-bd42-f606fba81ae7" \
       --scope "/providers/Microsoft.Management/managementGroups/{{TENANT_ID}}"
   ```

1. 

**建立適用於 Azure 活動日誌串流的 Event Hub**

   AWS Config 使用 Azure Event Hub 來接收指出資源變更的活動日誌事件。在其中一個 Azure 訂閱中建立 Event Hub 命名空間、中樞和取用者群組。

   ```
   # Create a resource group for the Event Hub
   az group create \
       --subscription "{{HOSTING_SUBSCRIPTION_ID}}" \
       --name "AWSConfigAzureResources" \
       --location eastus
   
   # Create an Event Hub namespace with a discovery tag
   az eventhubs namespace create \
       --subscription "{{HOSTING_SUBSCRIPTION_ID}}" \
       --resource-group "AWSConfigAzureResources" \
       --name "{{EVENT_HUB_NAMESPACE}}" \
       --location eastus \
       --sku Standard \
       --tags "AWSConfig-{{ACCOUNT_ID}}-{{AWS_REGION}}=activitylog"
   
   # Create the Event Hub
   az eventhubs eventhub create \
       --subscription "{{HOSTING_SUBSCRIPTION_ID}}" \
       --resource-group "AWSConfigAzureResources" \
       --namespace-name "{{EVENT_HUB_NAMESPACE}}" \
       --name "activitylog" \
       --partition-count 4
   
   # Create the consumer group for AWS Config
   az eventhubs eventhub consumer-group create \
       --subscription "{{HOSTING_SUBSCRIPTION_ID}}" \
       --resource-group "AWSConfigAzureResources" \
       --namespace-name "{{EVENT_HUB_NAMESPACE}}" \
       --eventhub-name "activitylog" \
       --name "AWSConfig"
   ```

   將 {{EVENT\_HUB\_NAMESPACE}} 取代為全域唯一名稱 （例如 `awsconfig-{{ACCOUNT_ID}}-{{REGION}}`)，並將 {{HOSTING\_SUBSCRIPTION\_ID}} 取代為將託管 Event Hub 資源的 Azure 訂閱。

1. 

**將 Event Hubs Data Receiver 角色指派給 AWS Config 服務主體**

   允許 AWS Config 服務主體從 Event Hub 讀取：

   ```
   EVENT_HUB_ID=$(az eventhubs eventhub show \
       --subscription "{{HOSTING_SUBSCRIPTION_ID}}" \
       --resource-group "AWSConfigAzureResources" \
       --namespace-name "{{EVENT_HUB_NAMESPACE}}" \
       --name "activitylog" \
       --query id \
       -o tsv)
   
   az role assignment create \
       --assignee {{CONFIG_SERVICE_PRINCIPAL_ID}} \
       --role "a638d3c7-ab3a-418d-83e6-5f17a39d4fde" \
       --scope "$EVENT_HUB_ID"
   ```

1. 

**設定活動日誌匯出至 Event Hub**

   針對您要監控的每個 Azure AWS Config 訂閱，建立診斷設定，將活動日誌事件匯出至 Event Hub：

   ```
   az provider register \
       --namespace Microsoft.Insights \
       --subscription "{{SUBSCRIPTION_ID}}"
   
   az rest --method PUT \
       --url "https://management.azure.com/subscriptions/{{SUBSCRIPTION_ID}}/providers/Microsoft.Insights/diagnosticSettings/{{EVENT_HUB_NAMESPACE}}?api-version=2021-05-01-preview" \
       --body "{
           \"properties\": {
               \"eventHubAuthorizationRuleId\": \"/subscriptions/{{HOSTING_SUBSCRIPTION_ID}}/resourceGroups/AWSConfigAzureResources/providers/Microsoft.EventHub/namespaces/{{EVENT_HUB_NAMESPACE}}/authorizationRules/RootManageSharedAccessKey\",
               \"eventHubName\": \"activitylog\",
               \"logs\": [{\"category\": \"Administrative\", \"enabled\": true}]
           }
       }"
   ```

   針對您要監控的每個訂閱重複此步驟。

完成 Azure 設定後，請注意下列值。您在建立 Cloud Connector 時需要它們：
+ **租戶 ID** — Azure AD 目錄 （租戶） ID。
+ **SSM 應用程式 （用戶端） ID** — Systems Manager Azure AD 應用程式的應用程式 ID （步驟 1)。
+ **Config 應用程式 （用戶端） ID** — AWS Config Azure AD 應用程式的應用程式 ID （步驟 6)。
+ **訂閱 IDs** — 您要管理的 Azure 訂閱。
+ **Event Hub 命名空間主機名稱** — Event Hub 命名空間的完整主機名稱 （例如 `{{EVENT_HUB_NAMESPACE}}.servicebus.windows.net`)。