第 14 章 验证镜像签名


您可以通过针对预先配置的密钥验证镜像签名,使用 Red Hat Advanced Cluster Security for Kubernetes (RHACS)来确保容器镜像的完整性。

您可以创建策略来阻止未签名的镜像,以及没有验证签名的镜像。您还可以使用 RHACS 准入控制器停止未授权部署创建来强制实施策略。

注意
  • RHACS 支持使用 Cosign 公钥、Cosign 证书或两者支持 Cosign 签名验证。

    有关 Cosign 的更多信息,请参阅 概述 (Sigstore 文档)。

  • 对于 Cosign 签名验证,RHACS 支持与透明日志通信。

    如需更多信息,请参阅 Rekor (Sigstore 文档)。

  • 对于 Cosign 签名验证,您可以在 RHACS 中使用无密钥验证。如果要自己托管密钥基础架构,您可以使用 Red Hat Trusted Artifact Signer (RHTAS)完成此操作。
  • 您必须配置与至少 1 Cosign 验证方法的签名集成,以便签名验证。
  • 对于所有部署并监视的镜像:

    • RHACS 每 4 小时获取并验证签名。
    • 每当您更改或更新签名集成验证数据时,RHACS 会验证签名。

14.1. 使用签名集成保护容器镜像

通过创建签名集成,您可以确保可信源为容器镜像签名。

当您创建签名集成时,您可以使用以下验证方法:

  • Cosign 公钥
  • Cosign 证书

您还可以通过启用透明日志验证来增强签名验证。透明日志在公共日志中记录签名,并提供其包含的加密验证。您可以通过添加可追溯性并在使用公钥或证书时增加信任来增强验证。

重要

您必须至少配置一个可信签名者。要配置可信签名者,您必须指定 Cosign 公钥或 Cosign 证书链。您可以在单个签名集成中组合多个镜像签名。

先决条件

  • 您有一个以 Privacy Enhanced Mail (PEM)格式编码的 Cosign 公钥。

    有关 Cosign 公钥的更多信息,请参阅 概述 (Sigstore 文档)。

  • 您有证书身份和签发者。
  • 可选: 您有一个以 PEM 格式编码的证书链。

    有关 Cosign 证书的更多信息,请参阅 验证签名 (Sigstore 文档)。

流程

  1. 在 RHACS 门户中,点 Platform Configuration Integrations
  2. 向下滚动到 Signature Integrations 部分,然后单击 Signature
  3. 要创建新签名集成,请单击 New integration
  4. 输入集成的名称。
  5. 要添加新公钥,请完成以下步骤:

    注意
    • 如果添加公钥,则不需要创建新的证书验证。
    • 您可以添加一个或多个公钥。
    1. 展开 Cosign Public Keys,然后单击 Add new Public key
    2. 输入密钥名称。
    3. 输入以 PEM 格式编码的键的值。
  6. 要添加新证书验证,请完成以下步骤:

    重要
    • 在创建签名集成时,如果要使用 Red Hat Trusted Artifact Signer (RHTAS)对镜像签名使用无密钥验证,您必须添加新的证书验证。
    • 您可以添加一个或多个证书验证。
    1. 展开 Cosign certificates,然后单击 Add new certificate verification
    2. 输入 Cosign 指定的证书 OIDC 签发者。您必须使用 RE2 语法中的正则表达式才能匹配。

      有关更多信息,请转至 google/re2 的 GitHub 存储库,打开 Wiki 部分,然后选择 Syntax 页面。

    3. 输入 Cosign 指定的证书身份。您必须使用 RE2 语法中的正则表达式才能匹配。

      有关更多信息,请转至 google/re2 的 GitHub 存储库,打开 Wiki 部分,然后选择 Syntax 页面。

    4. 输入以 PEM 格式编码的可信证书 root 以验证证书。如果没有指定证书 root,则会自动使用公共 Fulcio 根进行验证。

      如需更多信息,请参阅 Fulcio (Sigstore 文档)。

    5. 输入可信签名者中间证书颁发机构来验证证书。如果没有指定证书颁发机构,则时自动使用证书链进行验证。
    6. 可选: 选择 Enable certificate transparency log validation 复选框,以验证包含在证书透明日志中的验证。

      输入您要用来验证包含在证书透明日志中的公钥。如果没有指定公钥,则会自动使用公共 Sigstore 实例的密钥进行验证。

  7. 要配置透明度日志,请完成以下步骤:

    注意

    当您创建签名集成时,您可以在以下情况下启用透明日志验证:

    • 当签名包含 Fulcio 问题的简短证书时。
    • 当您想要使用无密钥验证签名时。
    • 在使用公钥时,要验证签名。
    1. 选择 Enable transparency log validation 复选框,以在透明日志中验证包括签名。

      输入提供 Rekor transparency 日志的 URL。如果没有指定 URL,则会自动使用 Sigstore 的公共 Rekor 实例进行验证。

      注意

      对于在线确认信息,需要 Rekor URL。

    2. 可选: 选择 Validate in offline mode 复选框,以强制对签名验证包含到透明日志。

      注意

      只有在您启用了透明日志验证时,才可以强制对签名进行离线验证。

      输入公钥以验证包含在 Rekor transparency 日志中的签名验证。如果没有指定公钥,则会自动使用公共 Sigstore 实例的密钥进行验证。

  8. 点击 Save

验证

  1. 在 RHACS 门户中,点 Platform Configuration Integrations
  2. 向下滚动到 Signature Integrations 部分,然后单击 Signature
  3. 验证签名集成创建是否成功。
  4. 可选:选择适当的方法来管理您创建的签名集成:

    • 要删除签名集成,点溢出菜单 kebab ,然后选择 Delete Integration
    • 要编辑签名集成,点溢出菜单 kebab ,然后选择 Edit Integration
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat