Well-Architected Framework 的安全核心中的这一原则提供了相关建议,可帮助您在云应用、服务和平台的设计中融入强大的安全功能、控制机制和实践。Google Cloud 从构思到运营,如果将安全性作为设计流程每个阶段不可或缺的一部分,则安全性会更加有效。
原则概览
如 Google 对“默认安全”的承诺概览中所述, “默认安全”和“设计安全”经常可以互换使用,但 它们代表了构建安全系统的不同方法。这两种方法都旨在最大限度地减少漏洞并提高安全性,但在范围和实现方面有所不同:
- 默认安全:侧重于确保系统的默认 设置设置为安全模式,从而最大限度地减少用户或 管理员采取措施来保护系统的需求。此方法旨在为所有用户提供基准级别的安全性。
- 设计安全:强调在整个系统的开发生命周期中主动融入安全 考虑因素。此方法旨在尽早预测潜在威胁和漏洞,并做出可降低风险的设计选择。此方法涉及使用安全编码实践、进行安全审核,并在整个设计流程中嵌入安全性。“设计安全”方法是一种总体理念,可指导开发流程,并有助于确保安全性不是事后才考虑的事情,而是系统设计中不可或缺的一部分。
建议
如需为云工作负载实现“设计安全”原则,请考虑以下部分中的建议:
选择有助于保护工作负载安全的系统组件
此建议与所有 重点领域相关。
为了实现有效的安全性,一项基本决策是选择构成平台、解决方案或服务的强大系统组件(包括硬件和软件组件)。为了减少安全攻击面并限制潜在损害,您还必须仔细考虑这些组件的部署模式及其配置。
在应用代码中,我们建议您使用简单、安全且可靠的库、抽象和应用框架,以消除各类漏洞。如需扫描软件库中的漏洞,您可以使用第三方工具。您还可以使用 Assured Open Source Software, 该软件使用 Google 使用和保护的开源 软件 (OSS) 软件包,有助于降低软件供应链的风险。
您的基础设施必须使用支持安全运行的网络、存储和计算选项,并符合您的安全要求和风险接受程度。对于面向互联网的工作负载和内部工作负载,基础设施安全都非常重要。
如需了解支持此建议的其他 Google 解决方案, 请参阅 实现左移安全。
构建分层安全方法
此建议与以下 重点领域相关:
- AI 和机器学习安全
- 基础架构安全
- 身份和访问权限管理
- 数据安全
我们建议您通过应用深度防御方法,在应用和基础架构堆栈的每个层级实现安全措施。
使用平台每个组件中的安全功能。如需限制访问权限并确定发生安全事件时潜在影响的边界(即“影响范围”),请执行以下操作:
- 尽可能简化系统设计以适应灵活性。
- 记录每个组件的安全要求。
- 纳入强大的安全机制以满足弹性要求和恢复要求。
在设计安全层时,请进行风险评估,以确定您需要哪些安全功能才能满足内部安全要求和外部监管要求。我们建议您使用适用于云环境且与监管要求相关的行业标准风险评估框架。例如,云 安全联盟 (CSA) 提供了 Cloud Controls Matrix (CCM)。 风险评估为您提供了一系列风险以及用于降低这些风险的相应安全控制机制。
进行风险评估时,请注意您与云提供方签订了责任共担方案。因此,云环境中的风险与本地环境中的风险有所不同。例如,在本地环境中,您需要减少硬件堆栈的漏洞。相反,在云环境中,云提供商承担这些风险。此外,请注意,对于每个云提供商,IaaS、PaaS 和 SaaS 服务之间的责任共担边界有所不同。
确定潜在风险后,您必须设计并制定缓解计划,该计划使用技术、管理和运营控制机制,以及合同保护和第三方证明。此外,OWASP 应用威胁建模方法等威胁建模方法有助于您识别潜在漏洞,并建议采取措施来解决这些漏洞。
使用经过安全加固和证明的基础设施和服务
此建议与所有 重点领域相关。
成熟的安全计划会减少安全公告中所述的新漏洞。安全计划还应提供补救措施来修复现有部署中的漏洞,并保护虚拟机和容器映像。您可以使用特定于映像的操作系统和应用的加固指南,以及互联网安全中心 (CIS)提供的基准等。
如果您为 Compute Engine 虚拟机使用自定义映像,则需要自行修补映像。或者,您可以使用 Google 提供的 精选操作系统映像, 这些映像会定期修补。如需在 Compute Engine 虚拟机上运行容器,请使用 Google 精选的 Container-Optimized OS 映像。 Google 会定期修补和更新这些映像。
如果您使用的是 GKE,我们建议您启用 节点自动升级 功能,让 Google 使用最新的补丁程序更新您的集群节点。Google 负责管理 GKE 控制层面,这些控制层面会自动进行更新和修补。如需进一步减少容器的攻击面,您可以 使用 Distroless 映像。 Distroless 映像非常适合对安全性敏感的应用、微服务以及最大限度地减少映像大小和攻击面的情况。
对于敏感工作负载,请使用 安全强化型虚拟机, 该虚拟机可防止在虚拟机启动周期中加载恶意代码。 安全强化型虚拟机实例可提供启动安全性,监控完整性并使用 虚拟可信平台模块 (vTPM)。
为了帮助保护 SSH 访问, OS Login 可让您的员工使用 Identity and Access Management (IAM) 权限 作为可靠来源而不是依赖 SSH 密钥来连接虚拟机。因此,您不必管理整个组织的 SSH 密钥。OS Login 将管理员的访问权限与其员工生命周期相关联,因此,当员工更改角色或离开您的组织时,即会撤消其账号的访问权限。OS Login 还支持 Google 双重身份验证, 从而增加一层额外的安全保障以防范账户接管攻击。
在 GKE 中,应用实例在 Docker 容器内运行。如需启用已定义的风险概况并限制员工更改容器,请确保您的容器为无状态且不可变。不变性原则意味着您的员工不会修改容器或以互动方式访问容器。如果必须更改容器,则您需要构建新映像并重新部署该映像。仅在特定调试场景中启用对底层容器的 SSH 访问。
为了帮助在全球范围内保护环境中的配置,您可以使用 组织政策 对影响云资产行为的 资源设置限制或防护措施。例如,您可以定义以下组织政策 并将其全局应用于整个 Google Cloud 组织,或 在文件夹或项目级别有选择地应用:
- 停用向虚拟机分配外部 IP 地址。
- 将资源创建限制在特定地理位置。
- 停用服务账号或其密钥的创建。
对静态数据和传输中的数据进行加密
此建议与以下 重点领域相关:
- 基础架构安全
- 数据安全
数据加密是保护敏感信息的基础控制机制,也是 数据治理 的关键部分。 有效的数据保护策略包括访问权限控制、数据分段和地理位置驻留、审核以及基于对要求的仔细评估的加密实现。
默认情况下, Google Cloud 会对静态存储的客户数据进行加密, 因此您无需执行任何操作。除了默认加密之外, Google Cloud 还提供信封加密和加密密钥 管理选项。无论您选择的是用于存储、计算还是大数据工作负载的密钥,都必须确定最适合密钥生成、存储和轮替要求的解决方案。例如, 客户管理的加密密钥 (CMEK) 可以在 Cloud Key Management Service (Cloud KMS)中创建。 CMEK 可以基于软件或 受 HSM 保护 ,以满足您的监管或合规性要求,例如需要定期轮替 加密密钥。借助 Cloud KMS Autokey,您可以自动执行 CMEK 的预配和分配。此外,您还可以使用 Cloud External Key Manager (Cloud EKM)引入来自第三方密钥管理系统的自有密钥 。
我们强烈建议对传输中的数据进行加密。 如果数据将移出物理边界,脱离 Google 或 Google 授权代理方的控制范围,Google 会在一个或多个网络层级对传输中的数据进行加密和身份验证。系统会对 VPC 网络与对等互连的 VPC 网络中的所有虚拟机之间的流量进行加密。您可以使用 MACsec 对通过 Cloud Interconnect 连接的流量进行加密。IPsec 可为通过 Cloud VPN 连接的流量提供 加密。您可以使用 Apigee 和 Cloud Service Mesh 中适用于容器化应用的安全功能(例如 TLS 和 mTLS 配置)来保护云中的应用到应用流量。
默认情况下, Google Cloud 会对静态数据和跨 网络传输的数据进行加密。不过在默认情况下,数据不会在内存中使用时加密。如果您的组织要处理机密数据,则您需要减少会破坏应用或系统内存中数据的机密性和完整性的任何威胁。如需减少这些威胁,您可以使用机密计算,该功能可为计算工作负载提供可信执行环境。如需了解详情,请参阅 机密虚拟机概览。