你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何使用 Helm 在 AKS、EKS 和 GKE 群集上安装和配置 Microsoft Defender for Containers 传感器。
Defender for Containers 支持多种部署模型来部署传感器,包括自动预配和基于 Helm 的安装。 基于 Helm 的部署可以更好地控制传感器版本管理和升级时机,但这将转移部分运营责任给你。 使用基于 Helm 的部署时,请考虑:
传感器升级:通过使用基于 Helm 的部署,可以管理传感器升级和升级计时。 自动预配遵循由 Microsoft 管理的推出时间表。
自动安装流:使用 Helm 部署传感器时,请跳过 Azure 门户中的自动安装提示和建议,以避免与现有部署发生冲突。
先决条件
在使用 Helm 安装传感器之前,请确保:
如 Defender 传感器网络要求中所述,可满足 Defender for Containers 传感器的所有先决条件要求。
已在目标订阅或安全连接器中启用 Defender for Containers:
- Azure 订阅: 通过门户在 AKS 上启用 Defender for Containers
- Amazon Web Services (AWS): 通过门户在 AWS 上启用 Defender for Containers(EKS)
- Google Cloud Project (GCP):通过门户在 GCP(GKE)上启用容器防护
- 启用 Arc 的 Kubernetes:通过门户在启用 Arc 的 Kubernetes 上启用 Defender for Containers
启用了 Defender for Containers 计划的以下组件:
- Defender 传感器
- Kubernetes API 访问
对于 AWS 和 GCP 环境:确保“为 Azure Arc 自动预配 Defender 的传感器”切换开关已被禁用。
如果要为 AWS 帐户或 GCP 项目中其他已启用 Arc 的群集保持自动预配,请将
ms_defender_e2e_discovery_exclude=true标记应用于想要使用 Helm 部署传感器的群集。环境中没有可能部署传感器正式发布版的冲突策略分配。
查看使用以下策略定义 ID 的策略分配,并删除任何冲突的分配:
64def556-fbad-4622-930e-72d1d5589bf5若要查看策略定义,请转到 Azure 门户中的 Policy 定义,然后搜索策略定义 ID。
安装 Helm 图表
已将 Defender for Containers Helm 图表发布到 mcr.microsoft.com/azuredefender/microsoft-defender-for-containers。
图表需要在global.cloudIdentifiers下的集群标识符值。 可以直接内嵌在 --set中提供这些值,如以下示例所示,或者使用值文件。
若要安装最新的图表版本,请使用 Base Helm install 命令。 如环境特定示例所示,使用值文件或使用 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
- EKS
- GKE
对于标准 AKS 群集,请使用 mdc 命名空间。
对于 AKS 自动群集,请使用 kube-system 命名空间。
如果您的 AKS 群集已经部署了现有的容器防护程序,请按照 配置 Azure 的容器 Defender 中的说明禁用现有部署,并通过运行以下命令删除任何剩余资源:
kubectl delete crd/policies.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 自动群集上才支持 Kubernetes 受控部署。 此应用场景不支持附加产品部署。
重要
创建规则时,所选订阅可能显示为 not supported for Gated deployment。 出现此状态是因为你通过 Helm 而非仪表板的自动安装安装了 Defender for Containers 组件。
定义安全规则以控制可在 Kubernetes 群集中部署的内容。 这些规则可帮助你根据安全条件(例如存在过多漏洞的映像)阻止或审核容器映像。
登录到 Azure 门户。
转到 Defender for Cloud>环境设置。
选择 “安全规则”。
选择 “封闭部署>漏洞评估”。
选择要编辑的规则,或选择“ + 添加规则 ”以创建新规则。
处理现有建议
重要
如果使用 Helm 安装传感器,请不要使用现有的 Defender for Cloud 建议在同一集群上安装 Defender 配置文件或 Arc 扩展。 修改这些建议可能会导致部署冲突。
根据部署类型,以下建议可能仍显示在Defender for Cloud中:
Azure:Azure Kubernetes 服务 (AKS) 群集应启用防御配置文件 - Microsoft Azure
启用 Arc 的 Kubernetes 群集:启用 Azure Arc 的 Kubernetes 群集应安装 Defender 扩展 - Microsoft Azure
升级基于 Helm 的现有部署
对于基于 Helm 的部署,传感器升级由你管理。 Defender for Cloud 不会自动应用它们。
运行以下命令以更新基于 Helm 的现有部署。 使用安装期间使用的命名空间。
helm upgrade defender-k8s \
oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers \
--namespace <namespace> \
--reuse-values
对于 <namespace>,请使用:
-
mdc用于标准 AKS、EKS 和 GKE 群集。 -
kube-system用于 AKS 自动群集。
如果由于资源冲突而升级失败,请将以下选项添加到升级命令:
--server-side=true --resolve-conflicts

