Compartir a través de

配置 Microsoft Defender for Containers 组件

适用于容器的 Microsoft Defender 是用于保护容器的云原生解决方案。 它有助于保护群集,无论它们在以下哪个环境中运行:

  • Azure Kubernetes 服务 (AKS):Microsoft 的托管服务,用于开发、部署和管理容器化应用程序。

  • 其他 Kubernetes 发行版(使用启用了 Azure Arc 的 Kubernetes):托管在本地或基础结构即服务 (IaaS) 上的经云原生计算基金会 (CNCF) 认证的 Kubernetes 群集。 有关详细信息,请参阅 Defender for Cloud 中的容器支持矩阵

首先,可以通过以下文章了解如何连接和帮助保护容器:

注意

Defender for Containers 对启用了 Azure Arc 的 Kubernetes 群集的支持是一项预览版功能。 预览功能是可选择启用的自助功能。

预览版按原样按可用性提供。 它们不在服务级别协议和有限担保范围内。

若要详细了解受支持的操作系统、功能可用性、出站代理等,请参阅 Defender for Cloud 中的 Containers 支持矩阵

网络要求

验证以下终结点是否已配置为进行出站访问,以便 Defender 传感器可以连接到 Microsoft Defender for Cloud 以发送安全数据和事件。

Defender 传感器必须连接到已配置的 Azure Monitor Log Analytics 工作区。 默认情况下,AKS 群集具有不受限制的出站(出口)Internet 访问权限。 如果群集的出口需要使用 Azure Monitor 专用链接范围 (AMPLS),则必须:

  • 使用容器见解和 Log Analytics 工作区定义群集。
  • 配置 AMPLS,将查询访问模式和引入访问模式设置为“打开”
  • 将群集的 Log Analytics 工作区定义为 AMPLS 中的资源。
  • 在 AMPLS 中创建群集虚拟网络与 Log Analytics 资源之间的虚拟网络专用终结点。 虚拟网络专用终结点与专用 DNS 区域集成。

如需说明,请参阅创建 Azure Monitor 专用链接范围

启用计划

  1. 在 Defender for Cloud 中,选择“设置”,然后选择相关订阅。

  2. 在“Defender 计划”页上,选择“容器”>“设置”。

    Defender 计划页面的屏幕截图。

    提示

    如果订阅已启用 Defender for Kubernetes 或 Defender for Containers 注册表,则会出现一条更新通知。 否则,唯一的选项是“Containers”。

    显示处于已弃用状态的 Defender for Kubernetes 和 Defender for Containers 注册表计划以及升级信息的屏幕截图。

  3. 打开相关组件。

    显示打开组件的屏幕截图。

    注意

    • 在 2023 年 8 月之前加入的 Defender for Containers 客户如果在启用该计划时未在 Defender 云安全态势管理 (CSPM) 中启用 Kubernetes 无代理发现,则必须在 Defender for Containers 计划中手动启用 Kubernetes 无代理发现扩展。
    • 关闭 Defender for Containers 时,组件将设置为“关”。 它们不会部署到任何其他容器,但它们不会从已安装的容器中移除。

每个功能的启用方法

默认情况下,通过 Azure 门户启用计划时,Microsoft Defender for Containers 配置为自动启用所有功能并安装所有必需的组件以提供该计划提供的保护。 此配置包括分配默认工作区。

如果不想启用计划的所有功能,则可以通过为“容器”计划选择“编辑配置”来手动选择要启用的特定功能。 然后,在“设置和监视”页中,选择要启用的功能。 在初始配置计划后,也可以从“Defender 计划”页修改此配置。

有关每个功能的启用方法的详细信息,请参阅支持矩阵

角色和权限

详细了解预配 Defender for Containers 扩展的角色

为 Defender 传感器分配自定义工作区

可以通过 Azure Policy 分配自定义工作区

使用建议手动部署 Defender 传感器或 Azure Policy 代理,而不使用自动预配

此外,还可以在一个或多个 Kubernetes 群集上部署需要传感器安装的功能。 使用适当的建议:

