適用於容器的 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 原則。
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 CSPM 啟用延伸模組,適用於雲端的 Defender 會在稱為
指派: 適用於雲端的 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 中容器安全性的結構。 若要啟用方案,請參閱: