数据驻留概览

概览

本页面介绍如何使用 Cloud SQL 来强制执行数据驻留要求。

“数据驻留”是指数据的物理位置以及用于管理该数据存储、加密和访问方式的本地法规。随着各国家/地区对数据保护和隐私权法规的不断完善,了解如何遵循本地数据驻留要求并保护用户数据变得越来越重要。

在传统的本地环境中,数据驻留由各种组件集成和处理。例如,一家公司可以托管作为云访问安全代理 (CASB) 的令牌化网关,在应用数据传输到海外之前对其进行保护。

Google Cloud 及其服务(包括 Cloud SQL)协同工作,控制数据的位置以及 Google 或任何用户对这些数据的访问权限,从而帮助您处理数据驻留。

云计算中的数据驻留

下面列出了一些您应该了解的数据驻留问题:

  • 如果公司的云管理员不知道数据的物理位置,便无法得知相应的当地法规。为了能够研究每个位置的数据驻留政策,管理员需要知道数据中心的位置。
  • 公司的云管理员和提供商可以通过服务等级协议 (SLA) 来确定允许的位置。但是,如果您必须将数据存储在与 SLA 条款不同的区域中,该怎么办?
  • 用户必须确保自己的数据以及在其云项目中使用的所有服务和资源都遵循托管国家/地区的数据驻留法规。
    • 如果您想要决定在何处存储数据和加密密钥,应该怎么做?
    • 如果您想要确定用户可以从哪些位置访问您的数据,会发生什么情况?

Google Cloud 服务(包括 Cloud SQL)允许您通过以下方法解决其中一些问题:

  • 设置数据的存储位置。您可以在创建 Cloud SQL 实例时选择区域,也可以通过修改现有实例来修改区域。
  • 使用 Cloud SQL 的跨区域读取副本功能,有助于您确保符合指定区域的数据驻留标准。
  • 控制用户可以访问数据的网络位置,以及控制云管理员对此数据的访问权限。

Cloud SQL 可以在以下三个方面帮助您应对数据驻留的挑战:

存储数据

数据驻留涉及将个人身份信息 (PII) 存储在特定区域,并按照该区域的法规处理该数据。

存储数据时,您必须遵守一个国家/地区的法律和监管要求,例如数据存放区域法律。例如,某个国家/地区可能要求必须将与政府相关的所有数据存储在该国家/地区。或者,合同规定公司要将部分客户的数据存储在另一个国家/地区。因此,公司必须满足存储数据的国家/地区的数据驻留要求。

使用 Google Cloud,您可以配置数据的存储位置,包括备份的存储位置。这包括允许您选择存储数据的区域。当您选择在这些区域中为 Cloud SQL 配置资源时,Google 会根据服务专用条款将您的静态数据仅存储在这些区域中。您可以在创建实例时选择区域,也可以通过修改现有实例来修改区域。

如需详细了解备份位置,请参阅自定义备份位置

您可以使用组织政策限制条件在组织、项目或文件夹级层强制执行数据驻留要求。通过这些限制条件,您可以定义允许用户为受支持的服务创建资源的 Google Cloud 位置。对于数据驻留,您可以使用资源位置限制条件来限制新资源的物理位置。您还可以微调限制条件的政策,将多区域(例如 asiaeurope)或单区域(例如 us-east1europe-west1)指定为允许或拒绝的位置。

如果某个 Google Cloud 区域发生服务中断,您可以通过 Cloud SQL 的跨区域读取副本功能来避免受到影响。在创建读取副本时,您必须为副本选择区域。请务必选择符合数据驻留法规的区域。这样,便可确保所选区域满足数据驻留标准。

创建副本时,您将创建主数据库实例的副本,该副本可以近乎实时地反映主数据库实例的更改。如果发生故障,您可以将读取副本提升为主实例

借助 VPC Service Controls,您可以使用 Cloud SQL Admin API 或 Cloud Storage API 来限制使用 Cloud SQL API 导入和导出数据,从而帮助您强制执行数据驻留。此限制有助于确保数据保留在您选择的网络位置内。您可以使用 VPC Service Controls 创建服务边界,从而定义可以从中访问服务的虚拟边界,防止数据移动到这些边界之外。即使用户根据您的 Google Cloud IAM 政策获得授权,您也可以强制执行此限制条件。

加密数据

Google Cloud 服务(包括 Cloud SQL)使用多种加密方法对静态和传输中的客户内容进行加密。加密工作会自动执行,无需客户采取任何操作。

Cloud SQL 还允许您使用客户管理的加密密钥 (CMEK) 为数据添加另一层加密。 如果组织具有敏感数据或受监管数据并且这些数据需要组织管理自己的加密密钥,则 CMEK 就很适合该组织。借助 CMEK 功能,您可以使用自己的加密密钥加密 Cloud SQL 中的静态数据。添加 CMEK 后,只要发出 API 调用,Cloud SQL 就会使用您的密钥来访问数据。

如果您要将 CMEK 存储在部署服务的区域中,您可以使用 Cloud Key Management Service (Cloud KMS)。您可以在创建密钥时设置该密钥的位置。或者,如需将这些密钥存储在位于所选区域的物理硬件安全模块 (HSM) 中,请使用 Cloud HSM

选择 CMEK 存储位置的另一个方法是使用第三方产品。如需在 Google 基础架构外部部署的第三方密钥管理产品中存储和管理密钥,您可以使用 Cloud External Key Manager (Cloud EKM)

访问数据

借助 Cloud SQL,您可以控制哪些用户可以访问您的数据。

Cloud SQL Identity and Access Management (IAM) 数据库身份验证提供一个统一的界面,可帮助您更好地监控和管理用户和服务账号对数据库的访问权限。这样,您就可以集中管理云资源中的数据。

通过配置 Cloud SQL IAM 数据库身份验证,您可以定义哪些用户对您的数据有哪些访问权限,从而控制 Cloud SQL 中数据的用户访问权限。您可以配置数据库实例,然后通过将 IAM 用户添加为实例的用户来向各个用户授予访问权限。这些用户可以使用 Cloud SQL IAM 数据库身份验证登录 Cloud SQL 数据库

如需为用户组启用停用服务,您可以使用 IAM 政策配置来组合组织政策限制条件。此功能可防止员工意外将数据存储在错误的 Google Cloud 区域。

若要控制 Google 支持和工程团队的访问权限,您可以使用 Access Approval。通过 Access Approval,您可以要求 Google 员工先获得您的明确批准,然后才能访问您在 Google Cloud 上的数据或配置(如需了解排除项,请参阅 Access Approval 排除项)。

Access Approval 是对 Access Transparency 提供的公开范围的补充,后者可在 Google 管理员与您的数据交互时生成近乎实时的审核日志。审核日志包括管理员的办公地点和访问原因。此外,您还可以针对有权访问您的数据或配置的管理员强制执行特定的属性,包括他们的地理区域以及其他与合规性相关的属性。

Key Access Justifications 可与 Cloud KMS 和 Cloud EKM 集成使用。每次请求密钥用于加密或解密数据时,Key Access Justifications 都会提供详细的理由,同时提供一个机制,允许您通过您设置的自动化政策来批准或拒绝密钥访问。

通过将 IAM 权限、Access Approval、Access Transparency 和 Key Access Justifications 与 Cloud KMS 和 Cloud EKM 搭配使用,您可以拒绝 Google 解密您的数据。因此,对您的数据的访问权限完全由您控制。

后续步骤