適用於容器的 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 原則。
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 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 系結作業。 可透過 API 顯示,ClusterRole
並提供叢集內 適用於雲端的 Defender 數據平面讀取許可權。
注意
複製的快照集會保留在與叢集相同的區域中。
下一步
在此概觀中,您已瞭解 適用於雲端的 Microsoft Defender 中的容器安全性架構。 若要啟用方案,請參閱:
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應