Cloud 运行 与 gcloud 漏洞过滤器的二进制授权

Binary Authorization for Cloud Run vs gcloud vulnerability filter

我已经在 Google 的 Container Registry 中为我的图像启用了自动漏洞扫描,现在正在考虑使用二进制授权让我的 Cloud 运行 服务只部署通过政策。

我通读了文档 https://cloud.google.com/binary-authorization/docs/creating-attestations-kritis,所以我需要创建一个证明者,使用这个 kritis signer 来签署图像并根据我的政策创建证明,然后才创建 Cloud 运行 服务将被部署。

我想知道在我的情况下是否真的需要所有这些。

在我的 Github 操作 CI/CD 管道中,我可以使用 gcloud 命令 gcloud beta container images describe HOSTNAME/PROJECT_ID/IMAGE_ID@sha256:HASH --show-package-vulnerability 查看新上传和扫描的图像的漏洞,如果发现任何漏洞,我的管道就会失败在使用新映像部署 Cloud 运行 服务之前,某些严重性(例如严重)的漏洞甚至忽略某些 CVE。所以我基本上可以实现与 kritis signer 使用的政策中可用选项相同的选项 https://github.com/grafeas/kritis/blob/HEAD/samples/signer/policy.yaml

gcloud 命令似乎比实现使用 kritis signer 工具、创建证明等整个过程要简单得多

那么我应该使用二进制授权并遵循该过程而不是在我的 CI/CD 管道中使用 gcloud 过滤器检查有什么优势或安全原因吗?

提前感谢您的帮助。

有 2 个不同的图层:

  • 一方面,您检查您的容器是否包含任何已知漏洞
  • 另一方面,Binary Authorization,您检查是否从授权注册表部署容器

想象一下:

  • 您正确检查了 CI/CD 管道中的容器 CVE 并将其存储在注册表中
  • 有人从另一个注册表部署容器。

即使您在您的注册表中检查您的容器,您也无法保护云 运行 免受来自另一个注册表的部署。

所以,你所有的努力都是白搭!