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

从 Docker内容信任服务转换到 Notary项目

Azure 容器注册表将于 2028 年 3 月 31 日停用 Docker 内容信任(DCT )。 为了帮助进行此转换,本文提供了有关如何禁用 DCT 并采用 Notary Project 对容器映像进行签名和验证的指导。

DCT 弃用

DCT 允许映像发布者对其映像进行签名,并允许映像使用者验证他们拉取的映像是否已签名。 随着技术的进步,DCT 不再满足容器现代供应链安全性的要求。 因此,DCT 的弃用始于 2025 年 3 月 31 日。 DCT 将于 2028 年 3 月 31 日从 Azure 容器注册表中完全删除。

作为 DCT 的替代方法,Microsoft提供基于公证项目的签名和验证解决方案。 公证项目 是一组规范和工具,提供跨行业标准,通过使用真实的容器镜像和其他开放容器倡议(OCI)项目来保护软件供应链。

Notation 是 Notary Project 的工具,可实现公证项目规范。 它包括用于签名和验证容器映像和项目的命令行接口(CLI)和库。 使用 Notary Project 解决方案来确保容器映像的完整性和真实性的好处包括:

  • 可移植性和互作性公证项目签名 遵循 OCI 标准 ,并且可以存储在符合 OCI 的注册表(如容器注册表)中。 这些功能有助于跨云环境实现签名可移植性和互作性。
  • 安全密钥管理:可以使用 Azure Key Vault 管理签名密钥和证书。
  • 与持续集成和持续交付(CI/CD)管道集成:实现 CI/CD 管道(包括 Azure DevOps 和 GitHub 工作流)的登录。
  • 全面验证:验证 CI/CD 管道(例如 Azure DevOps 和 GitHub 工作流)和 Azure Kubernetes 服务(AKS) 中的容器映像,以防止使用和部署不受信任的映像。

禁用 DCT

在转换到 Notation 项目解决方案之前,您必须禁用 DCT。 请使用以下任一方法:

  • 通过将环境变量DOCKER_CONTENT_TRUST设置为 0 来禁用 shell 中的 DCT。 例如,在 Bash shell 中,使用以下命令:

    export DOCKER_CONTENT_TRUST=0
    

    或者,可以取消设置环境变量:

    unset DOCKER_CONTENT_TRUST
    
  • 在 Azure 门户中禁用 DCT。 转到注册表,然后在“ 策略”下,选择“ 内容信任>已禁用>保存”。

  • 使用 Azure CLI 禁用 DCT:

    az acr config content-trust update -r myregistry --status disabled
    

使用 Notary Project 对容器映像进行签名和验证

禁用 DCT 后,可以使用 Notary Project 对容器映像进行签名和验证。 使用以下参考资料开始。

对容器映像签名:

验证容器映像: