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

将容器映像从代码映射到运行时

当Defender for Cloud在容器映像中发现漏洞时,很难将该映像跟踪回原始 CI/CD 管道运行。 无论映像是位于容器注册表中还是在 Kubernetes 群集中运行,此挑战都是常见的。 如果没有管道上下文,则很难找到合适的开发人员并快速启动修正。 Defender云安全状况管理(CSPM)包括将容器工作负载从代码映射到云的 DevOps 安全功能,因此团队可以更快地开始修正。

代码到运行时 – 技术先决条件

建立 运行时关系的代码需要满足以下先决条件。

常规先决条件(所有方法)

无论使用的映射方法如何,以下先决条件都适用:

  • Defender CSPM(云安全状况管理)或用于容器的 Defender必须在云环境中启用。
    • Defender for Containers 附带了一组有限的映射功能。
  • 容器映像必须 通过 CI/CD 管道生成
    • 不支持手动生成和推送的映像,尽管某些手动生成的映像仍会显示在映射结果中。
  • 容器映像必须能被 Defender for Cloud 发现,可以通过以下方式:
    • 存储在 支持的容器注册表中,或
    • 受支持的 Kubernetes 环境中运行

选项 1:将代码环境连接到 Defender for Cloud

将代码环境连接到 Defender for Cloud 时,会自动触发一组自动化工具。 这些工具 不会影响 现有的 DevOps 工作流并启用代码到运行时映射。

注释

  • 目前支持 Azure DevOpsGitHub
  • 在连接 之前 生成和部署的容器映像可能支持有限

有关设置步骤,请参阅:

选项 2:基于 Docker 标签的映射

基于 Docker 标签的映射依赖于在生成时直接嵌入到容器映像中的元数据。 Defender for Cloud 从 OCI/Docker 映像清单中提取此元数据,并使用它将映像关联到其源存储库。

有关详细信息,请参见:

注释

  • 此方法 不需要 DevOps 连接器。
  • 映射操作适用于 Defender CSPM 或 Defender for Containers 覆盖的 Kubernetes 环境。

选项 3:基于 GitHub 认证的映射

基于证明的映射使用 GitHub Actions 工作流期间生成的 加密可验证的证明元数据 。 这些证明将容器镜像链接到其确切的源代码库、提交记录和构建标识。

有关详细信息,请参见:

验证代码与运行时的映射关系(Azure 门户)

在 Azure DevOps CI/CD 管道中生成容器映像并将其推送到注册表后,请使用 Cloud 安全资源管理器查看映射:

  1. 登录到 Azure 门户 portal.azure.com

  2. 转到 Microsoft Defender for Cloud>Cloud 安全资源管理器。 容器映像映射最多可能需要四个小时才能显示。

  3. 若要查看基本映射,请选择“容器映像”>+>“由代码库推送的”。

    屏幕截图显示如何找到容器的基本映射。

  4. (可选)选择 容器映像 旁边的 +,为查询添加筛选条件,例如 具有漏洞,以便仅显示存在常见漏洞和披露 (CVE) 的容器映像。

  5. 运行查询后,可以看到容器注册表和管道之间的映射。 选择连接线(边缘)旁边的 ... 以查看更多详细信息。

    屏幕截图显示容器映射结果的高级查询。

后续步骤