传感器 建议
适用于 Kubernetes 的 Defender 传感器 Azure Kubernetes 服务群集应启用 Defender 配置文件
适用于已启用 Azure Arc 的 Kubernetes 的 Defender 传感器 已启用 Azure Arc 的 Kubernetes 群集应安装 Defender 扩展
适用于 Kubernetes 的 Azure Policy 代理 Azure Kubernetes 服务群集应安装适用于 Kubernetes 的 Azure Policy 加载项
适用于已启用 Azure Arc 的 Kubernetes 的 Azure Policy 代理 已启用 Azure Arc 的 Kubernetes 群集应已安装 Azure Policy 扩展

若要在特定群集上部署 Defender 传感器,请执行以下操作:

  1. 在 Microsoft Defender for Cloud 的“建议”页上,打开“启用增强的安全性”安全控制,或搜索前述的建议之一。 (还可以使用前面的链接直接打开建议。)

  2. 通过打开“不正常”选项卡查看所有没有传感器的群集。

  3. 选择要在其中部署传感器的群集,然后选择“修复”。

  4. 选择“修复 X 资源”。

部署 Defender 传感器:所有选项

可以启用 Defender for Containers 计划,并使用 Azure 门户、REST API 或 Azure 资源管理器模板部署所有相关组件。 有关详细步骤,请选择相关的选项卡。

部署 Defender 传感器后,会自动分配默认工作区。 可以通过 Azure Policy 分配一个自定义工作区来代替默认工作区。

注意

Defender 传感器部署到每个节点,以提供运行时保护并使用 eBPF 技术从这些节点收集信号。

使用 Defender for Cloud 建议中的“修复”按钮

可以使用 Azure 门户页面启用 Defender for Cloud 计划,并设置大规模保护 Kubernetes 群集所需的所有组件的自动预配。 该过程已简化。

专用 Defender for Cloud 建议提供:

  • 有关你的哪些群集部署了 Defender 传感器的可见性信息。
  • 用于将传感器部署到没有传感器的群集的“修复”按钮。

若要部署传感器,请执行以下操作:

  1. 在 Microsoft Defender for Cloud 的“建议”页中,打开“启用增强的安全性”安全控制。

  2. 使用筛选器找到名为“Azure Kubernetes 服务群集应启用 Defender 配置文件”的建议。

    提示

    请注意“操作”列中的“修复”图标。

  3. 选择这些群集以查看正常和不正常资源的详细信息(有和没有传感器的群集)。

  4. 在运行不正常的资源列表中,选择一个群集。 然后选择“修正”以打开包含修正确认的窗格。

  5. 选择“修复 X 资源”。

启用计划

  1. 在 Defender for Cloud 中,选择“设置”,然后选择相关订阅。

  2. 在“Defender 计划”页上,选择“容器”>“设置”。

    Defender 计划页面的屏幕截图。

    提示

    如果订阅已启用 Defender for Kubernetes 或 Defender for Containers 注册表,则会出现一条更新通知。 否则,唯一的选项是“Containers”。

    显示处于已弃用状态的 Defender for Kubernetes 和 Defender for Containers 注册表计划以及升级信息的屏幕截图。

  3. 打开相关组件。

    显示打开组件的屏幕截图。

    注意

    关闭 Defender for Containers 时,组件将设置为“关”。 它们不会部署到任何其他容器,但它们不会从已安装的容器中移除。

默认情况下,通过 Azure 门户启用计划时,Microsoft Defender for Containers 配置为自动安装所有必需的组件以提供该计划提供的保护。 此配置包括分配默认工作区。

若要在加入过程中禁用自动安装组件,请选择“容器”计划对应的“编辑配置”。 “高级”选项会随即显示,你可禁用每个组件的自动安装。

还可以从 Defender 计划页修改此配置。

注意

如果在通过门户启用后任意时间选择禁用计划,则需要手动移除群集上部署的 Defender for Containers 组件。

可以通过 Azure Policy 分配自定义工作区

如果禁用任何组件的自动安装,可以使用相应的建议轻松地将组件部署到一个或多个群集:

详细了解预配 Defender for Containers 扩展的角色

先决条件

在部署传感器之前,请确保:

