CCPA and GDPR Compliance in Data Industry#

Overview#

随着大数据技术的发展, 企业可以收集和处理海量的用户数据, 这也带来了数据滥用和侵犯用户隐私的风险. 为了规范数据的收集和使用, 保护用户隐私, 欧盟和美国加州分别出台了 GDPR 和 CCPA 两项重要的数据保护法案, 对企业的数据管理提出了严格要求. 作为大数据从业者, 我们有必要了解 GDPR, CCPA 的核心要求, 以及如何通过数据湖等技术手段来满足合规要求.

What is CCPA and GDPR?#

CCPA 全称 California Consumer Privacy Act, 是美国加州于 2018 年通过的消费者隐私保护法案. CCPA 赋予了加州消费者更多对个人信息的控制权, 包括知情权, 访问权, 删除权和拒绝出售个人信息的权利等.

GDPR 全称 General Data Protection Regulation, 是欧盟制定的数据保护条例. 2018年5月正式生效, 被称为史上最严格的数据保护法案. GDPR 适用于所有处理欧盟公民个人数据的企业, 无论企业所在地区. 它要求企业以”设计和默认”的方式进行数据保护, 并赋予了数据主体许多权利, 如知情权, 访问权, 删除权等.

在本文中凡是谈到 “合规”, 都是指得这两个法案.

Feature Requirements to be CCPA and GDPR Compliant#

为满足 CCPA 和 GDPR 合规要求, 数据平台需具备以下关键功能:

  1. 细粒度数据访问控制: 不同用户可访问不同粒度的脱敏数据, 严格控制敏感数据访问.

  2. 数据血缘追踪: 记录数据全生命周期路径, 可快速定位数据来源.

  3. 数据加密存储: 敏感数据列级或行级加密, 防泄露.

  4. 数据版本与快照: 可回滚到历史版本, 防误删.

  5. 彻底删除能力: 根据用户要求, 不留痕迹地删除其数据.

  6. 数据使用审计: 记录数据使用情况, 便于合规审计.

Data Systems#

对于不同的数据系统, 满足合规需求的解决方案也不相同. 例如 RDBMS 系统就很容易满足合规需求, 而让 Data warehouse 和 Data Lake 合规就比较难一点 (因为它们天生不是 transactional 的).

接下来我会一一介绍不同的数据系统如何满足合规需求.

How does RDBMS meet CCPA and GDPR requirements?#

关系数据库是最常见的企业数据系统. 大多数 Transactional, 强一致的关系数据库都能轻松满足合规需求.

  1. 细粒度数据访问控制: 大多关系数据库都带有细粒度的数据访问控制. 对于行级和列级的访问控制可以通过 View 实现.

  2. 数据血缘追踪: Write ahead log (WAL) 可以添加额外的数据来源的 metadata.

  3. 数据加密存储: 轻松搞定.

  4. 数据版本与快照: 数据库备份就是快照, 并且通过将 WAL 导出也可以精确的保留每一个变更发生时的数据版本.

  5. 彻底删除能力: 关系数据库删除数据很容易

  6. 数据使用审计: 数据库访问 Log 很容易满足这一需求.

How does Apache Hudi Data Lake meet CCPA and GDPR requirements?#

传统的 Hadoop HDFS 数据湖方案是不满足合规需求的. 因为传统数据湖保存的只有全量数据, 不满足 数据版本与快照 需求, 并且你想要从数据湖中删除某一个具体的记录很难, 不满足 彻底删除能力. 而现代的数据湖方案的三驾马车 Hudi, Delta Lake, Iceburg 都能满足合规需求. 下面我们以 Hudi 为例详细介绍.

Apache Hudi 是一个开源的流式数据湖方案, 提供了如下特性来满足 CCPA 和 GDPR 合规:

  1. 细粒度数据访问控制: 通过 Hudi 的列级 ACL, 可实现敏感列的访问控制, 不同角色看到不同的数据视图. 配合 AWS Glue Catalog + AWS Lake Formation 可以实现行级的访问控制.

  2. 数据血缘追踪:Hudi 天然维护每次 Upsert 的 commit 元数据, 记录数据变更的来源, 可追踪数据血缘.

  3. 数据加密存储:Hudi 支持删除特定文件, 配合 专门的加密存储系统, 可实现列级的加密存储.

  4. 数据版本与快照:每次写入 Hudi 都产生一个新版本, 可基于版本和时间戳快速回滚到历史数据.

  5. 彻底删除能力: 利用 Hudi 的 Delete 和 Bootstrap, 可以从数据湖中彻底删除用户数据.

  6. 数据使用审计: Hudi 的 timeline 和 compaction 审计日志, 记录了数据的变更历史, 可用于事后审计.

Reference#