共用方式為


適用於容器的 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 許可控制的 Webhook,讓您能夠以集中式且一致的方式在叢集上套用大規模強制執行,並保護叢集。 適用於 Kubernetes 的 Azure 原則 Pod 會部署為 AKS 附加元件。 它只會安裝在叢集中的一個節點上。 如需詳細資訊,請參閱保護 Kubernetes 工作負載了解適用於 Kubernetes 叢集的 Azure 原則

此圖例顯示適用於容器的 Microsoft Defender、Azure Kubernetes Service 及 Azure 原則之間互動的概略結構。

Defender 感測器元件詳細資料

Pod 名稱 Namespace 種類 簡短描述 功能 資源限制 必要的輸出
microsoft-defender-collector-ds-* kube-system DaemonSet 一組容器,著重於從 Kubernetes 環境收集詳細目錄和安全性事件。 SYS_ADMIN、
SYS_RESOURCE、
SYS_PTRACE
memory: 296Mi

cpu: 360m
No
microsoft-defender-collector-misc-* kube-system [部署] 一組容器,著重於從未繫結至特定節點的 Kubernetes 環境收集詳細目錄和安全性事件。 N/A 記憶體:64Mi

CPU:60m
No
microsoft-defender-publisher-ds-* kube-system DaemonSet 將收集的資料發佈至適用於容器的 Microsoft Defender 後端服務,以便處理和分析資料。 N/A 記憶體: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 ClusterRole aks:trustedaccessrole:defender-containers:microsoft-defender-operator 之間建立 ClusterRoleBinding,以執行 AKS 繫結作業。 ClusterRole 可透過 API 顯示,並提供叢集內適用於雲端的 Defender 資料平面讀取權限。

注意

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

下一步

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