適用於容器的 Defender 架構

適用於容器的 Defender 針對每個 Kubernetes 環境進行了不同的設計,無論它們是否在下列環境中執行:

  • Azure Kubernetes Service (AKS) - Microsoft 受管理的服務,可用來開發、部署和管理容器化應用程式。

  • 連結的 Amazon Web Services (AWS) 帳戶中的 Amazon Elastic Kubernetes Service (EKS) - Amazon 在 AWS 上執行 Kubernetes 的受管理的服務,不須安裝、操作和維護您自己的 Kubernetes 控制平面或節點。

  • 連線的 Google Cloud Platform (GCP) 專案中的 Google Kubernetes Engine (GKE) - Google 的受控環境,用於使用 GCP 基礎結構部署、管理和調整應用程式。

  • 非受控 Kubernetes 散發 (使用已啟用 Azure Arc 的 Kubernetes) - 裝載於內部部署或 IaaS 上的雲端原生計算基金會 (CNCF) 認證 Kubernetes 叢集。

注意

適用於容器的 Defender 支援已啟用 Arc 的 Kubernetes 叢集 (AWS EKS 和 GCP GKE) 是預覽功能。

若要保護您的 Kubernetes 容器,適用於容器的 Defender 會接收及分析:

  • 來自 API 伺服器中的稽核記錄和安全性事件
  • 來自控制平面中的叢集設定資訊
  • 來自 Azure 原則中的工作負載設定
  • 來自節點層級中的安全性訊號和事件

若要深入了解實作詳細數據,例如支援的操作系統、功能可用性、輸出 Proxy,請參閱 適用於容器的 Defender 功能可用性

每個 Kubernetes 環境的架構

適用於雲端的 Defender 和 AKS 叢集的架構圖

當適用於雲端的 Defender 保護裝載在 Azure Kubernetes Service 中的叢集時,收集稽核記錄資料是無需代理程式的,而是透過 Azure 基礎結構自動進行收集,且無需額外的成本或設定考量。 這些是獲得適用於容器的 Microsoft Defender 所提供的全面保護所需的元件:

  • Defender 感測器:部署在每個節點上的 DaemonSet、使用 eBPF 技術從主機收集訊號,並提供運行時間保護。 感測器會向Log Analytics工作區註冊,並當做數據管線使用。 不過,稽核記錄資料不會儲存在 Log Analytics 工作區中。 Defender 感測器會部署為 AKS 安全性配置檔。
  • 適用於 Kubernetes 的 Azure 原則:擴充開放原始碼 Gatekeeper v3 的 Pod,並註冊為 Kubernetes 許可控制的 Web 勾點,讓您能夠以集中式、一致的方式在叢集上套用大規模強制執行,並保護叢集。 適用於 Kubernetes 的 Azure 原則的 Pod 會作為 AKS 附加元件來進行部署。 它只會安裝在叢集中的一個節點上。 如需詳細資訊,請參閱保護 Kubernetes 工作負載瞭解 Kubernetes 叢集的 Azure 原則。

適用於容器的 Microsoft Defender、Azure Kubernetes Service 和 Azure 原則 之間互動的高階架構圖表。

Defender 感測器元件詳細數據

Pod 名稱 Namespace 種類 簡短描述 Capabilities 資源限制 所需的輸出
microsoft-defender-collector-ds-* kube-system DaemonSet 一組專注於從 Kubernetes 環境收集清查和安全性事件的容器。 SYS_ADMIN,
SYS_RESOURCE,
SYS_PTRACE
記憶體:296Mi

CPU:360m
No
microsoft-defender-collector-misc-* kube-system [部署] 一組容器,專注於從未繫結至特定節點的 Kubernetes 環境收集清查和安全性事件。 N/A memory:64Mi

CPU:60m
No
microsoft-defender-publisher-ds-* kube-system DaemonSet 將收集的資料發佈到適用於容器的 Microsoft Defender 後端服務,資料將在其中進行處理和分析。 N/A memory:200Mi

CPU:60m
Https 443

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

* 無法設定資源限制;深入瞭解 Kubernetes 資源限制

在 Azure 中適用於 Kubernetes 的無代理程式探索如何運作?

探索流程是基於定期擷取的快照集:

許可權架構的圖表。

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

  • 建立

    • 如果從 Defender CSPM 啟用擴充功能,適用於雲端的 Defender 會在稱為CloudPosture/securityOperator/DefenderCSPMSecurityOperator的客戶環境中建立身分識別。
    • 如果擴充功能是從適用於容器的Defender啟用,適用於雲端的 Defender會在稱為CloudPosture/securityOperator/DefenderForContainersSecurityOperator的客戶環境中建立身分識別。
  • 指派:適用於雲端的 Defender 將稱為 Kubernetes 無代理程式操作員的內建角色指派給訂用帳戶範圍上的該身分識別。 該角色包含下列權限:

    • AKS 讀取 (Microsoft.ContainerService/managedClusters/read)
    • 具有下列權限的 AKS 受信任存取權:
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/write
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/read
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/delete

    深入瞭解 AKS 信任存取

  • 探索:透過使用系統指派的身分識別,適用於雲端的 Defender 會使用 API 呼叫 AKS 的 API 伺服器,以在您的環境中執行 AKS 叢集探索。

  • 系結:在探索 AKS 叢集時,適用於雲端的 Defender 建立的身分識別與 Kubernetes ClusterRoleaks:trustedaccessrole:defender-containers:microsoft-defender-operator 之間建立 ClusterRoleBinding ,以執行 AKS 系結作業。 可透過 API 顯示,ClusterRole並提供叢集內 適用於雲端的 Defender 數據平面讀取許可權。

注意

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

下一步

在此概觀中,您已瞭解 適用於雲端的 Microsoft Defender 中的容器安全性架構。 若要啟用方案,請參閱: