適用於容器的 Defender 架構

Microsoft Defender for Containers 利用多重連接路徑收集安全訊號,並在容器登錄庫與 Kubernetes 環境中提供保護。 所需的連接性取決於啟用的功能以及容器運行的環境。

實作細節在 Azure Kubernetes Service (AKS)、Amazon Elastic Kubernetes Service(EKS)、Google Kubernetes Engine (GKE)及 Arc 啟用的 Kubernetes 叢集間有所不同。

進一步了解 Defender for Containers 的網路存取與許可權參考資料 中的網路需求、權限及支援的配置。

能力模型概述

下表說明了 Defender for Containers 關鍵功能的實作方式,以及是否需要叢集內元件:

Capability 無代理程式 需要叢集內的元件
影像脆弱性評估 No
Kubernetes 態勢評估 No
執行時威脅偵測 No
控制平面威脅偵測 No

與容器登記處的關聯

當影像推送到支援的登錄檔時,會根據登錄檔設定定期觸發影像漏洞評估。 適用於雲端的 Defender會分析映像的中繼資料與弱點評估所需的映像層。 在支援的情境下,漏洞評估結果可在不修改原始容器映像的情況下,直接發佈回登錄檔。 這些功能不需要在 Kubernetes 叢集中部署任何元件。

連接 Kubernetes 叢集

適用於雲端的 Microsoft Defender 連接 Kubernetes API 端點以發現叢集、收集組態資料,並執行態勢與風險分析。 根據啟用的功能與環境,這種連接可能需要對叢集元資料的讀取權限,且在某些情況下,需有限的寫入操作來配置所需的存取綁定或擴充功能。

從 Kubernetes 叢集傳送的執行時資料

Kubernetes 叢集會將工作節點的執行時安全資料傳送到 適用於雲端的 Microsoft Defender 的後端。 這些資料由 Defender for Containers 叢集中執行的元件收集並送出分析。 此連接路徑支援執行時威脅偵測及其他感測器相關功能。

與雲端供應商 API 的連接

適用於雲端的 Microsoft Defender 連接雲端供應商的 API 以發現資源並執行安全分析,作為雲端環境連接流程的一部分。 當你將雲端環境連接到 適用於雲端的 Microsoft Defender 時,這條連接路徑就會建立。

從雲端基礎設施傳送的 Kubernetes 稽核日誌

雲端基礎架構會將 Kubernetes 稽核日誌傳送給 適用於雲端的 Microsoft Defender,以便控制平面威脅偵測與安全分析。 收集與傳送稽核日誌的方法取決於雲端供應商及 Kubernetes 叢集運行的環境。

此架構也能偵測曝險相關事件,例如 偵測到已暴露的 Kubernetes 服務;當建立或更新類型為 LoadBalancer 的 Kubernetes Service,並將工作負載公開暴露時,就會偵測到此事件。 當網路暴露是無意中或驗證控制薄弱或缺失時,這些訊號通常會被優先處理。

代理與私人連接支援

Defender for Containers 元件支援通過已配置的代理和私有連接配置進行出站連接。

每個 Kubernetes 環境的架構

架構元件

當 適用於雲端的 Defender 保護託管在 Azure Kubernetes Service 中的叢集時,它能透過 Azure 基礎設施原生收集 Kubernetes 稽核日誌資料,無需額外代理或設定。 要獲得 Microsoft Defender for Containers 所提供的完整保護,你需要以下元件:

  • Defender 感測器: 一套輕量級守護程序組,部署於 AKS 節點,利用 eBPF 技術收集執行時遙測(Kubernetes 事件、程序及網路資料)。 它會安全地將遙測資料傳送給 適用於雲端的 Defender,以進行執行時威脅防護。 感測器會註冊到 Log Analytics 工作區,並作為資料管線。 不過,稽核記錄資料不會儲存在 Log Analytics 工作區中。 Defender 感測器會以 AKS 安全性設定檔的形式部署,並原生整合至 AKS 資源提供者 (RP)。

備註