部署 Defender 传感器

可以使用各种方法部署 Defender 传感器。 有关详细步骤,请选择相关的选项卡。

使用 Defender for Cloud 建议中的“修复”按钮

专用 Defender for Cloud 建议提供:

  • 有关你的哪些群集部署了 Defender 传感器的可见性信息。
  • 用于将传感器部署到没有传感器的群集的“修复”按钮。

若要部署传感器,请执行以下操作:

  1. 在 Microsoft Defender for Cloud 的“建议”页中,打开“启用增强的安全性”安全控制。

  2. 使用筛选器找到名为“已启用 Azure Arc 的 Kubernetes 群集应启用 Microsoft Defender 扩展”的建议

    屏幕截图显示 Microsoft Defender for Cloud 关于为已启用 Azure Arc 的 Kubernetes 群集部署 Defender 传感器的建议。

    提示

    请注意“操作”列中的“修复”图标。

  3. 选择该传感器以查看正常和不正常资源的详细信息(有和没有传感器的群集)。

  4. 在运行不正常的资源列表中,选择一个群集。 然后选择“修正”以打开包含修正选项的窗格。

  5. 选择相关的 Log Analytics 工作区,然后选择“修正 x 资源”

    动画屏幕截图,显示使用 Defender for Cloud 中的修正为 Azure Arc 部署 Defender 传感器。

验证部署

若要验证群集上是否已安装 Defender 传感器,请执行下列其中一个选项卡中的步骤。

使用 Defender for Cloud 建议来验证传感器的状态

  1. 在 Microsoft Defender for Cloud 的“建议”页中,打开“启用 Microsoft Defender for Cloud”安全控制

  2. 选择名为“已启用 Azure Arc 的 Kubernetes 群集应启用 Microsoft Defender 扩展”的建议

    屏幕截图显示 Defender for Cloud 关于为已启用 Azure Arc 的 Kubernetes 群集部署 Defender 传感器的建议。

  3. 检查在其上部署了该传感器的群集是否以“正常”状态列出

模拟来自适用于容器的 Microsoft Defender 的安全警报

Microsoft Defender for Cloud 所有安全警报参考表中提供了受支持警报的完整列表。

若要模拟安全警报:

  1. 从群集运行以下命令:

    kubectl get pods --namespace=asc-alerttest-662jfi039n
    

    预期的响应为 No resource found

    在 30 分钟内,Defender for Cloud 会检测到此活动并触发安全警报。

    注意

    若要模拟 Defender for Containers 的无代理警报,Azure Arc 不是必备项。

  2. 在 Azure 门户中,转到“Microsoft Defender for Cloud”>“安全警报”,并查看针对相关资源的警报。

    Microsoft Defender for Kubernetes 中的示例警报的屏幕截图。

移除 Defender 传感器

若要移除这个(或任何)Defender for Cloud 扩展,关闭自动预配是不够的:

  • 启用自动预配可能会影响现有将来的计算机。
  • 禁用扩展的自动预配仅影响将来的计算机。 禁用自动预配时,不会卸载任何内容。

注意

若要完全禁用 Defender for Containers 计划,请转到“环境设置”并禁用“Microsoft Defender for Containers”

不过,为了确保 Defender for Containers 组件从现在起不会自动预配到资源,请禁用扩展的自动预配。

可以使用 Azure 门户、Azure CLI 或 REST API 从当前运行的计算机中移除扩展,如以下选项卡上所述。

使用 Azure 门户移除扩展

  1. 在 Azure 门户中打开 Azure Arc。

  2. 在基础结构列表中选择“Kubernetes 群集”,然后选择特定的群集

  3. 打开“扩展”页,其中列出了群集上的扩展。

  4. 选择扩展,然后选择“卸载”。

    显示用于从已启用 Azure Arc 的 Kubernetes 群集卸载扩展的按钮的屏幕截图。

为 AKS 设置默认的 Log Analytics 工作区

Defender 传感器使用 Log Analytics 工作区作为数据管道将数据从群集发送到 Defender for Cloud。 工作区不会保留任何数据。 因此,此用例中不会对用户计费。

