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 精选的容器优化型操作系统映像。Google 会定期修补和更新这些映像。
如果您使用的是 GKE,我们建议您启用节点自动升级功能,让 Google 使用最新的补丁程序更新您的集群节点。Google 负责管理 GKE 控制平面,这些控制平面会自动进行更新和修补。如需进一步缩小容器的攻击面,您可以使用 distroless 映像。Distrosless 映像非常适合对安全性敏感的应用、微服务,以及尽可能缩减映像大小和攻击面的场景。
对于敏感工作负载,请使用安全强化型虚拟机,以防止在虚拟机启动周期中加载恶意代码。安全强化型虚拟机实例可提供启动安全性,监控完整性并使用虚拟可信平台模块 (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 还提供信封加密和加密密钥管理选项。无论您选择的是用于存储、计算还是大数据工作负载的密钥,都必须确定最适合密钥生成、存储和轮替要求的解决方案。例如,您可以在 Cloud Key Management Service (Cloud KMS) 中创建客户管理的加密密钥 (CMEK)。CMEK 可以是基于软件的,也可以是受 HSM 保护的,以满足您的监管或合规性要求,例如需要定期轮替加密密钥。借助 Cloud KMS Autokey,您可以自动预配和分配 CMEK。此外,您还可以使用 Cloud External Key Manager (Cloud EKM) 导入从第三方密钥管理系统获取的自己的密钥。
我们强烈建议对传输中的数据进行加密。如果数据将移出物理边界,脱离 Google 或 Google 授权代理方的控制范围,Google 会在一个或多个网络层对传输中的数据进行加密和身份验证。系统会对 VPC 网络中的所有虚拟机之间的流量以及对等互连的 VPC 网络之间的流量进行加密。您可以使用 MACsec 加密通过 Cloud Interconnect 连接的流量。IPsec 可为通过 Cloud VPN 连接传输的流量提供加密。您可以使用 Apigee 中的 TLS 和 mTLS 配置以及适用于容器化应用的 Cloud Service Mesh 等安全功能,保护云端的应用到应用流量。
默认情况下, Google Cloud 会对静态数据和网络传输中的数据进行加密。不过,默认情况下,系统不会在内存中加密使用中的数据。如果贵组织要处理机密数据,则您需要减少任何会破坏应用或系统内存中数据的机密性和完整性的威胁。为了缓解这些威胁,您可以使用机密计算,它可为计算工作负载提供可信执行环境。如需了解详情,请参阅机密虚拟机概览。