配置 Microsoft Defender for Containers 组件
适用于容器的 Microsoft Defender 是用于保护容器的云原生解决方案。
无论群集在以下哪些位置运行,适用于容器的 Defender 都能保护群集:
- Azure Kubernetes 服务 (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 代理可以连接到 Microsoft Defender for Cloud 以发送安全数据和事件:
- 验证适用于 Microsoft Defender for Containers 的完全限定的域名 (FQDN)/应用程序规则。
- 默认情况下,AKS 群集具有不受限制的出站(出口)Internet 访问权限。
启用计划
若要启用计划,请执行以下操作:
从 Defender for Cloud 的菜单打开“设置”页,并选择相关的订阅。
在 Defender 计划页中,选择“Defender for Containers”,然后选择“设置”。
提示
如果订阅已启用 Defender for Kubernetes 和/或适用于容器的 Defender 注册表,则会显示一条更新通知。 否则,唯一的选项为“适用于容器的 Defender”。
开启某个相关组件以将其启用。
每个功能的启用方法
默认情况下,通过 Microsoft Azure 门户启用计划时,Microsoft Defender for Containers 配置为自动启用所有功能并安装所有必需的组件以提供计划提供的保护,包括分配默认工作区。
如果不想启用计划的所有功能,则可以通过为“容器”计划选择“编辑配置”来手动选择要启用的特定功能。 然后,在“设置和监视”页中,选择要启用的功能。 此外,在初始配置计划后,可以从 Defender 计划页修改此配置。
为 Defender 代理分配自定义工作区
可以通过 Azure Policy 分配自定义工作区。
使用建议手动部署 Defender 代理或 Azure 策略代理,而无需自动预配
还可以使用适当的建议在一个或多个 Kubernetes 群集上部署需要代理安装的功能:
代理 | 建议 |
---|---|
适用于 Kubernetes 的 Defender 代理 | Azure Kubernetes 服务群集应启用 Defender 配置文件 |
适用于已启用 Arc 的 Kubernetes 的 Defender 代理 | 已启用 Azure Arc 的 Kubernetes 群集应安装 Defender 扩展 |
适用于 Kubernetes 的 Azure Policy 代理 | Azure Kubernetes 服务群集应安装适用于 Kubernetes 的 Azure Policy 加载项 |
适用于已启用 Arc 的 Kubernetes 的 Azure Policy 代理 | 已启用 Azure Arc 的 Kubernetes 群集应已安装 Azure Policy 扩展 |
执行以下步骤,在特定群集上执行 Defender 代理部署:
在 Microsoft Defender for Cloud 的建议页中,打开“启用增强的安全功能”控件或直接搜索上述建议之一(或使用上述链接直接打开建议)
通过“不正常”选项卡查看所有没有代理的群集。
选择要部署所需代理的群集,然后选择“修复”。
选择“修复 X 资源”。
- 有关哪些群集部署了 Defender 代理的直观信息
- “修复”按钮,用于在没有代理的情况下将其部署到这些群集
- 工作区:DefaultWorkspace-[subscription-ID]-[geo]
- 资源组:DefaultResourceGroup-[geo]
- 启用自动预配,这可能会影响现有计算机和将来的计算机。
- 禁用扩展的自动预配,这只会影响将来的计算机,因为禁用自动预配不会卸载任何内容。
部署 Defender 代理 - 所有选项
可以启用 Defender for Containers 计划,并从 Azure 门户、REST API 或资源管理器模板部署所有相关组件。 有关详细步骤,请选择相关的选项卡。
部署 Defender 代理后,会自动分配默认工作区。 可以通过 Azure Policy 分配一个自定义工作区来代替默认工作区。
使用 Defender for Cloud 建议中的修复按钮
借助一个简化、无冲突的过程,你可以使用 Azure 门户页来启用 Defender for Cloud 计划,并设置自动预配所有必要的组件,以大规模保护 Kubernetes 群集。
专用 Defender for Cloud 建议提供:
在 Microsoft Defender for Cloud 的建议页中,打开“启用增强的安全功能”控件。
使用筛选器找到名为“Azure Kubernetes 服务群集应启用 Defender 配置文件”的建议。
注意
请注意“操作”列中的“修复”图标
选择该群集以查看运行正常和不正常资源 - 具有和没有代理的群集 - 的详细信息。
在“不正常的资源”列表中选择一个群集,然后选择“修正”打开包含修正确认的窗格。
选择“修复 X 资源”。
模拟来自适用于容器的 Microsoft Defender 的安全警报
若要模拟安全警报,请在群集中运行以下命令:
kubectl get pods --namespace=asc-alerttest-662jfi039n
预期的响应为No resource found
。 在 30 分钟内,Defender for Cloud 检测到此活动并触发安全警报。注意
若要模拟 Defender for Containers 的无代理警报,Azure Arc 不是必备项。
在 Azure 门户中,打开 Microsoft Defender for Cloud 的安全警报页,并在相关资源中查找警报:
适用于 AKS 的默认 Log Analytics 工作区
Defender 代理使用 Log Analytics 工作区作为数据管道,以将数据从群集发送到 Defender for Cloud,而不会在 Log Analytics 工作区本身中保留任何数据。 因此,在此用例中不会向用户计费。
Defender 代理使用默认的 Log Analytics 工作区。 如果还没有默认 Log Analytics 工作区,则在安装 Defender 代理时,Defender for Cloud 将创建新的资源组和默认工作区。 默认工作区是基于区域创建的。
默认 Log Analytics 工作区和资源组的命名约定为:
分配自定义工作区
启用自动预配选项时,将自动分配默认工作区。 可以通过 Azure Policy 分配自定义工作区。
检查是否分配了工作区:
登录 Azure 门户。
搜索并选择“策略”。
选择“定义”。
搜索策略 ID
1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5
。如果尚未将策略分配到相关范围,请遵循“使用自定义工作区创建新分配”。 如果已分配策略并且想要更改该策略以使用自定义工作区,请遵循“用自定义工作区更新分配”。
使用自定义工作区创建新分配
如果尚未分配策略,你将看到 Assignments (0)
。
若要分配自定义工作区,请执行以下操作:
选择“分配”。
在“参数”选项卡中,取消选择“仅显示需要输入或评审的参数”选项。
从下拉菜单中选择 LogAnalyticsWorkspaceResource ID。
选择“查看 + 创建”。
选择“创建”。
使用自定义工作区更新分配
如果策略已分配给工作区,你将看到 Assignments (1)
。
注意
如果有多个订阅,这一数字可能会更高。
若要分配自定义工作区,请执行以下操作:
选择相关分配。
选择“编辑分配”。
在“参数”选项卡中,取消选择“仅显示需要输入或评审的参数”选项。
从下拉菜单中选择 LogAnalyticsWorkspaceResource ID。
选择“查看 + 保存”。
选择“保存”。
移除 Defender 传感器
若要删除此或任何 Defender for Cloud 扩展,它还不足以关闭自动预配:
若要完全禁用 Defender for Containers 计划,请转到“环境设置”并禁用“Microsoft Defender for Containers”计划。
不过,若要确保现在不再自动将 Defender for Containers 组件预配到资源,请禁用扩展的自动预配,如为 Microsoft Defender for Cloud 中的代理和扩展配置自动预配中所述。
可以使用 REST API 或资源管理器模板移除扩展,如以下选项卡中所述。
使用 Azure CLI 移除 Defender 传感器
使用以下命令删除 Microsoft Defender:
az login az account set --subscription <subscription-id> az aks update --disable-defender --resource-group <your-resource-group> --name <your-cluster-name>
删除扩展可能需要几分钟时间。
若要验证是否已成功删除该扩展,请运行以下命令:
kubectl get pods -n kube-system | grep microsoft-defender
如果已删除该扩展,get pods 命令中应该不会返回任何 Pod。 删除 Pod 可能需要几分钟时间。