當你在 AKS 叢集上設定 Defender 感測器時,會觸發一個對帳程序。 此過程是 Defender for Containers 計畫的一部分,且是預期行為。

  • 適用於 Kubernetes 的 Azure 原則:擴充開放原始碼 Gatekeeper v3 的 Pod,並註冊為 Kubernetes 許可控制的 Webhook。 您可透過此 Pod,以集中且一致的方式,在叢集上大規模套用強制動作與保護。 在 Kubernetes 中部署的 Azure 原則 pod 是作為 AKS 的附加元件部署的,且只需在叢集中的一個節點上安裝即可。 它提供強制配置規則的選項。 了解更多關於 Kubernetes 工作負載保護 以及 Azure 原則 for Kubernetes
  • ACR 整合:對 Azure Container Registry 進行推送觸發與定期映像掃描,提供弱點評估且無需額外元件。
  • 免代理發現: 使用 Azure 原生功能發現並評估 Kubernetes 叢集配置,提供可視化而無需任何代理。
  • 機器無代理程式掃描:定期對 Kubernetes 節點做硬碟快照,進行帶外且深入的作業系統配置和檔案系統分析。 這個功能不需要安裝代理程式或網路連線,也不會影響機器效能。
  • Microsoft XDR 整合: 與 Microsoft 擴充偵測與應變平台整合,實現統一安全作業與事件回應。

此圖例顯示適用於容器的 Microsoft Defender、Azure Kubernetes Service 及 Azure 原則之間互動的高層架構示意圖。

備註

這些元件不需要對叢集進行入站連線,並使用 Azure 的原生安全基礎架構。 所有元件皆僅使用出站連線(無需入站存取)。

Defender 感應器元件詳細資料

Pod 名稱 命名空間 種類 簡短描述 能力 資源限制 必要的輸出
microsoft-defender-collector-ds-* kube系統 DaemonSet 利用 eBPF 技術從節點收集執行時遙測(Kubernetes 事件、程序及網路資料),並安全地傳送至 適用於雲端的 Defender。 SYS_ADMIN,
SYS_RESOURCE,
SYS_PTRACE
記憶體:296Mi

CPU:360m
No
microsoft-defender-collector-misc-* kube系統 Deployment 收集叢集層級的庫存與安全事件,這些事件不綁定於特定節點。 N/A 記憶體:64Mi

中央處理器:60m
No
microsoft-defender-publisher-ds-* kube系統 DaemonSet 將收集的遙測資料發布至 Microsoft Defender for Containers 後端服務,供處理與分析。 N/A 記憶體:200Mi

中央處理器:60m
https 443

深入了解輸出存取必要條件

* 你無法設定資源限制。 了解更多關於 Kubernetes 資源限制的資訊。

Azure 中的 Kubernetes 無代理程式探索是如何運作的?

探索過程中會定期使用拍攝的快照。

權限架構的圖表。

當您啟用 Kubernetes 延伸模組的無代理程式探索時,會發生下列流程:

  • 創作:
    • 如果你啟用 Defender CSPM 的擴充功能,適用於雲端的 Defender 會在你的環境中建立一個名為 CloudPosture/securityOperator/DefenderCSPMSecurityOperator的身份。
    • 如果你啟用了 Defender for Containers 的擴充功能,適用於雲端的 Defender 會在你的環境中建立一個名為 CloudPosture/securityOperator/DefenderForContainersSecurityOperator. 的身份。
  • Assign: 適用於雲端的 Defender 在訂閱範圍內為該身份指派一個名為 Kubernetes Agentless Operator 的內建角色。 該角色包含以下權限:
    • AKS 讀取 (Microsoft.ContainerService/managedClusters/read)
    • 具有下列權限的 AKS 信任存取:
      • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/write
      • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/read
      • Microsoft/ContainerService/managedClusters/trustedAccessRoleBindings/delete 了解更多關於 AKS Trusted Access
  • Discover: 利用系統分配的身份,適用於雲端的 Defender 透過對 AKS 的 API 伺服器進行 API 呼叫,發現環境中的 AKS 叢集。
  • 繫結:在探索到 AKS 叢集後,適用於雲端的 Defender 會建立一個 AKS 繫結作業,方式是將所建立的身分識別與 Kubernetes 的 ClusterRoleBindingClusterRole 建立一個 。 透過 API,ClusterRole 是可見的,並賦予 適用於雲端的 Defender 對叢集內資料平面的讀取權限。

備註

複製的快照會保持在與叢集相同的區域。