Defender 传感器使用默认 Log Analytics 工作区。 如果你没有默认的 Log Analytics 工作区,那么在安装 Defender 传感器时,Defender for Cloud 将创建新的资源组和默认工作区。 默认工作区基于你的区域

默认 Log Analytics 工作区和资源组的命名约定为:

  • 工作区:DefaultWorkspace-[subscription-ID]-[geo]
  • 资源组:DefaultResourceGroup-[geo]

分配自定义工作区

启用自动预配时,会自动分配默认工作区。 可以通过 Azure Policy 分配自定义工作区。

检查是否分配了工作区:

  1. 登录到 Azure 门户

  2. 搜索并选择“策略”。

    显示如何查找“策略”页的屏幕截图。

  3. 选择“定义”。

  4. 搜索策略 ID 64def556-fbad-4622-930e-72d1d5589bf5

    显示按 ID 搜索策略的位置的屏幕截图。

  5. 选择“将 Azure Kubernetes 服务群集配置为启用 Defender 配置文件”。

  6. 选择“分配” 。

    显示“分配”选项卡的屏幕截图。

  7. 使用本文中的后续各节之一,如下所示:

使用自定义工作区创建新分配

如果尚未分配策略,“分配”选项卡将显示数字 0。

显示未分配工作区的屏幕截图。

若要分配自定义工作区:

  1. 选择分配

  2. 在“参数”选项卡中,清除“仅显示需要输入或审核的参数”选项

  3. 从下拉菜单中选择 LogAnalyticsWorkspaceResourceId 值。

    显示 Log Analytics 工作区资源 ID 的下拉菜单的屏幕截图。

  4. 选择“查看 + 创建”。

  5. 选择“创建”。

使用自定义工作区更新分配

如果将策略分配给工作区,则“分配”选项卡会显示数字 1。

显示已分配的工作区的选项卡的屏幕截图。

注意

如果有多个订阅,这一数字可能会更高。

若要分配自定义工作区:

  1. 选择相关分配。

    显示分配选择的屏幕截图。

  2. 选择“编辑分配”。

  3. 在“参数”选项卡中,清除“仅显示需要输入或审核的参数”选项

  4. 从下拉菜单中选择 LogAnalyticsWorkspaceResourceId 值。

    显示 Log Analytics 工作区资源 ID 的下拉菜单的屏幕截图。

  5. 选择“查看 + 保存”。

  6. 选择“保存”。

移除 Defender 传感器

若要移除这个(或任何)Defender for Cloud 扩展,关闭自动预配是不够的:

  • 启用自动预配可能会影响现有将来的计算机。
  • 禁用扩展的自动预配仅影响将来的计算机。 禁用自动预配时,不会卸载任何内容。

注意

若要完全禁用 Defender for Containers 计划,请转到“环境设置”并禁用“Microsoft Defender for Containers”

不过,为了确保 Defender for Containers 组件从现在起不会自动预配到资源,请禁用扩展的自动预配。

可以使用 REST API、Azure CLI 或资源管理器模板从当前运行的计算机中移除扩展,如以下选项卡上所述。

使用 REST API 从 AKS 移除 Defender 传感器

要使用 REST API 移除扩展,请运行以下 PUT 命令:

https://management.chinacloudapi.cn/subscriptions/{{SubscriptionId}}/resourcegroups/{{ResourceGroup}}/providers/Microsoft.ContainerService/managedClusters/{{ClusterName}}?api-version={{ApiVersion}}

该命令包含以下参数:

名称 说明 必需
SubscriptionId 群集订阅 ID
ResourceGroup 群集资源组
ClusterName 群集名称
ApiVersion API 版本;必须是 2022-06-01 或更高

这是请求正文:

{
  "location": "{{Location}}",
  "properties": {
    "securityProfile": {
            "defender": {
                "securityMonitoring": {
                    "enabled": false
                }
            }
        }
    }
}

请求正文包含以下参数:

名称 说明 必需
location 群集位置
properties.securityProfile.defender.securityMonitoring.enabled 确定是否在群集上启用或禁用适用于容器的 Microsoft Defender

启用 Defender for Containers 后,可以: