实现提前确保安全性

Last reviewed 2025-02-05 UTC

Well-Architected Framework 的安全核心中的这一原则可帮助您确定可在软件开发生命周期早期实施的实用控制措施,以改善安全状况。Google Cloud 它提供了一些建议,可帮助您实施预防性安全保障措施和部署后安全控制措施。

原则概览

“安全左移”是指在软件开发生命周期的早期阶段采用安全实践。 此原则的目标如下:

  • 在进行系统更改之前避免安全缺陷。实施预防性安全保障措施,并采用基础设施即代码 (IaC)、政策即代码和 CI/CD 流水线中的安全检查等实践。 您还可以使用其他平台专用功能,例如 组织政策服务强化型 GKE 集群 。 Google Cloud
  • 在提交任何系统更改后,尽早、快速且可靠地检测和修复安全 bug。采用代码审核、部署后漏洞扫描和安全测试等实践。

“践行‘设计即安全’理念” 和“安全左移”原则相关,但范围不同。 例如,威胁建模练习显示,当前设计不包含授权政策,如果没有授权政策,所有用户都将具有相同的访问权限级别。例如,威胁建模练习表明,当前设计不包含授权政策,并且所有用户在没有授权政策的情况下都将拥有相同的访问权限级别。左移安全性有助于您在应用更改之前避免实现缺陷(bug 和错误配置),并能在部署后快速可靠地修复问题。

建议

如需为云工作负载实施“安全左移”原则,请考虑以下部分中的建议:

采用预防性安全控制措施

此建议与以下 重点领域相关:

  • 身份和访问权限管理
  • 云治理、风险和合规性

预防性安全控制措施对于在云中保持稳定的安全状况至关重要。这些控制措施可帮助您主动降低风险。您可以防止配置错误和未经授权的资源访问,让开发者高效工作,并帮助确保符合行业标准和内部政策。

如果使用基础设施即代码 (IaC) 实现预防性安全控制措施,这些控制措施会更有效。借助 IaC,预防性安全控制措施可以在部署更改之前对基础设施代码进行自定义程度更高的检查。如果与自动化相结合,预防性安全控制措施可以作为 CI/CD 流水线的自动检查的一部分运行。

以下产品和 Google Cloud 功能可帮助您在环境中实现 预防性控制措施:

IAM 可让您授权用户根据权限对特定资源执行操作。 如需了解详情,请参阅 使用 IAM 控制对组织资源的访问权限

组织政策服务可让您设置对资源的限制,以指定资源的配置方式。例如,您可以使用组织政策执行以下操作:

除了使用组织政策之外,您还可以使用以下方法限制对资源的访问:

  • IAM 标记: 为一组资源分配标记,然后为 标记本身设置访问权限定义,而不是为每个资源定义访问权限。
  • IAM Conditions: 为资源定义基于属性的条件访问权限控制。
  • 纵深防御:使用 VPC Service Controls 进一步限制对资源的访问。

如需详细了解资源管理,请参阅 确定着陆区的资源层次结构 Google Cloud

自动预配和管理云资源

此建议与以下 重点领域相关:

  • 应用安全
  • 云治理、风险和合规性

如果您还采用声明式 IaC(而不是命令式脚本),则自动预配和管理云资源和工作负载会更有效。IaC 本身不是安全工具或实践,但有助于提高平台的安全性。采用 IaC 可让您创建可重复的基础设施,并为运营团队提供已知良好状态。IaC 还可以提高回滚、审核更改和问题排查的效率。

如果与 CI/CD 流水线和自动化相结合,IaC 还可让您采用政策即代码等实践,并使用 OPA 等工具。 您可以审核基础设施随时间的变化,并在部署更改之前对基础设施代码运行自动检查。

如需自动执行基础设施部署,您可以使用 Config Controller、 Terraform、Jenkins 和 Cloud Build等工具。 为了帮助您使用 IaC 和自动化构建安全的应用环境, Google Cloud 提供了 企业基础蓝图。此蓝图是 Google 的专业设计,遵循了我们所有的推荐实践和配置。该蓝图提供了使用 Terraform 和 Cloud Build 配置和部署 Google Cloud 拓扑的分步 说明。

您可以修改企业基础蓝图的脚本,以配置遵循 Google 建议并满足您自身安全要求的环境。您可以基于该蓝图和其他蓝图构建自动化功能,也可以设计自己的自动化功能。架构中心提供了其他蓝图,这些蓝图可以在企业基础蓝图的基础上实现。Google Cloud 以下是这些蓝图的一些示例:

自动发布安全应用

此建议与以下重点领域相关:应用安全。

如果没有自动化工具,可能很难在部署、更新和修补复杂的应用环境时,确保满足一致的安全要求。我们建议您为软件开发生命周期 (SDLC) 构建自动化的 CI/CD 流水线。自动化的 CI/CD 流水线可帮助您消除手动错误、提供标准化开发反馈环并实现高效的产品迭代。持续交付是 DORA 框架 推荐的最佳实践之一。

通过使用 CI/CD 流水线自动发布应用,有助于提高您尽早、快速且可靠地检测和修复安全 bug 的能力。例如,您可以在创建工件时自动扫描安全漏洞,缩小安全审核范围,并回滚到已知且安全的版本。您还可以为不同的环境(例如开发、测试或生产环境)定义政策,以便仅部署经过验证的工件。

为了帮助您自动发布应用并在 CI/CD 流水线中嵌入安全检查, Google Cloud 提供了多种工具,包括 Cloud BuildCloud DeployWeb Security Scanner、 和 Binary Authorization

如需建立一个在 SDLC 中验证多项安全要求的流程, 请使用 软件制品的供应链等级 (SLSA) 框架,该框架由 Google 定义。SLSA 要求对源代码、构建流程和代码出处进行安全检查。许多此类要求都可以纳入自动化的 CI/CD 流水线中。如需了解 Google 如何在内部应用这些实践,请参阅 Google Cloud's 的变更方法

确保应用部署遵循批准的流程

此建议与以下重点领域相关:应用安全。

如果攻击者破解了 CI/CD 流水线,则整个应用堆栈可能会受到影响。为了帮助保护流水线,您应在将代码部署到生产环境之前实施已确定的批准流程。

如果您使用 Google Kubernetes Engine (GKE) 或 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 十大风险)。 如需详细了解支持 OWASP 十大风险缓解技术的产品和功能,请参阅 Google Cloud 上的 OWASP 十大风险缓解选项 Google Cloud。 Google Cloud

使用 Web Security Scanner 可帮助识别 App Engine、 Compute Engine 和 GKE Web 应用中的安全漏洞。此扫描程序会抓取您的应用,跟踪起始网址范围内的所有链接,并尝试执行尽可能多的用户输入和事件处理脚本。它可以自动扫描和检测常见漏洞, 包括 跨站脚本攻击代码注入混合内容以及 过时或不安全的库。Web Security Scanner 可让您尽早识别这些类型的漏洞,而不会因误报而分散您的注意力。

此外,如果您使用 GKE 管理 Kubernetes 集群舰队,安全状况信息中心会显示切实可行的建议,以帮助改善舰队的安全状况。