Kubewarden 1.18 发布,实现 SLSA 级别 3

文摘   2024-11-12 10:00   中国香港  

作者:Víctor Cuadrado Juan

我们很高兴地宣布发布 Kubewarden v1.18.0。在此次发布中,我们专注于实现 SLSA[1] 标准的级别 3,同时修复了一些小错误,增加了测试,并改善了开发者的技术债务。

SLSA 级别 3

Kubewarden 在 Sigstore 集成方面处于领先地位(作为上游 sigstore-rs Rust 库的共同维护者),我们已经签署了多年的制品,并提供了 SBOM。

在此周期中,我们对构建管道进行了必要的调整,以实现 SLSA 级别 3。SLSA 是描述和改善供应链安全的标准。

要达到 SLSA 级别 3,项目需要提供一个强化的构建平台,具备强大的篡改保护。所有这些都通过提供签名的溯源证明来验证,这些证明验证了构建过程、构建依赖,并有助于重现构建。

对于 Kubewarden 来说,这意味着我们稍微重构了 GitHub Actions 工作流程,以简化可重用工作流程,安全地传递制品的摘要用于溯源证明创建,并发布这些新的证明。我们在证明创建中使用了 docker buildx 的证明创建设置和 actions/attest-build-provenance GitHub Action。

新的溯源证明

我们现在发布的溯源证明包括:

  • 容器镜像:作为签名的容器镜像层发布。
  • 我们 OCI 注册表中的 Helm charts:作为签名的 OCI 制品层发布到 GitHub 的不可变证明存储中。
  • 我们的 CLI 工具 kwctl:发布到 GitHub 的不可变证明存储中。

在 Kubewarden 中,我们还使用了以下第三方依赖项:

  • 我们作为 subcharts 包含的社区 charts:Policy Reporter,我们已向上游提交了溯源创建。
  • 用于 Helm 钩子的 kubectl 镜像:我们将迁移到 rancher/kuberlr-kubectl,它附带溯源,并提供用于隔离安装的缓存 kubectl 命令。

我们决定在稍后日期为策略实现溯源。目前,策略可以是 OCI 制品(通常来自 artifacthub.io),或只是 YAML 定义(例如:使用 cel-policy 的 CEL 策略),或使用 kyverno-dsl-policy 的 Kyverno DSL 策略。此外,所有策略都得益于 WebAssembly 的沙箱化。

验证证明

有关验证证明的信息,请查看我们的文档[2]。和往常一样,我们通过 Sigstore 使用无密钥工作流程签署证明。

验证溯源证明的用户体验在这一领域仍在不断完善。对于二进制文件如 kwctl,操作非常简单:

$ gh attestation verify kwctl-linux-x86_64 --repo kubewarden/kwctl
Loaded digest sha256:64e0e28eef99f69a1e86f2677bb9c506c3fafe6d743c354b8a4b1c1b5ac90176 for file://kwctl-linux-x86_64
Loaded 2 attestations from GitHub API
✓ Verification succeeded!

sha256:64e0e28eef99f69a1e86f2677bb9c506c3fafe6d743c354b8a4b1c1b5ac90176 was attested by:
REPO              PREDICATE_TYPE                  WORKFLOW
kubewarden/kwctl  https://slsa.dev/provenance/v1  .github/workflows/build.yml@refs/tags/v1.18.0-rc1
kubewarden/kwctl  https://slsa.dev/provenance/v1  .github/workflows/build.yml@refs/heads/main

对于容器镜像,首先需要找到证明清单索引层,然后找到证明层本身。如有疑问,请查阅各项目在其 GitHub 仓库中的开发者文档。

CRD 的短名称

Kubernetes 支持 CRD 的短名称,随着新 PolicyGroups 功能的推出,我们认为是时候将其纳入使用了。短名称简化了日常操作。例如,列出 ClusterAdmissionPolicies:

kubectl get cap
NAME                        POLICY SERVER   MUTATING   BACKGROUNDAUDIT   MODE      OBSERVED MODE   STATUS   AGE
do-not-run-as-root          default         true       true              monitor   monitor         active   3d
do-not-share-host-paths     default         false      true              monitor   monitor         active   3d
...

这要好得多,对吧?

以下是我们的简化资源类型:

ResourceshortName
AdmissionPoliciesap
ClusterAdmissionPoliciescap
AdmissionPolicyGroupsapg
ClusterAdmissionPolicyGroupscapg
PolicyServersps

废弃 CRD 版本 v1alpha2

随着此版本的发布,我们将废弃 CRD 版本 v1alpha2,转而使用当前的 v1。当前的 v1 已使用多年。用户无需采取任何行动,因为我们的控制器会自动处理迁移。

联系我们

如往常一样,您可以通过 Slack[3]GitHub 讨论[4]与我们联系。

参考资料
[1]

SLSA: https://slsa.dev/spec/v1.0/

[2]

文档: https://docs.kubewarden.io/tutorials/verifying-kubewarden

[3]

Slack: https://kubernetes.slack.com/?redir=%2Fmessages%2Fkubewarden

[4]

GitHub 讨论: https://github.com/orgs/kubewarden/discussions


点击【阅读原文】阅读网站原文


CNCF概况(幻灯片)

扫描二维码联系我们!




CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。 

CNCF云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请关注CNCF微信公众号。

CNCF
云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
 最新文章