4. 生产环境数据加密与密钥治理
在 Google Cloud 上,数据加密并不是一个可选项,而是默认能力。理解“默认加密、CMEK、Cloud KMS、Cloud HSM、密钥轮换与访问控制”这条链路,是设计生产级敏感数据方案的基础。本章从加密层次讲起,逐步深入到密钥治理与审计落地。
一、默认加密:起点而非终点
Google Cloud 对所有静态数据默认启用加密,无需用户配置。其机制是:数据写入磁盘或对象存储前,由 Google 管理的密钥自动加密;读取时自动解密。密钥由 Google 生成、保管和轮换,用户不可见。这层加密覆盖 Cloud Storage、Persistent Disk、BigQuery、Cloud SQL、Firestore 等几乎所有存储服务,同时传输中数据通过 TLS 加密。
默认加密解决了“数据是否被加密”的问题,但没有解决“谁控制密钥”的问题。对于受监管行业或高敏感数据,合规要求往往规定企业必须自行掌控密钥生命周期,这就引出了 CMEK。
二、CMEK:客户管理的加密密钥
CMEK(Customer-Managed Encryption Keys)允许用户使用自己在 Cloud KMS 中创建的密钥来加密 Google Cloud 服务中的数据。与默认加密的关键区别在于:密钥的创建、轮换、禁用和销毁由用户控制,Google 无法在用户禁用密钥后继续解密数据。
启用 CMEK 的典型流程是:在 Cloud KMS 中创建 KeyRing 和 CryptoKey;为对应服务的服务账号授予 roles/cloudkms.cryptoKeyEncrypterDecrypter;在创建资源时指定 kmsKeyName。以 Cloud Storage 为例:
gcloud storage buckets create gs://prod-sensitive-data \
--location=asia-east1 \
--default-encryption-key=projects/prod-sec/locations/asia-east1/keyRings/prod-ring/cryptoKeys/prod-key
此后写入该桶的对象均使用指定 CMEK 加密。需要注意:CMEK 保护的是“密钥控制权”,并不改变数据本身的加密算法强度;若密钥被禁用,依赖该密钥的服务会立即无法读取数据,因此禁用密钥等同于一次“软删除”操作,必须纳入变更管理。
三、Cloud KMS 与 Cloud HSM 的选型
Cloud KMS 提供软件保护的密钥,密钥材料存储在 Google 的基础设施中,由 KMS 负责加解密运算。它适合大多数 CMEK 场景,成本低、延迟小、集成广。
Cloud HSM 则提供经 FIPS 140-2 Level 3 认证的硬件安全模块,密钥材料在 HSM 集群内生成且不可导出。当合规要求“密钥必须由硬件保护”或“密钥不可离开硬件边界”时,应选择 Cloud HSM。其 API 与 Cloud KMS 完全兼容,切换成本主要体现在价格和性能上。选型判断可归纳为:一般合规用 KMS,硬件级合规用 HSM。
四、密钥轮换策略
密钥轮换是指定期生成新的密钥版本,使新数据使用新版本加密,旧版本仅保留解密能力。Cloud KMS 支持自动轮换,可设置轮换周期(如 90 天)和下次轮换时间。轮换不会重新加密已有数据,因此对业务无感;但若合规要求“历史数据也必须用新密钥重新加密”,则需要额外的重加密作业。
轮换周期应结合数据敏感度、合规要求和密钥使用量确定。常见做法是:高敏感数据 90 天,一般数据 365 天。轮换后应确认旧版本仍处于 ENABLED 状态,否则历史数据将无法解密。
五、密钥访问控制
密钥访问控制的核心原则是最小权限与职责分离。Cloud KMS 提供细粒度角色:roles/cloudkms.cryptoKeyEncrypter 仅允许加密,roles/cloudkms.cryptoKeyDecrypter 仅允许解密,roles/cloudkms.cryptoKeyEncrypterDecrypter 允许两者。生产环境应避免直接授予 roles/cloudkms.admin,因为该角色可销毁密钥。
建议将加密与解密权限分配给不同的服务账号:写入服务只需 Encrypter,读取服务只需 Decrypter。同时通过 IAM Conditions 限制访问来源 IP 或 VPC Service Controls 边界,防止密钥被越权调用。
六、敏感数据加密方案设计与审计
一个可落地的方案通常包含四层:数据分类分级、加密方式选择、密钥治理、审计闭环。以“用户身份证号存储”为例:数据分级为高敏感;存储于 Cloud SQL,启用 CMEK;密钥放在 Cloud HSM 保护的 KeyRing 中,轮换周期 90 天;仅授予应用服务账号 Decrypter 权限;开启 Cloud Audit Logs 的 Data Access 日志,监控 Decrypt 调用频率与来源。
审计方面,Cloud KMS 的所有密钥操作都会记录在 Cloud Audit Logs 中,包括 Encrypt、Decrypt、CreateCryptoKeyVersion、DestroyCryptoKeyVersion 等。应重点监控:非预期服务账号的 Decrypt 调用、密钥禁用或销毁事件、轮换失败告警。可结合 Cloud Monitoring 设置日志告警策略,将异常密钥访问实时推送到安全团队。
综上,默认加密提供基础保障,CMEK 与 Cloud KMS/HSM 提供控制权,轮换与访问控制提供治理能力,审计提供可验证性。四者结合,才能构成生产环境可审计、可追责的敏感数据加密体系。