您可以使用Red Hat Advanced Cluster Security for Kubernetes (RHACS) 通过针对预配置的密钥验证镜像签名来确保集群中容器镜像的完整性。
您可以创建策略来阻止未签名的镜像和没有经过验证签名的镜像。您还可以通过使用RHACS准入控制器来阻止未授权的部署创建来强制执行策略。
在执行镜像签名验证之前,您必须首先在 RHACS 中创建一个签名集成。
一个签名集成可以配置多种验证方法。支持以下验证方法:
Cosign 公钥
Cosign 证书
您必须已经拥有一个 PEM 编码的 Cosign 公钥。有关 Cosign 的更多信息,请参见 Cosign 概述。
在 RHACS 门户中,选择 **平台配置** → **集成**。
滚动到 **签名集成** 并单击 **签名**。
单击 **新建集成**。
输入 **集成名称**。
单击 **Cosign 公钥** → **添加新的公钥**。
输入 **公钥名称**。
对于 **公钥值** 字段,输入 PEM 编码的公钥。
(可选) 您可以通过单击 **添加新的公钥** 并输入详细信息来添加多个密钥。
单击 **保存**。
您必须已经拥有证书标识和颁发者。或者,您还需要一个 PEM 编码的证书和证书链。有关 Cosign 证书的更多信息,请参见 Cosign 证书验证
在 RHACS 门户中,选择 **平台配置** → **集成**。
滚动到 **签名集成** 并单击 **签名**。
单击 **新建集成**。
输入 **集成名称**。
单击 **Cosign 证书** → **添加新的证书验证**。
输入 **证书 OIDC 发行者**。您可以在 RE2 语法 中可选地使用正则表达式。
输入 **证书标识**。您可以在 RE2 语法 中可选地使用正则表达式。
(可选) 输入 **PEM 编码的证书链** 以验证证书。如果未提供证书链,则将针对 Fulcio 根证书验证证书。
(可选) 输入 **PEM 编码的证书** 以验证签名。
(可选) 您可以通过单击 **添加新的证书验证** 并输入详细信息来添加多个证书验证。
单击 **保存**。
创建自定义安全策略时,可以使用 **受信任的镜像签名者** 策略条件来验证镜像签名。
您必须已经配置了一个至少包含 1 个 Cosign 公钥的签名集成。
创建或编辑策略时,将 **未经受信任的镜像签名者验证** 策略条件拖到 **策略条件** 部分的策略字段拖放区域。
单击 **选择**。
从列表中选择受信任的镜像签名者,然后单击 **保存**。
为了防止用户使用未签名的镜像,您可以使用 RHACS 准入控制器强制执行签名验证。您必须首先在集群配置设置中启用 **联系镜像扫描器** 功能。然后,在创建安全策略以强制执行签名验证时,您可以使用 **通知和强制执行** 选项。
有关更多信息,请参见 启用准入控制器强制执行。