本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Microsoft Azure 與 Security Hub 整合
完成先決條件任務後,您可以將 Microsoft Azure 環境設定為支援與 AWS Security Hub 整合。為了協助您執行此操作,Security Hub 主控台會產生針對您的組態自訂的設定指令碼。
產生設定指令碼
-
在 https:// 開啟 AWS Security Hub 主控台? https://console.aws.amazon.com/securityhub/advanced/homeregion=us-east-1.。
-
在導覽窗格中選擇整合。
-
選擇建立 Azure 連接器。
-
完成連接器組態 (租戶 ID、範圍和名稱),然後複製產生的設定指令碼。
若要執行指令碼,請使用 Azure CLI 並使用全域管理員帳戶進行驗證 (az login)。
當您執行指令碼時,它會執行一系列任務。下列各節說明指令碼執行的每個任務。如果您的組織限制指令碼執行,您可以使用此主題作為指南,手動執行這些任務。設定 Azure 環境之後,您可以設定 Security Hub 與 Azure 整合。
步驟 1-7 設定所有 Security Hub 功能使用的共用基礎:應用程式註冊、聯合登入資料、Azure 角色指派、Microsoft Graph 許可、Event Hub 和日誌匯出。步驟 8-10 為特定功能設定額外的 Azure 資源:
-
漏洞管理 (Amazon Inspector) – 在 Azure VMs 上設定 Azure Container Registry (ACR) 儲存庫事件匯出和系統指派的受管身分。
-
威脅偵測 (Microsoft Defender for Cloud) – 設定 Microsoft Defender for Cloud 以持續將安全提醒匯出至 Event Hub。
注意
單一 Azure 應用程式註冊會跨 AWS 安全服務共用。如果您也使用 Security Hub CSPM 或 Amazon Inspector for Azure,它們會使用相同的應用程式註冊。您不需要為每個 AWS 服務建立個別的註冊。
任務
步驟 1:註冊 Azure 應用程式
在 Microsoft Entra ID 中註冊新的應用程式。此應用程式做為 AWS 使用聯合登入資料對您的 Azure 環境進行身分驗證的身分。不需要用戶端秘密。
$az ad app create --display-name "AWSSecurityHubIntegration"
請注意來自輸出的應用程式 (用戶端) ID appId ( 屬性)。您將在 Security Hub 主控台中建立連接器時提供此值。
步驟 2:建立服務主體
為已註冊的應用程式建立服務主體。您可以使用 Azure 角色指派將許可授予服務委託人。服務主體會在您的 Azure 環境中執行動作。
$az ad sp create --idapplication-client-id
其中 application-client-id 是上一個步驟的應用程式 (用戶端) ID。
將註冊上的應用程式 ID URI 設定為 api://。 AWS 需要此識別符才能與應用程式交換聯合字符。如果沒有此 URI, 就 AWS 無法產生有效的聯合字符對象,而且每個功能都無法向 Azure 進行身分驗證。application-client-id
$az ad app update \ --idapplication-client-id\ --identifier-uris "api://application-client-id"
步驟 3:設定聯合身分憑證
在應用程式上設定聯合身分憑證,讓 在沒有用戶端秘密的情況下 AWS 進行身分驗證。這會在 AWS 和 Azure 之間建立 OIDC 信任。不會儲存任何長期秘密或登入資料。
Security Hub Azure 整合使用每個功能一個 AWS IAM 角色進行身分驗證:資源組態探索、漏洞管理和威脅偵測。為每個角色新增聯合身分憑證,讓每個功能都能向 Azure 進行身分驗證。 會在您 AWS 建立連接器時自動建立服務連結角色。Inspector2SSMFederationRole 用於 VM 掃描的 不是服務連結角色;您可以將其建立為 Amazon Inspector VM 掃描設定的一部分,如步驟 9 中所述。
| 功能 | 主旨 (IAM 角色 ARN) |
|---|---|
| 資源組態探索 (AWS Config) | arn:aws:iam:: |
| 漏洞管理 (檢查器) | arn:aws:iam:: |
| 漏洞管理 – VM 掃描 (Amazon EC2 Systems Manager) | arn:aws:iam:: |
| 威脅偵測 (Security Hub) | arn:aws:iam:: |
對上表中的每個主體執行以下命令一次,每次變更 name和 subject值。每個登入資料的 issuer和 audiences值都相同。
$az ad app federated-credential create \ --idapplication-client-id\ --parameters '{ "name": "credential-name", "issuer": "token-issuer-url", "subject": "service-linked-role-arn", "audiences": ["api://AzureADTokenExchange"], "description": "AWS federation for Security Hub Azure integration" }'
索引鍵值:
-
發行者 – 來自 IAM Outbound Identity Federation 的字符發行者 URL。這遵循格式
https://。uuid.tokens.sts.global.api.aws -
主旨 – 上表中的 IAM 角色 ARN。Amazon EC2 Systems Manager 角色中的
租用戶 ID是您的 Azure 租用戶 ID。 -
對象 –
api://AzureADTokenExchange(工作負載聯合身分的標準值)。 -
名稱 – 應用程式中唯一的任何名稱。
步驟 4:指派 RBAC 角色
將下列內建角色指派給服務主體:
-
讀取器 – 授予所有 Azure 資源的唯讀存取權,因此 Security Hub 可以探索和評估您的資源組態。在根範圍 () 指派此角色
/。 -
貢獻者 – 授予 Amazon Inspector 掃描 Azure 虛擬機器、函數應用程式和容器映像是否有漏洞所需的寫入存取權。在租用戶根管理群組範圍中指派此角色,這會將其傳播到租用戶中的每個訂閱。
-
Azure Event Hubs 資料接收者 – 允許 AWS 從 Event Hub 讀取事件。在租戶根管理群組範圍內指派此角色。
在根範圍內指派讀者
請務必在根範圍 (/) 而非租用戶根管理群組範圍指派讀取器角色。Security Hub 會讀取每個範圍的 Azure 角色指派資源,包括在租用戶根目錄範圍的指派。根管理群組的讀取器指派不會涵蓋範圍為 的指派/,因此如果沒有的話,這些讀取會失敗並出現授權錯誤,連接器可能會進入降級狀態。
貢獻者授予整個租用戶的寫入存取權
租用戶根管理群組範圍的貢獻者角色會授予對 Azure 資源的高權限、全租用戶的寫入存取權。Security Hub 需要此存取權,Amazon Inspector 才能掃描您的運算資源是否有漏洞。例如,Inspector 使用 Contributor 提供的虛擬機器執行命令許可。透過 Amazon EC2 Systems Manager Automation,Inspector 會在您的 Azure VMs 上執行命令,以安裝和操作 VM Scanner 代理程式。
$az role assignment create \ --assigneeapplication-client-id\ --role "Contributor" \ --scope "/providers/Microsoft.Management/managementGroups/tenant-id" $ az role assignment create \ --assigneeapplication-client-id\ --role "Azure Event Hubs Data Receiver" \ --scope "/providers/Microsoft.Management/managementGroups/tenant-id" $ az role assignment create \ --assigneeapplication-client-id\ --role "Reader" \ --scope "/"
根範圍指派需要提升存取權
在根範圍 (/) 指派角色需要提升存取權。如果角色指派失敗,請確認 Microsoft Entra ID > 屬性中 Azure 資源的存取管理設定為是。然後登出並重新登入以重新整理您的字符。
移除暫時根提升
啟用 Azure 資源的存取管理會在根範圍 (/) 授予登入管理員使用者存取管理員角色,該角色可以管理租用戶中每個訂閱和管理群組的存取權。加入完成後,請將 Azure 資源的存取管理設回 Microsoft Entra ID > 屬性中的否,儲存並登出,讓此提升不會保持作用中狀態。
步驟 5:設定 Microsoft Graph API 許可
將下列 Microsoft Graph API 許可 (應用程式類型) 授予應用程式,然後授予管理員同意:
-
Application.Read.All -
AuditLog.Read.All -
DelegatedPermissionGrant.Read.All -
Device.Read.All -
Group.Read.All -
GroupMember.Read.All -
GroupSettings.Read.All -
Organization.Read.All -
Policy.Read.All -
RoleManagement.Read.Directory -
User.Read.All -
UserAuthenticationMethod.Read.All
$az ad app permission admin-consent --idapplication-client-id
步驟 6:設定 Azure Event Hub
AWS Config 使用 Azure Event Hub 接收 Azure 環境中資源組態變更的近乎即時通知。設定指令碼會建立 Event Hub 基礎設施並將其標記為探索。Event Hub 探索使用以標籤為基礎的解析度:Security Hub 會使用 格式在 Event Hub 命名空間上尋找標籤AWSConfig-,以識別您整合的正確 Event Hub 執行個體。account-id-region
$az group create \ --name "aws-securityhub-integration" \ --locationevent-hub-region$ az eventhubs namespace create \ --resource-group "aws-securityhub-integration" \ --name "aws-securityhub-account-id" \ --locationevent-hub-region\ --sku Standard $ az eventhubs eventhub create \ --resource-group "aws-securityhub-integration" \ --namespace-name "aws-securityhub-account-id" \ --name "activitylog" \ --message-retention 3 \ --partition-count 4 $ az eventhubs eventhub consumer-group create \ --resource-group "aws-securityhub-integration" \ --namespace-name "aws-securityhub-account-id" \ --eventhub-name "activitylog" \ --name "AWSConfig"
建立 Event Hub 之後,標記要探索的命名空間,並指派資料接收者角色。使用 az tag update 搭配 ,--operation merge以便在命名空間上保留任何其他標籤 (例如步驟 10 的威脅偵測探索標籤):
$az tag update \ --resource-idnamespace-resource-id\ --operation merge \ --tags "AWSConfig-account-id-region=activitylog" $ az role assignment create \ --assigneeapplication-client-id\ --role "Azure Event Hubs Data Receiver" \ --scopenamespace-resource-id
注意
在標籤格式 中AWSConfig-,account-id-regionaccount-id 是您的 12 位數 AWS 帳戶 ID,而 region 是您要建立連接器 AWS 區域 的 (例如 us-east-1)。這些值會識別擁有此 Event Hub 整合的 AWS 帳戶 和 區域。
金鑰組態:
-
命名空間 SKU – 標準 (取用者群組需要)。
-
Event Hub 名稱 –
activitylog。 -
取用者群組 –
AWSConfig。 -
標籤 –
AWSConfig-值為account-id-regionactivitylog。此標籤可讓 自動 AWS Config 探索 Event Hub。 -
角色指派 – 命名空間上的 Azure Event Hubs Data Receiver。
對於威脅偵測,設定也會建立具有AWSSecurityHub取用者群組的個別 defender-alerts Event Hub,並以直接AWSSecurityHub-識別 Security Hub 讀取的格式新增第二個探索標籤。如需詳細資訊,請參閱步驟 10。account-id-region
步驟 7:設定活動日誌和 Entra ID 稽核日誌匯出
設定 Azure 將活動日誌和 Microsoft Entra ID 日誌匯出至 Event Hub。
活動日誌匯出:
在每個訂閱上設定診斷設定,將活動日誌匯出至 Event Hub。設定指令碼會自動為所有受監控的訂閱設定此項目。活動日誌會擷取訂閱層級的活動,包括角色指派和資源變更。
Microsoft Entra ID 日誌匯出:
在 Microsoft Entra ID 上設定診斷設定,將日誌匯出至相同的 Event Hub。導覽至 Microsoft Entra ID > 監控 > 診斷設定 > 新增診斷設定。啟用 AuditLogs、SignInLogs 和 NonInteractiveUserSignInLogs,並將其路由到您的 Event Hub。
步驟 8:設定 Azure Container Registry 匯出
Security Hub 透過 Amazon Inspector 掃描 Azure Container Registry (ACR) 容器映像是否有漏洞。若要這樣做,Inspector 需要將 ACR 儲存庫事件匯出至與登錄檔位於相同 Azure 區域中的 Event Hub。如需 ACR 匯出設定,請參閱《Amazon Inspector 使用者指南》中的設定 Amazon Inspector 以與 Microsoft Azure 整合。 Amazon Inspector
步驟 9:在 Azure VMs 上啟用受管身分
Security Hub 透過 Inspector 掃描 Azure 虛擬機器。每個目標 Azure VM 必須啟用系統指派的受管身分。若要將此身分自動新增至您的 VMs,請在租用戶根管理群組範圍中指派兩個使用 modify效果的 Azure 政策:
-
對於沒有身分的 VM,政策會新增系統指派的受管身分。
-
對於只有使用者指派身分的 VM,政策會新增系統指派的受管身分,同時保留現有的使用者指派身分。
已有系統指派受管身分的 VM 保持不變。由於政策使用 modify效果,因此它們會調整身分就位,而不會重新部署 VM。
Inspector 使用 Amazon EC2 Systems Manager Automation 在 Azure VM 上部署和管理 Inspector VMs Scanner 代理程式。這需要額外 AWS的端設定,包括 Microsoft Entra ID 的 IAM OIDC 身分提供者和數個 IAM 角色。如需完整的 VM 掃描設定,請參閱《Amazon Inspector 使用者指南》中的設定 Amazon Inspector 與 Microsoft Azure 整合。 Amazon Inspector
步驟 10:匯出 Microsoft Defender 以進行雲端提醒
Security Hub 擷取 Microsoft Defender for Cloud 威脅偵測警示,並將其映射至開放網路安全結構描述架構 (OCSF) 格式。若要傳遞這些提醒,請建立專用 defender-alerts Event Hub 並設定 Microsoft Defender for Cloud,以持續將安全提醒匯出至其中。
在步驟 6 的 Event Hub 命名空間中,建立 defender-alerts Event Hub、Security Hub 要讀取的AWSSecurityHub取用者群組,以及具有 Microsoft Defender for Cloud 用來傳送提醒之傳送許可的中樞範圍共用存取簽章 (SAS) 授權規則:
$az eventhubs eventhub create \ --resource-group "aws-securityhub-integration" \ --namespace-name "aws-securityhub-account-id" \ --name "defender-alerts" \ --message-retention 3 \ --partition-count 4 $ az eventhubs eventhub consumer-group create \ --resource-group "aws-securityhub-integration" \ --namespace-name "aws-securityhub-account-id" \ --eventhub-name "defender-alerts" \ --name "AWSSecurityHub" $ az eventhubs eventhub authorization-rule create \ --resource-group "aws-securityhub-integration" \ --namespace-name "aws-securityhub-account-id" \ --eventhub-name "defender-alerts" \ --name "DefenderExportSend" \ --rights Send
然後,將第二個探索標籤合併到命名空間,以便 Security Hub 探索defender-alerts中樞。使用 az tag update搭配 ,--operation merge以便保留步驟 6 的AWSConfig探索標籤:
$az tag update \ --resource-idnamespace-resource-id\ --operation merge \ --tags "AWSSecurityHub-account-id-region=defender-alerts"
最後,設定 Microsoft Defender for Cloud 將安全提醒資料類型持續匯出至 defender-alerts Event Hub。在 Azure 入口網站中,前往 Microsoft Defender for Cloud > Environment 設定,選取訂閱,選擇持續匯出 > Event Hub,選取安全性提醒,然後選擇 defender-alerts Event Hub 和 DefenderExportSend SAS 規則。
注意
如果您以程式設計方式 (透過 Azure Resource Manager API、ARM 範本或 Azure 政策) 而不是在入口網站中設定連續匯出,請使用 DefenderExportSend SAS 連線字串來驗證 Event Hub 的匯出。az eventhubs eventhub authorization-rule keys list 使用 擷取DefenderExportSend規則的 ,並將其設定為匯出動作的連線字串。如需詳細資訊,請參閱 Microsoft Azure 文件中的設定持續匯出
注意
完成這些任務後,請等待約 15-30 分鐘讓組態生效。然後,在 Security Hub 中建立連接器之前,請確認您的 Event Hub 正在接收訊息 (IncomingMessages 指標)。