Skip to main content

Kubernetes 准入控制器

了解可如何使用准入控制器在 Kubernetes 群集中强制实施项目证明。

关于 Kubernetes 准入控制器

项目证明使你能够为自己构建的软件创建不可伪造的来源和完整性保证。 反过来,使用软件的人员可以验证软件是在哪里以及如何构建的。

Kubernetes 准入控制器是管理 Kubernetes API 服务器行为的插件。 它们通常用于在 Kubernetes 群集中强制实施安全策略和最佳做法。

使用开放源代码 Sigstore Policy Controller 项目,可以将准入控制器添加到可以强制实施项目证明的 Kubernetes 群集。 通过这种方式,可以确保只能部署具有有效证明的项目。

若要安装控制器,我们提供了两个 Helm 图表:一个用于部署 Sigstore Policy Controller,另一个用于加载 GitHub 信任根和默认策略。

关于映像验证

安装策略控制器后,它将截获所有映像拉取请求,并验证映像的证明。 证明必须作为 OCI 附加工件存储在映像注册表中,其中包含一个 Sigstore 捆绑包,该捆绑包包含证明和用于验证证明的加密材料(例如证书和签名)。 然后执行验证过程,确保映像是使用指定的生成证明生成的,并与群集管理员启用的任何策略匹配。

若要使映像可验证,必须在注册表中具有有效的证明,这可以通过在 actions/attest-build-provenance 操作中启用 push-to-registry: true 属性来完成。 有关如何为容器映像生成证明的更多详细信息,请参阅“生成容器映像的生成证明”。

关于信任根和策略

Sigstore Policy Controller 主要配置了信任根和策略,由自定义资源 TrustRootClusterImagePolicy 表示。 TrustRoot 表示用于验证证明的公钥材料的受信任分发渠道。 ClusterImagePolicy 表示用于对映像强制实施证明的策略。

TrustRoot 可能还包含 TUF 存储库根路径,使群集能够持续安全地接收对其受信任公钥材料的更新。 如果未指定,则默认情况下,ClusterImagePolicy 将使用开放源代码 Sigstore Public Good Instance 的密钥材料。 验证为专用存储库生成的证明时,ClusterImagePolicy 必须引用 GitHub TrustRoot

后续步骤

准备好使用准入控制器时,请参阅 使用 Kubernetes 准入控制器强制实施项目证明