第 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 证书链。您可以在单个签名集成中组合多个镜像签名。
先决条件
流程
-
在 RHACS 门户中,点 Platform Configuration
Integrations。 - 向下滚动到 Signature Integrations 部分,然后单击 Signature。
- 要创建新签名集成,请单击 New integration。
- 输入集成的名称。
要添加新公钥,请完成以下步骤:
注意- 如果添加公钥,则不需要创建新的证书验证。
- 您可以添加一个或多个公钥。
- 展开 Cosign Public Keys,然后单击 Add new Public key。
- 输入密钥名称。
- 输入以 PEM 格式编码的键的值。
要添加新证书验证,请完成以下步骤:
重要- 在创建签名集成时,如果要使用 Red Hat Trusted Artifact Signer (RHTAS)对镜像签名使用无密钥验证,您必须添加新的证书验证。
- 您可以添加一个或多个证书验证。
- 展开 Cosign certificates,然后单击 Add new certificate verification。
输入 Cosign 指定的证书 OIDC 签发者。您必须使用 RE2 语法中的正则表达式才能匹配。
有关更多信息,请转至
google/re2
的 GitHub 存储库,打开Wiki
部分,然后选择Syntax
页面。输入 Cosign 指定的证书身份。您必须使用 RE2 语法中的正则表达式才能匹配。
有关更多信息,请转至
google/re2
的 GitHub 存储库,打开Wiki
部分,然后选择Syntax
页面。输入以 PEM 格式编码的可信证书 root 以验证证书。如果没有指定证书 root,则会自动使用公共 Fulcio 根进行验证。
如需更多信息,请参阅 Fulcio (Sigstore 文档)。
- 输入可信签名者中间证书颁发机构来验证证书。如果没有指定证书颁发机构,则时自动使用证书链进行验证。
可选: 选择 Enable certificate transparency log validation 复选框,以验证包含在证书透明日志中的验证。
输入您要用来验证包含在证书透明日志中的公钥。如果没有指定公钥,则会自动使用公共 Sigstore 实例的密钥进行验证。
要配置透明度日志,请完成以下步骤:
注意当您创建签名集成时,您可以在以下情况下启用透明日志验证:
- 当签名包含 Fulcio 问题的简短证书时。
- 当您想要使用无密钥验证签名时。
- 在使用公钥时,要验证签名。
选择 Enable transparency log validation 复选框,以在透明日志中验证包括签名。
输入提供 Rekor transparency 日志的 URL。如果没有指定 URL,则会自动使用 Sigstore 的公共 Rekor 实例进行验证。
注意对于在线确认信息,需要 Rekor URL。
可选: 选择 Validate in offline mode 复选框,以强制对签名验证包含到透明日志。
注意只有在您启用了透明日志验证时,才可以强制对签名进行离线验证。
输入公钥以验证包含在 Rekor transparency 日志中的签名验证。如果没有指定公钥,则会自动使用公共 Sigstore 实例的密钥进行验证。
- 点击 Save。
验证
-
在 RHACS 门户中,点 Platform Configuration
Integrations。 - 向下滚动到 Signature Integrations 部分,然后单击 Signature。
- 验证签名集成创建是否成功。
可选:选择适当的方法来管理您创建的签名集成:
-
要删除签名集成,点溢出菜单
,然后选择 Delete Integration。
-
要编辑签名集成,点溢出菜单
,然后选择 Edit Integration。
-
要删除签名集成,点溢出菜单