Google Cloud 良好架构框架安全支柱中的这一原则可帮助您确定在软件开发生命周期的早期即可实施的实用控制措施,以改善安全状况。它会提供建议,帮助您实施预防性安全防护措施和部署后安全控制措施。
原则概览
提前实现安全性是指在软件开发生命周期的早期采用安全做法。此原则的目标如下:
- 在进行系统更改之前,避免出现安全缺陷。实现预防性安全防护措施,并在 CI/CD 流水线中采用基础架构即代码 (IaC)、政策即代码和安全检查等做法。您还可以在 Google Cloud中使用其他平台专用功能,例如组织政策服务和增强型 GKE 集群。
- 在提交任何系统更改后,快速可靠地尽早检测和修复安全 bug。采用代码审核、部署后漏洞扫描和安全测试等做法。
从设计上实现安全和左移安全原则相关,但范围不同。安全性设计原则有助于您避免需要重新设计整个系统的基本设计缺陷。例如,威胁建模练习表明,当前设计不包含授权政策,如果没有该政策,所有用户都会拥有相同的访问权限级别。向左转移安全性有助于您在应用更改之前避免实现缺陷(错误和配置错误),并在部署后快速可靠地进行修复。
建议
如需为云工作负载实现向左转移的安全原则,请考虑以下部分中的建议:
采用预防性安全控制措施
此建议与以下重点领域相关:
- 身份和访问权限管理
- 云治理、风险和合规性
预防性安全控制对于在云端维持强大的安全状况至关重要。这些控制措施可帮助您主动降低风险。您可以防止错误配置和未经授权的资源访问,让开发者高效工作,并帮助确保遵守行业标准和内部政策。
使用基础架构即代码 (IaC) 实现预防性安全控制措施会更有效。借助 IaC,预防性安全控制措施可以在部署更改之前对基础架构代码进行更多自定义检查。与自动化技术结合使用时,预防性安全控制措施可作为 CI/CD 流水线自动检查的一部分运行。
以下产品和 Google Cloud 功能可帮助您在环境中实施预防性控制措施:
- 组织政策服务限制条件:通过集中控制配置预定义限制条件和自定义限制条件。
- VPC Service Controls:为您的 Google Cloud 服务创建边界。
- Identity and Access Management (IAM)、Privileged Access Manager 和主账号访问边界政策:限制对资源的访问权限。
- Policy Controller 和 Open Policy Agent (OPA):在 CI/CD 流水线中强制执行 IaC 限制条件,并避免云端配置错误。
借助 IAM,您可以授权用户根据权限对特定资源执行操作。如需了解详情,请参阅使用 IAM 对组织资源进行访问权限控制。
借助组织政策服务,您可以对资源设置限制,以指定资源的配置方式。例如,您可以使用组织政策执行以下操作:
- 根据网域限制资源共享。
- 限制服务账号的使用。
- 限制新创建的资源的实际位置。
除了使用组织政策之外,您还可以使用以下方法限制对资源的访问:
- 结合使用标记和 IAM:为一系列资源分配标记,然后为标记本身设置访问权限定义,而不是为每个资源定义访问权限。
- IAM Conditions:为资源定义基于属性的条件访问权限控制。
- 深度防御:使用 VPC Service Controls 进一步限制对资源的访问。
如需详细了解资源管理,请参阅确定 Google Cloud 着陆区的资源层次结构。
自动预配和管理云资源
此建议与以下重点领域相关:
- 应用安全
- 云治理、风险和合规性
如果您还采用了声明式 IaC(而不是命令式脚本),则自动预配和管理云资源和工作负载会更高效。IaC 本身并不是一款安全工具或做法,但有助于您提高平台的安全性。通过采用 IaC,您可以创建可重复的基础架构,并为运维团队提供已知良好状态。IaC 还可以提高回滚、审核更改和问题排查的效率。
将 IaC 与 CI/CD 流水线和自动化技术相结合,您还可以使用 OPA 等工具采用将政策作为代码等做法。您可以审核一段时间内的基础架构更改,并在更改部署之前对基础架构代码运行自动检查。
如需自动部署基础架构,您可以使用 Config Controller、Terraform、Jenkins 和 Cloud Build 等工具。为了帮助您使用 IaC 和自动化功能构建安全的应用环境,Google Cloud 提供了企业基础蓝图。此蓝图是 Google 的专业设计,遵循我们推荐的所有实践和配置。该蓝图提供了有关使用 Terraform 和 Cloud Build 配置和部署 Google Cloud 拓扑的分步说明。
您可以修改企业基础蓝图的脚本,以配置符合 Google 建议且满足您自己的安全要求的环境。您可以基于该蓝图和其他蓝图构建自动化功能,也可以设计自己的自动化功能。Google Cloud Architecture Center 提供了可在企业基础蓝图之上实现的其他蓝图。以下是这些蓝图的一些示例:
- 在 Google Cloud上部署企业开发者平台
- 使用 Cloud Run 部署安全的无服务器架构
- 在企业中构建和部署生成式 AI 和机器学习模型
- 将 Google Cloud 中的数据导入安全的 BigQuery 数据仓库
- 在 Google Cloud中部署网络监控和遥测功能
自动发布安全的应用版本
此建议与以下重点领域相关:应用安全性。
如果没有自动化工具,可能很难在部署、更新和修补复杂的应用环境时,确保满足一致的安全要求。我们建议您为软件开发生命周期 (SDLC) 构建自动化 CI/CD 流水线。自动化 CI/CD 流水线可帮助您消除手动错误、提供标准化开发反馈环并实现高效的产品迭代。持续交付是 DORA 框架推荐的最佳实践之一。
通过使用 CI/CD 流水线自动发布应用,有助于您更早、更快、更可靠地检测和修复安全 bug。例如,您可以在创建工件时自动扫描安全漏洞、缩小安全审核范围,以及回滚到已知的安全版本。此外,您还可以为不同的环境(例如开发、测试或生产环境)定义相应的政策,以便仅部署经过验证的工件。
为帮助您自动发布应用并在 CI/CD 流水线中嵌入安全检查, Google Cloud 提供了多种工具,包括 Cloud Build、Cloud Deploy、Web 安全扫描器和 二进制授权。
如需建立用于验证 SDLC 中多项安全要求的流程,请使用 Google 定义的软件工件的供应链等级 (SLSA) 框架。SLSA 要求对源代码、构建流程和代码出处进行安全检查。其中许多要求都可以纳入自动化 CI/CD 流水线中。如需了解 Google 如何在内部应用这些做法,请参阅 Google Cloud的变革方法。
确保应用部署遵循批准的流程
此建议与以下重点领域相关:应用安全性。
如果攻击者破解了 CI/CD 流水线,则整个应用堆栈可能会受到影响。为了帮助保护流水线,您应在将代码部署到生产环境之前实施已确定的批准流程。
如果您使用 Google Kubernetes Engine (GKE)、GKE Enterprise 或 Cloud Run,则可以使用 Binary Authorization 来建立审批流程。Binary Authorization 会将可配置的签名关联到容器映像。这些签名(也称为证明)有助于验证映像。在部署时,Binary Authorization 会使用这些证明来确定相应流程是否已完成。例如,您可以使用 Binary Authorization 执行以下操作:
- 验证特定构建系统或 CI 流水线是否已创建容器映像。
- 验证容器映像是否符合漏洞签名政策。
- 验证容器映像是否将提升标准传递到下一个部署环境,例如从开发环境到质量检查环境。
通过使用 Binary Authorization,您可以强制要求仅在目标平台上运行受信任的代码。
在应用部署之前扫描已知漏洞
此建议与以下重点领域相关:应用安全性。
建议您在应用工件部署到生产环境之前使用自动化工具,以便持续对应用工件执行漏洞扫描。
对于容器化应用,请使用 Artifact Analysis 自动为容器映像运行漏洞扫描。Artifact Analysis 会在新映像上传到 Artifact Registry 时扫描这些映像。此扫描可提取有关容器中系统软件包的信息。初始扫描后,Artifact Analysis 会持续监控 Artifact Registry 中所扫描映像的元数据以查找新漏洞。当 Artifact Analysis 从漏洞来源收到新的和更新后的漏洞信息时,它会执行以下操作:
- 更新已扫描映像的元数据,使其保持最新。
- 为新的版本说明创建新的漏洞发生实例。
- 删除不再有效的漏洞发生实例。
监控应用代码是否存在已知漏洞
此建议与以下重点领域相关:应用安全性。
使用自动化工具持续监控应用代码是否存在已知漏洞(例如 OWASP 十大风险)。如需详细了解 Google Cloud 支持 OWASP 十大风险缓解技术的产品和功能,请参阅 Google Cloud上的 OWASP 十大风险缓解选项。
使用 Web Security Scanner 可帮助识别 App Engine、Compute Engine 和 GKE Web 应用中的安全漏洞。此扫描程序会抓取您的应用,跟踪起始网址范围内的所有链接,并尝试执行尽可能多的用户输入和事件处理脚本。它可自动扫描和检测常见漏洞,包括跨站脚本攻击、代码注入、混合内容以及过时或不安全的库。Web Security Scanner 可让您尽早识别这些类型的漏洞,而不会因误报而分心。
此外,如果您使用 GKE Enterprise 管理 Kubernetes 集群的舰队,安全状况信息中心会显示切实可行的建议,以帮助您改善舰队的安全状况。