保护部署

本文档介绍了保护部署的最佳实践。

创建和强制执行部署政策

要保护运行时环境,请定义包含部署条件的政策,并在部署前后验证政策合规性。定义仅允许由预定义证明者签名的代码的政策,有助于限制部署以及仅部署来自可信来源的代码。

部署标准的示例包括:

  • 没有严重级别高于“中”的已知漏洞
  • 源代码来自可信的源代码库
  • 可信的构建服务运行了该构建
  • 您要部署的构建工件来自可信工件代码库

生成元数据

如需验证这些要求,您需要提供有关 build 工件的元数据。

build 源

构建出处是有关 build 的可验证数据的集合,例如已构建映像的摘要、输入源位置、构建工具链和构建时长。SLSA 是一个评估安全状况的框架,它提供了出处模型出处要求。出处是框架中的一个要求类别,每项要求都与 SLSA 级别相关联,因此您可以逐步实现缓解措施。

  • 对于 SLSA 级别 1 保证,出处必须可用。
  • 对于 SLSA 级别 2 保证,必须生成出处,并且使用方必须能够验证其真实性和完整性。
  • SLSA 级别 3 和 4 对出处签名和出处数据细节深度有更严格的要求。

某些构建服务会生成构建出处元数据。

漏洞

漏洞扫描软件会检查源代码和构建工件是否存在已知的漏洞。Artifact Analysis 可以自动扫描推送到 Artifact Registry 的容器映像,以查找漏洞。如需在存储工件之前检查工件是否存在漏洞,您可以在本地开发环境或 CI/CD 流水线中使用 On-Demand Scanning API,例如 Cloud Build 构建步骤

设置政策强制执行

在拥有可部署工件的元数据后,您需要使用工具来强制执行政策。

在 Google Cloud 中,您可以在 Binary Authorization 中为部署配置政策。对于尝试部署到受支持的基于容器的平台,Binary Authorization 会强制执行政策。它还可以对 GKE、Cloud Run 和 GKE Enterprise 上运行的工作负载执行政策持续验证。

部署前检查可以屏蔽不在豁免映像列表中的所有映像,以便系统仅从受信任的注册表中部署可信映像。您的政策可能还要求提供attestations,即表明映像已通过特定的必要流程成功构建的数字文档。例如,证明可能表明某张图片符合以下条件:

持续验证将政策验证扩展到部署后环境。启用后,Binary Authorization 会通过在 Cloud Logging 中定期记录政策一致性,在整个 Pod 生命周期中提供验证。这在很多情况下都很有用。 例如,如果您在部署容器后更改政策,则持续验证会记录违反更新后的政策的 Pod。它还会记录使用试运行Breakglass 部署的 Pod 存在的政策违规行为。

使用封闭式部署服务

借助部署门控,您可以使用独立的 CI/CD 服务或与流程自动化系统集成的 CI/CD 服务,批准或拒绝部署过程中的特定时间点的部署。封闭式部署可防止未经授权的用户更改应用环境。这些角色为部署流程提供额外的监督,并且增加了审批的可见性。

在 Google Cloud 中,Cloud Deploy 提供用于将工作负载部署到 Google Kubernetes Engine 的全代管式服务。借助封闭部署功能,用户可以指定是否需要获得批准才能提升到目标。

监控工作负载

工作负载是在基于容器的平台(例如 GKE 和 Cloud Run)上运行的应用。您部署的工作负载最好具有安全强化配置,以限制其攻击面。

可能很难大规模地手动检查各集群的工作负载是否存在配置问题。Software Delivery Shield 是 Google Cloud 上的一种全代管式软件供应链安全解决方案,可在 Google Cloud 控制台的 Cloud Run 和 GKE 界面中提供信息中心,以查看工作负载的安全数据分析。

GKE 安全状况信息中心可为您提供相关指导,以根据 Google 的建议加强集群的安全状况。它支持自动工作负载配置扫描,可检查所有工作负载中是否存在已知的配置问题。GKE 会根据相关的行业最佳实践(例如 Pod 安全标准中的政策)检查部署的每个工作负载。GKE 会对所发现问题的严重程度进行分级,并返回可操作的建议及相关日志。您可以使用 Cloud Logging 获取可审核的问题跟踪记录,以实现更好的报告和可观测性。如需了解如何在 GKE 安全状况信息中心内查看安全性数据分析,请参阅在 GKE 上部署并查看安全性数据分析

Cloud Run 包含一个安全面板,用于显示软件供应链安全性数据分析,例如 SLSA build 级合规性信息、构建来源以及在正在运行的服务中发现的漏洞。如需了解如何在 Cloud Run 安全性数据分析面板中查看安全性数据分析,请参阅在 Cloud Run 上部署并查看安全性数据分析

Software Delivery Shield 还提供了其他服务和功能,以改善整个软件开发生命周期中的安全状况。如需了解详情,请参阅 Software Delivery Shield 概览

后续步骤