概览

本页面简要介绍了 Binary Authorization。

简介

Binary Authorization 是 Google Cloud Platform (GCP) 中的一项服务,可在部署基于容器的应用时提供软件供应链安全性。Binary Authorization 扩展了 Google Kubernetes Engine (GKE),并且可在部署时强制执行安全政策。Binary Authorization 适用于 Container Registry 或其他容器映像注册表中的容器映像。

通过 Binary Authorization,您可以自动以数字化方式检查软件供应链的每个组件,从而确保在应用部署到生产环境之前软件的质量和完整性。

Binary Authorization 是部署架构的一部分,其中包括:

  • Container Registry 或其他存储着您要部署的容器映像的注册表
  • GKE,用于运行集群中的映像
  • Container Analysis,用于存储授权流程中使用的可信元数据
  • Binary Authorization 本身,用于根据您配置的政策允许或阻止将映像部署到 GKE

Binary Authorization 基于 Kritis 规范,后者是 Grafeas 开源项目的一部分。

背景

借助 GKE,团队可以开发高度分离的系统(例如基于微服务架构构建的系统),并鼓励围绕持续集成 (CI) 和持续部署 (CD) 使用短生命周期流程。在此类环境中,软件通常会在预演和测试期间从部署集群迁移到部署集群,因此很难确保所有软件都可以根据内部最佳做法和标准来构建、测试、发布和部署。

Binary Authorization 的目标是降低在此类环境中部署错误的、存在故障的或未经授权的软件的风险。借助这项服务,您可以明确指定必须完成哪些内部流程,才允许容器映像进入各个部署阶段;然后进行检查,确保获得授权的各方已验证流程完成情况。

Binary Authorization 没有关于软件完整性和质量的内部流程或最佳做法。相反,它可以限制未通过必需检查的容器映像的部署,帮助您强制执行您自己的做法。

典型使用场景

最常见的 Binary Authorization 使用场景均涉及证明。在这些场景中,在容器映像构建完毕后,其唯一摘要将由签名者进行数字签名,以便创建证明。

在部署时,Binary Authorization Enforcer 会使用证明者来验证证明。这种方式仅允许部署具有经过验证的证明的容器映像。

涉及证明的使用场景包括:

  • 构建验证,在此场景中,Binary Authorization 会验证容器映像是由特定的构建系统还是持续集成 (CI) 流水线构建。
  • 漏洞扫描,在此场景中,Container Analysis 也会扫描 CI 构建的容器映像,并在 CI 流水线本身或个人创建证明之前解决已识别出的漏洞。
  • 手动检查,在此场景中,代表(如质量检查代表)会手动创建证明。

如需查看端到端证明教程,请参阅通过控制台开始使用

生命周期

容器映像的部署生命周期包含以下阶段;其中,必须完成一个阶段,才能进入下一个阶段:

  • 构建和单元测试
  • 部署到开发环境中,其中的用户不会受到影响
  • 部署到质量检查环境中,其中只有内部用户会受到影响
  • 部署到 Canary 环境中,其中只有一部分外部用户会受到影响
  • 部署到生产环境

构建和测试后,每个阶段都会有自己的部署环境(在这里是 GKE 集群),还有其自己的在映像进入下一阶段之前必须满足的条件。Binary Authorization 支持您指定映像从一个阶段进入另一个阶段所必须满足的条件,并提供了强制执行该条件的方法。

特性

Binary Authorization 可提供:

  • 一个政策模型,用于描述容器映像满足哪些限制条件后才能部署
  • 一个证明模型,用于指定可证明或验证您环境中的必需流程是否已在部署前完成的可信授权方
  • 强制执行功能,可防止错误的、存在故障的或未经授权的映像进入部署环境

政策模型

Binary Authorization 实现了一个政策模型,其中的政策是一组规则,用于管理将容器映像部署到 GKE 集群的过程。政策中的规则规定了映像在部署前必须满足的条件。典型的政策要求容器映像在部署之前拥有经过验证的数字签名。

在这类政策中,规则指定了哪些可信机构(称为 签名者)必须断言必需的流程已完成,并且映像已准备好进入下一部署阶段。签名者可以是真人用户,更为常见的是机器进程(如一个构建和测试系统),也可以是持续部署流水线的一部分。

在开发生命周期内,签名者会对全局唯一的容器映像描述符进行数字签名,从而创建称为证明的经过认证的陈述。稍后,在部署阶段,Binary Authorization 使用证明者来验证表明流水线中的必需流程已完成的证书。

如需详细了解 Binary Authorization 政策模型和其他概念,请参阅主要概念

设置

如需设置 Binary Authorization,您必须先为参与部署和授权流水线的项目启用该服务。然后,您可以根据需要创建 GKE 集群,并启用该服务。

接下来,您可以定义政策,指定可在满足哪些限制条件后部署容器映像。如果您的政策要求在部署之前提供证明,您还必须先设置可以验证证明的证明者,验证无误后才允许部署关联的容器映像。

如需详细了解设置步骤,请参阅设置概览

授权

在可以部署容器映像之前,任何必需的签名者都必须创建一个可以证实映像已准备好进入下一部署阶段的证明。证明是一条记录,其中包含容器映像的注册表路径和摘要,并且已使用签名者的加密私钥进行数字签名。

如需详细了解授权,请参阅创建证明

强制执行

将容器映像部署到 GKE 时,Binary Authorization 会检查政策,并强制执行已找到的任何用于管理部署的规则。如果规则需要证明者,Binary Authorization 会进行检查,以确保所有证明者均已安全验证映像。

如果映像满足政策中指定的限制条件,Binary Authorization 会允许将该映像部署到集群。否则,该服务会阻止部署,并将描述相应映像为何不符合规则的消息写入审核日志中。

如需详细了解部署,请参阅部署容器

使用 VPC Service Controls 保护 Binary Authorization

VPC Service Controls 可帮助您降低未经授权从 Google 代管服务和资源中复制或转移数据的风险。

如需详细了解如何保护 Binary Authorization 相关资源,请参阅使用 VPC Service Controls 进行保护