要控制 Azure Kubernetes Service (AKS)、Amazon Elastic Kubernetes Service(EKS)及 Google Kubernetes Engine (GKE)叢集的部署與升級時序,請使用 Helm 安裝並設定 Microsoft Defender for Containers 感測器。
Defender for Containers 支援多種感測器部署模式,包括自動配置與基於 Helm 的安裝。 基於 Helm 的部署讓你能更好地控制版本管理和升級時機,但部分營運工作則由你管理。 使用以 Helm 為基礎的部署方式時,請考量以下事項:
感測器升級:透過以 Helm 為基礎的部署,您可以管理感測器升級與時序。 自動配置依照 Microsoft 管理的部署時程進行。
自動安裝流程:使用 Helm 部署感測器時,請跳過 Azure 入口網站的自動提示與建議,以避免與現有部署發生衝突。
Prerequisites
在使用 Helm 安裝感測器前,請先完成以下先決條件:
請確認
helm和curl都已安裝,且可在你的命令列環境中使用。要檢查這些工具是否可用,請執行:
helm version curl --version請依照 Defender 感應器網路需求中所述,實作適用於容器的 Defender 感應器的所有先決條件需求。
在目標訂閱或安全連接器中啟用 Defender for Containers:
- Azure 訂閱:通過入口網站在 AKS 上啟用容器防護者
- 亞馬遜網路服務(AWS): 透過入口網站啟用 AWS 上的 Defender for Containers(EKS)
- Google Cloud 專案(GCP): 透過入口網站啟用 GCP 上的 Defender for Containers (GKE)
- 已啟用 Arc 的 Kubernetes:透過入口網站在已啟用 Arc 的 Kubernetes 上啟用適用於容器的 Defender
啟用 Defender for Containers 計畫的以下組成部分:
- Defender 感應器
- Kubernetes API 存取權
針對 Amazon Web Services (AWS) 和 Google Cloud Platform (GCP) 環境:請停用自動佈建適用於 Azure Arc 的 Defender 感應器切換開關。
如果你想在 AWS 帳號或 GCP 專案中,讓其他啟用 Arc 的叢集保持自動配置,請使用 Helm 將標籤套用
ms_defender_e2e_discovery_exclude=true到你打算部署感測器的叢集上。確保您的環境中沒有與部署正式發行感測器版本衝突的原則指派。
檢視使用以下政策定義 ID 的政策指派,並移除任何衝突的指派:
64def556-fbad-4622-930e-72d1d5589bf5若要查看政策定義,請前往Azure入口網站Policy definitions,並搜尋政策定義 ID。
安裝 Helm 圖表
適用於容器的 Defender 的 Helm 圖表已發佈至mcr.microsoft.com/azuredefender/microsoft-defender-for-containers。
該圖表需要在 global.cloudIdentifiers 下的叢集識別碼值。 你可以使用 --set 內嵌提供這些值,如以下範例所示,或者使用一個值文件。
要安裝最新圖表版本,請使用基本的 Helm 安裝指令。 透過 values 檔案提供所需的global.cloudIdentifiers值,或直接在--set中內嵌,如下列環境特定範例所示:
helm install defender-k8s oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers
你可以透過執行以下指令列出已發表的版本:
curl https://mcr.microsoft.com/v2/azuredefender/microsoft-defender-for-containers/tags/list
要安裝特定版本,請加入版本標籤:
helm install defender-k8s oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers:<tag>
要檢查可設定的圖表值,例如特徵旗標或 Pod 資源限制,請拉出圖表並檢視檔案:values.yaml
helm pull oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers
安裝感測器以適應您的環境:
對於標準 AKS 叢集,請使用 mdc 命名空間。
對於 AKS Automatic 叢集,請使用命名空間 kube-system。
如果您的 AKS 叢集已有『適用於容器』的 Defender 部署,請依照 配置 Azure 容器用的 Defender 中所述,停用現有的部署,然後執行以下命令移除剩餘資源:
kubectl delete crd/policies.defender.microsoft.com || true
kubectl delete crd/policytemplates.defender.microsoft.com || true
kubectl delete crd/runtimepolicies.defender.microsoft.com || true
kubectl delete crd/securityartifactpolicies.defender.microsoft.com || true
kubectl delete ClusterRole defender-admission-controller-cluster-role || true
kubectl delete ClusterRole defender-admission-controller-resource-cluster-role || true
kubectl delete ClusterRoleBinding defender-admission-controller-cluster-role-binding || true
kubectl delete ClusterRoleBinding defender-admission-controller-cluster-resource-role-binding || true
安裝感應器:
helm install defender-k8s oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers \
--create-namespace --namespace <namespace> \
--set global.cloudIdentifiers.Azure.subscriptionId="<cluster-subscription-id>" \
--set global.cloudIdentifiers.Azure.resourceGroupName="<cluster-resource-group>" \
--set global.cloudIdentifiers.Azure.clusterName="<cluster-name>" \
--set global.cloudIdentifiers.Azure.region="<cluster-region>"
替換 <namespace> 為:
-
mdc用於標準 AKS 叢集。 -
kube-system用於 AKS 自動化叢集。
確認安裝情況
用你安裝圖表時用的同一個命名空間來驗證安裝。
helm list --namespace mdc
如果 STATUS 欄位顯示 deployed,則表示安裝成功。
配置閘控部署的安全規則
備註
只有當感應器使用 Helm 安裝在 kube-system 命名空間中時,AKS Automatic 叢集才支援 Kubernetes 閘控部署。 此情境不支援擴充部署。
這很重要
當你建立規則時,所選訂閱可能會顯示為 not supported for Gated deployment。 此狀態是因為您使用 Helm 安裝了 Defender for Containers 的元件,而不是通過儀表板自動安裝。
定義安全規則,控制你可以部署到Kubernetes叢集的內容。 這些規則可以封鎖或審核不符合安全標準的容器映像檔。
登入 Azure 入口網站。
請前往 適用於雲端的 Defender>環境設定。
選擇 安全規則。
選擇 門控部署>漏洞評估。
選擇規則來編輯,或選擇 + 新增規則 來建立新的規則。
處理現有建議
這很重要
如果您使用 Helm 安裝感測器,請勿使用現有的適用於容器的 Defender 建議,為同一個叢集安裝 Defender 設定檔或 Arc 擴充功能。 對這些建議進行補救措施可能會引發部署衝突。
根據你的部署類型,以下建議可能仍會出現在 適用於雲端的 Defender 中。 檢視這些項目,確認它們是否屬於自動部署流程,然後在你使用 Helm 部署的叢集中忽略它們。
Azure:Azure Kubernetes Service 叢集應啟用 Defender 設定檔 - Microsoft Azure
Arc 啟用的 Kubernetes 叢集:支援 Azure Arc 的 Kubernetes 叢集應安裝 Defender 擴充套件 - Microsoft Azure
升級現有的 Helm 型部署
使用基於 Helm 的部署,你可以管理感測器的升級。 適用於雲端的 Defender 不會自動套用這些設定。
執行以下命令以更新現有的基於 Helm 的部署。 使用你安裝時使用的命名空間。
helm upgrade defender-k8s \
oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers \
--namespace <namespace> \
--reuse-values
用你安裝時用的命名空間替換 <namespace> 。
這個 --reuse-values 參數會在升級過程中保留你現有的自訂值。
對於 <namespace>,使用:
-
mdc適用於標準 AKS、EKS 及 GKE 叢集。 -
kube-system用於 AKS 自動化叢集。
若因資源衝突導致升級失敗,請在升級指令中新增以下選項:
--server-side=true --resolve-conflicts