你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何使用 Helm 在 AKS、EKS 和 GKE 群集上安装和配置 Microsoft Defender for Containers 传感器。 你将了解先决条件、为容器启用 Defender,以及针对不同环境的分步部署说明。
一般先决条件
确保满足 Defender for Containers 传感器的所有先决条件要求,如 Defender 传感器网络要求中所述。
步骤 1:为容器启用 Defender
如果尚未启用 Defender for Containers 计划,请执行以下步骤:
在 Azure 门户中,转到 Microsoft Defender for Cloud,然后选择要在其中安装 Helm 图表的群集的订阅。 在 EKS 和 GKE 中,选择具有这些群集的环境(具有群集的 EKS 或 GKE 帐户的安全连接器)。
在 云工作负荷保护平台(CWPP)下,找到 容器 计划,并将开关设置为 “打开”。
在 容器 计划旁边,选择 “设置”。
在 “设置和监视 ”窗格中,确保以下切换设置为 “开”:
- Defender 传感器
- 安全发现
- 注册表访问
现在,你已准备好使用 Helm 安装 Defender for Containers 传感器。
步骤 2:安装传感器 Helm 图表
仅适用于 AKS 自动设置
为 AKS Automatic 运行以下命令:
# Update Azure CLI to the latest version
az upgrade
# If you don't have the AKS preview extension installed yet
az extension add --name aks-preview
# Update the AKS extension specifically
az extension update --name aks-preview
安装先决条件
Helm >= 3.8 (OCI 支持为 GA)
目标群集(AKS)或安全连接器(EKS 或 GKE)的资源组所有者角色
目标群集的 Azure 资源 ID
注释
使用以下命令生成已给定
<SUBSCRIPTION_ID>和<RESOURCE_GROUP>的 AKS 集群 Azure 资源 ID 的列表:az aks list \ --subscription <SUBSCRIPTION_ID> \ --resource-group <RESOURCE_GROUP> \ --query "[].id" \ -o tsv
AKS
在安装传感器之前,请删除任何 冲突的策略。 这些策略分配会导致在群集上部署正式版传感器。 可以在 Policy - Microsoft Azure 中找到订阅的策略定义列表。 冲突策略的 ID 为 64def556-fbad-4622-930e-72d1d5589bf5。
运行以下脚本以使用 Azure CLI 将其删除:
delete_conflicting_policies.sh
使用以下命令运行脚本:
delete_conflicting_policies.sh <CLUSTER_AZURE_RESOURCE_ID>
注释
此脚本移除了用于设置正式版 Defender for Containers 的资源组和订阅级别策略,这可能会影响除了你正在配置的群集之外的其他群集。
以下脚本安装 Defender for Containers 传感器(如果存在)并删除任何现有部署:
install_defender_sensor_aks.sh
使用以下命令运行脚本:
install_defender_sensor_aks.sh <CLUSTER_AZURE_RESOURCE_ID> <RELEASE_TRAIN> <VERSION>
在以下命令中,将占位符文本<CLUSTER_AZURE_RESOURCE_ID><RELEASE_TRAIN><VERSION>替换为自己的值。 将“public”用于公共预览版(0.9.x)。 对于 <VERSION>,请使用“latest”或特定语义版本。
注释
此脚本设置新的 kubeconfig 上下文,并可能在 Azure 帐户中创建 Log Analytics 工作区。
EKS/GKE
以下脚本安装 Defender for Containers 传感器(如果存在)并删除任何现有部署:
将 kubeconfig 上下文设置为目标群集,并使用以下命令运行脚本:
install_defender_sensor_mc.sh <SECURITY_CONNECTOR_AZURE_RESOURCE_ID> <RELEASE_TRAIN> <VERSION> <DISTRIBUTION> [<ARC_CLUSTER_RESOURCE_ID>]
在以下命令中,将占位符文本 <SECURITY_CONNECTOR_AZURE_RESOURCE_ID>、 <RELEASE_TRAIN>、 <VERSION>、 <DISTRIBUTION>以及 <ARC_CLUSTER_RESOURCE_ID> 替换为自己的值。 请注意,ARC_CLUSTER_RESOURCE_ID 是一个可选参数,仅应用于以下情况:使用 Defender for Containers arc 扩展的现有群集希望通过 Helm 预配传感器,或使用 arc 群集希望通过 Helm 预配传感器。
对于 <SECURITY_CONNECTOR_AZURE_RESOURCE_ID>:
为 AWS 或 GCP 帐户设置安全连接器
获取其 Azure 资源 ID
注释
若要在 EKS 或 GKE 群集上安装 Helm 图表,需要群集所属的帐户的安全连接器资源 ID。 运行 az resource show CLI 命令以获取此值。
例如:
az resource show \ --name <connector-name> \ --resource-group <resource-group-name> \ --resource-type "Microsoft.Security/securityConnectors" \ --subscription <subscription-id> \ --query id -o tsv在此示例中,将占位符文本
<connector-name>、<resource-group-name>和<subscription-id>替换为您的值。
将“public”用于公共预览版(0.9.x)。 对于 <VERSION>,请使用“latest”或特定语义版本。 对于 <DISTRIBUTION>,请使用 eks 或 gke。
注释
此脚本可能会在 Azure 帐户中创建 Log Analytics 工作区。
运行以下命令来检查安装是否成功:
helm list --namespace mdc
状态字段应 已部署。
封闭式部署的安全规则
可以定义安全规则来控制允许部署到 Kubernetes 群集中的内容。 这些规则使你能够基于安全条件阻止或审核容器映像,例如存在过多漏洞的映像。
访问安全规则
- 导航到 Microsoft Defender for Cloud (MDC) 仪表板。
- 在左侧导航窗格中,选择“ 环境设置”。
- 选择 “安全规则 ”磁贴。
配置漏洞评估规则
- 在“安全规则”页中,导航到“封闭部署”部分下的漏洞评估。
- 根据需要创建或编辑安全规则。
重要
对于 Helm 安装:
- 订阅支持警告:创建规则时,所选订阅可能标记为“不支持封闭式部署”。之所以发生这种情况,是因为你使用 Helm 而不是通过仪表板的自动安装安装了 Defender for Containers 组件。
- 跳过自动安装:如果提示您在安全规则编辑窗口的第三个选项卡中启用门控(gating),请确保按下跳过。 此选项启用自动安装功能,这与现有的 Helm 部署冲突。
配置传感器的现有建议
注释
在使用 Helm 设置传感器时,忽略现有建议。
对于 AKS:
Azure Kubernetes 服务群集应已启用 Defender 配置文件 - Microsoft Azure
对于多云:
已启用 Azure Arc 的 Kubernetes 群集应安装 Defender 扩展 - Microsoft Azure
升级基于 Helm 的现有部署
运行以下命令以更新基于 Helm 的现有部署:
helm upgrade microsoft-defender-for-containers-sensor \
oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers-sensor \
--devel \
--reuse-values