Google Cloud 架构框架中的本文档提供了实现数据安全的最佳实践。
在部署架构中,您必须考虑计划要在 Google Cloud 中处理和存储的数据以及这些数据的敏感性。请设计您的控制措施,以帮助确保数据在其生命周期内的安全性、识别数据所有权和分类以及保护数据免遭未经授权的使用。
如需了解按照本文档中介绍的安全最佳做法部署 BigQuery 数据仓库的安全蓝图,请参阅确保存储机密数据的 BigQuery 数据仓库的安全性。
自动对数据进行分类
尽早在数据管理生命周期内执行数据分类,最好在创建数据时便对其进行分类。通常,只需要进行如下数据分类:
- 公开:已批准公开访问的数据。
- 内部:未公开发布的非敏感数据。
- 机密:可用于常规内部分发的敏感数据。
- 受限:需要受限分发的高度敏感或监管数据。
使用敏感数据保护发现 Google Cloud 环境中的数据并对其进行分类。敏感数据保护支持对 Cloud Storage、BigQuery 和 Datastore 中的敏感数据进行扫描和分类。 它还提供了一个流式传输 API 来支持其他数据源和自定义工作负载。
敏感数据保护可以使用内置 infoType 识别敏感数据。它可以自动对敏感元素(例如 PII 数据)进行分类、遮盖、令牌化和转换,以便您管理收集、存储和使用数据的风险。换句话说,它可以与数据生命周期内的各流程集成,以确保每个阶段的数据都受到保护。
如需了解详情,请参阅使用敏感数据保护对大规模数据集中的个人身份信息进行去标识化和重标识处理。
使用元数据管理数据治理
数据治理是指为确保数据安全、私有、准确、可用和易用所执行的各流程的组合。虽然您负责为组织定义数据治理策略,但 Google Cloud 可以提供各种工具和技术来帮助您将策略付诸实践。Google Cloud 还在云端提供了数据治理框架 (PDF)。
使用 Data Catalog 以查找、挑选和使用元数据来描述您在云端的数据资源。您可以使用 Data Catalog 搜索数据资源,然后使用元数据标记这些资源。为帮助加速数据分类工作,请将 Data Catalog 与敏感数据保护集成,以自动识别机密数据。标记数据后,您便可以使用 Google Identity and Access Management (IAM) 来限制用户可以通过 Data Catalog 视图查询或使用的数据。
使用 Dataproc Metastore 或 Hive Metastore 来管理工作负载的元数据。Data Catalog 有一个 Hive 连接器,可让服务发现 Hive Metastore 内的元数据。
使用 Dataprep by Trifacta 通过控制台定义和强制执行数据质量规则。您可以从 Cloud Data Fusion 内使用 Dataprep,也可以将 Dataprep 作为独立服务来使用。
根据数据的生命周期阶段和分类来保护数据
在数据的生命周期上下文中定义数据并根据其敏感性和风险对其进行分类后,您可以分配适当的安全控制措施来保护数据。您必须确保控制措施提供了足够的保护、满足合规性要求并降低风险。在迁移到云端后,请查看您当前的策略,以及可能需要更改当前流程的位置。
下表介绍了云端数据安全策略的三个特征。
特征 | 说明 |
---|---|
识别 | 在创建、修改、存储、使用、共享和删除数据时,了解对数据执行这些操作的用户、资源和应用的身份。 使用 Cloud Identity 和 IAM 来控制对数据的访问权限。如果您的身份要求提供证书,请考虑使用 Certificate Authority Service。 如需了解详情,请参阅管理身份和访问权限。 |
边界和访问权限 | 设置控制措施来管理数据的访问方式、能够访问数据的人员以及访问数据需满足的条件。您可以在以下级层管理数据的访问边界:
|
公开范围 | 您可以审核使用情况并创建报告,以展示数据的控制和访问方式。Google Cloud Logging 和 Access Transparency 可让您深入了解自己的云端管理员及 Google 员工的活动。如需了解详情,请参阅监控数据。 |
加密您的数据
默认情况下,Google Cloud 会对静态存储的客户数据进行加密,因此您无需执行任何操作。除了默认加密之外,Google Cloud 还提供信封加密和加密密钥管理选项。例如,虽然 Compute Engine 永久性磁盘会自动加密,但您可以提供或管理自己的密钥。
无论您选择的是用于存储、计算还是大数据工作负载的密钥,都必须确定最适合密钥生成、存储和轮替要求的解决方案。
Google Cloud 提供以下加密和密钥管理选项:
- 客户管理的加密密钥 (CMEK)。您可以使用 Cloud Key Management Service (Cloud KMS) 来生成和管理您的加密密钥。如果您有特定的密钥管理要求(例如需要定期轮替加密密钥),则可以使用此选项。
- 客户提供的加密密钥 (CSEK)。您可以创建和管理自己的加密密钥,然后根据需要将其提供给 Google Cloud。如果您使用本地密钥管理系统生成自己的密钥,即自带密钥 (BYOK),则可以使用此选项。如果您使用 CSEK 提供自己的密钥,Google 会复制这些密钥并将其提供给您的工作负载。但是,CSEK 的安全性和可用性由您负责,因为客户提供的密钥不会存储在实例模板或 Google 基础架构中。如果您出于各种原因无法再访问这些密钥,Google 将无法帮助您恢复加密的数据。请仔细考虑您要自行创建和管理哪些密钥。您最好只将 CSEK 用于最敏感的信息。还有一种方法是对数据执行客户端加密,然后将加密的数据存储在 Google Cloud 中,之后 Google 会再次加密该数据。
- 具有 Cloud External Key Manager (Cloud EKM) 的第三方密钥管理系统。Cloud EKM 使用您在 Google 基础架构外部控制的第三方密钥管理系统中存储和管理的加密密钥来保护您的静态数据。使用此方法时,您可以确保组织外部的任何人都无法访问您的数据。借助 Cloud EKM,您可以轻松地使用高度安全的自行保管密钥 (HYOK) 模型来进行密钥管理。如需了解兼容性信息,请参阅已启用 Cloud EKM 的服务列表。
Cloud KMS 还允许您使用软件支持的加密密钥或经过 FIPS 140-2 3 级验证的硬件安全模块 (HSM) 来加密数据。如果您使用的是 Cloud KMS,则加密密钥将存储在资源部署所在的区域中。Cloud HSM 会跨区域分发密钥管理需求,从而为密钥提供了冗余性和全球可用性。
如需了解信封加密的工作原理,请参阅 Google Cloud 中的静态加密。
控制云管理员对数据的访问权限
您可以控制 Google 支持和工程团队对您的 Google Cloud 环境的访问权限。借助 Access Approval,您可以事先明确批准 Google 员工访问您在 Google Cloud 上的数据或资源。此产品是对 Access Transparency 提供的可见状态的补充,它会在 Google 员工与您的数据交互时生成日志。这些日志中将包含办公地点和访问原因。
您可以将这些产品搭配使用来拒绝 Google 出于任何原因对您的数据进行解密的请求。
配置数据的存储位置以及用户可以访问这些数据的位置
您可以使用 VPC Service Controls 来控制用户可以访问数据的网络位置。此产品让您可以限制特定区域中的用户访问权限。即使用户根据您的 Google IAM 政策获得授权,您也可以强制执行此限制条件。您可以使用 VPC Service Controls 创建服务边界,从而定义可以从中访问服务的虚拟边界,防止数据移动到这些边界之外。
详情请参阅以下内容:
使用 Secret Manager 管理 Secret
借助 Secret Manager,您可以将所有 Secret 存储在一个集中位置。Secret 是数据库密码、API 密钥或 TLS 证书等配置信息。您可以自动轮替 Secret,并且可以将应用配置为自动使用最新版本的 Secret。每次与 Secret Manager 交互都会生成审核日志,因此您可以查看对每个 Secret 的每次访问。
敏感数据保护还提供检测器类别,以帮助您识别可能受到 Secret Manager 保护的数据中的凭据和 Secret。
监控您的数据
如需查看管理员活动和密钥使用日志,请使用 Cloud Audit Logs。为了帮助保护您的数据,请使用 Cloud Monitoring 来监控日志,以确保正确使用您的密钥。
Cloud Logging 会捕获 Google Cloud 事件,并且允许您在必要时添加其他来源。您可以按区域细分日志、将日志存储在存储桶中,以及集成自定义代码来处理日志。如需查看示例,请参阅用于自动日志分析的自定义解决方案。
您还可以将日志导出到 BigQuery 来执行安全和访问分析,以帮助识别对组织数据的未经授权更改及不当访问。
Security Command Center 可以帮助您识别并解决存储在云端的组织敏感数据中的不安全访问问题。通过单个管理界面,您便可以扫描您的云基础架构中的各种安全漏洞和风险。例如,您可以监控数据渗漏,扫描存储系统中的机密数据,并检测有哪些 Cloud Storage 存储桶对互联网开放。
后续步骤
通过以下资源,详细了解数据安全:
安全地部署应用(本系列中的下一个文档)