• 2026 年 4 月 30 日之後將不再提供 AWS Systems Manager CloudWatch Dashboard。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板,就像現在一樣。如需詳細資訊,請參閱 Amazon CloudWatch Dashboard 文件。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Azure 先決條件
完成 Azure 環境中的下列步驟。您需要 AWS 先決條件中的下列值:
-
發行者 URL — 上一節的 AWS OIDC 發行者 URL。
-
主旨 — Systems Manager Azure 聯合角色的 ARN,例如:
arn:aws:iam::ACCOUNT_ID:role/service-role/SSM-AzureRole-connector-name-id8
設定聯合的 Azure 端
-
建立 Azure Entra ID 應用程式
在 Microsoft Entra ID (先前稱為 Azure Active Directory) 中建立應用程式註冊。記下輸出中的應用程式 (用戶端) ID。
az ad app create --display-name "AWSSSMAzureIntegration" --query appId -
為應用程式建立服務主體
建立與應用程式相關聯的服務主體。請注意輸出中的服務主體 ID。
az ad sp create --idAPPLICATION_ID -
新增聯合身分憑證
將聯合身分憑證新增至信任 AWS OIDC 發行者的應用程式。這可讓 Azure 接受由 AWS 代表 Systems Manager Azure 聯合角色發行的權杖 (請參閱 Azure 聯合角色)。
az ad app federated-credential create \ --idAPPLICATION_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 聯合角色)。
-
-
建立 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 -
將 VM Run Command 角色指派給服務主體
將自訂角色指派給您在步驟 2 中建立的服務主體。範圍決定 Systems Manager 可以管理哪些 Azure 資源。
對於訂閱層級範圍 (每個訂閱重複):
az role assignment create \ --assigneeSERVICE_PRINCIPAL_ID\ --role "AWSSSMVMExtensionRole-SUBSCRIPTION_ID" \ --scope "/subscriptions/SUBSCRIPTION_ID"對於管理群組層級範圍:
az role assignment create \ --assigneeSERVICE_PRINCIPAL_ID\ --role "AWSSSMVMExtensionRole-TENANT_ID" \ --scope "/providers/Microsoft.Management/managementGroups/TENANT_ID" -
為 建立 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 --idCONFIG_APPLICATION_ID -
新增 的聯合身分憑證 AWS Config
將聯合身分憑證新增至 AWS Config 應用程式。主旨是 AWS Config 服務連結角色 ARN (在後續步驟中建立 Config 連接器時自動建立)。
az ad app federated-credential create \ --idCONFIG_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\"] }" -
將 Reader 角色指派給 AWS Config 服務主體
將 Azure 內建讀取器角色指派給租用戶 (管理群組) 層級 AWS Config 的服務主體。這可讓 AWS Config 探索 Azure 資源。
az role assignment create \ --assigneeCONFIG_SERVICE_PRINCIPAL_ID\ --role "acdd72a7-3385-48ef-bd42-f606fba81ae7" \ --scope "/providers/Microsoft.Management/managementGroups/TENANT_ID" -
建立適用於 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-REGIONHOSTING_SUBSCRIPTION_ID取代為將託管 Event Hub 資源的 Azure 訂閱。 -
將 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 \ --assigneeCONFIG_SERVICE_PRINCIPAL_ID\ --role "a638d3c7-ab3a-418d-83e6-5f17a39d4fde" \ --scope "$EVENT_HUB_ID" -
設定活動日誌匯出至 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