你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过 Helm 安装 Defender for Containers 传感器

本文介绍如何使用 Helm 在 AKS、EKS 和 GKE 群集上安装和配置 Microsoft Defender for Containers 传感器。

Defender for Containers 支持多种部署模型来部署传感器,包括自动预配和基于 Helm 的安装。 基于 Helm 的部署可以更好地控制传感器版本管理和升级时机,但这将转移部分运营责任给你。 使用基于 Helm 的部署时,请考虑:

  • 传感器升级:通过使用基于 Helm 的部署,可以管理传感器升级和升级计时。 自动预配遵循由 Microsoft 管理的推出时间表。

  • 自动安装流:使用 Helm 部署传感器时,请跳过 Azure 门户中的自动安装提示和建议,以避免与现有部署发生冲突。

先决条件

在使用 Helm 安装传感器之前,请确保:

安装 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 群集,请使用 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 群集中部署的内容。 这些规则可帮助你根据安全条件(例如存在过多漏洞的映像)阻止或审核容器映像。

  1. 登录到 Azure 门户

  2. 转到 Defender for Cloud>环境设置

  3. 选择 “安全规则”。

  4. 选择 “封闭部署>漏洞评估”。

  5. 选择要编辑的规则,或选择“ + 添加规则 ”以创建新规则。

处理现有建议

重要

如果使用 Helm 安装传感器,请不要使用现有的 Defender for Cloud 建议在同一集群上安装 Defender 配置文件或 Arc 扩展。 修改这些建议可能会导致部署冲突。

根据部署类型,以下建议可能仍显示在Defender for Cloud中:

升级基于 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