Google PDE: 数据治理、安全性、可靠性与成本运营 — 学习指南
属于 Google Professional Data Engineer — 学习指南. 使用经过验证的答案练习: Google 考试中心, 或参加限时模拟考试: ExamRoll.io.
概述
本节总结了在 Google Cloud 上进行数据治理、安全、可靠性和成本运营的设计模式与操作实践。重点关注 BigQuery、Cloud Storage、Dataflow、Dataplex 及相关支持服务。强调了最小权限、加密密钥管理、元数据与分类、策略驱动的访问、合规性证据、具有可操作 SLO 的可观测性以及成本控制。内容涵盖了权衡取舍、故障模式和实践配置,旨在帮助构建安全、可审计且高效的数据平台。
身份、访问与治理
IAM、服务账号、模拟、工作负载身份、最小权限
- 身份边界
- 通过 Cloud Identity 或 Google Workspace 管理用户和群组
- 为工作负载使用服务账号;在最低的实际资源层级(例如,在数据集而不是项目层级)分配范围狭窄的角色
- 最小权限
- 优先使用预定义角色而非基本角色;对于 BigQuery,在数据集上使用如 bigquery.dataViewer 之类的角色,而不是项目级的 viewer 角色
- 向群组授予权限;在 IdP 中管理成员资格,而不是为每个用户单独配置 IAM
- 职责分离:为密钥管理、数据访问和管理设置不同的角色
- 模拟与工作负载身份联合
- 使用服务账号模拟 (roles/iam.serviceAccountTokenCreator),使 CI/CD 或自动化流程永远不存储长期有效的密钥
- 使用工作负载身份联合与 OIDC/SAML,让外部身份无需服务账号密钥文件即可获取短期有效的令牌
- 故障模式与缓解措施
- 过多的项目级角色会导致横向移动;使用 Cloud Asset Inventory 进行审计
- 服务账号私钥丢失:禁止创建密钥;使用组织策略约束来阻止密钥下载;如发现密钥泄露,立即轮替
- 身份边界
Dataplex 治理、Data Catalog、业务元数据、数据沿袭
- Dataplex 提供湖、区和资产,通过集中式策略统一对 BigQuery 和 Cloud Storage 的治理
- Data Catalog 包含业务术语表、标签模板和技术元数据;通过标签附加业务元数据(如所有者、PII 等级、RTO/RPO)
- 数据沿袭捕获上游/下游关系;使用 Dataplex 与 Dataflow、Dataproc 和 BigQuery 的沿袭集成来追踪影响和合规范围
- 权衡取舍
- 集中式治理会增加初始开销,但能降低长期风险并加速审计
策略标签、分类、行级访问、列级屏蔽
- 分类
- 在 Data Catalog 策略标签中定义一个分类体系(例如,公开、内部、机密、受限)
- 将策略标签附加到 BigQuery 的列上;将 IAM 绑定到标签,使访问权限能跟随分类跨表生效
- 列级屏蔽
- 使用 BigQuery 数据屏蔽策略,为非特权读取者对敏感列进行哈希处理或置空
示例:
- 分类
undefined
- 行级访问
- 使用行访问策略,根据 tenant_id 或 region 等属性筛选记录
示例:
undefined
故障模式
- 未向流水线使用的服务账号授予策略标签的 IAM 权限,会导致查询失败;根据需要为服务代理添加策略标签的查看者/访问者角色
- 如果每个用户的谓词选择性非常高,行策略可能会降低性能;在需要严格隔离的情况下,优先采用每个租户一个数据集的粗粒度方法
敏感数据发现与去标识化
- 使用 Sensitive Data Protection 持续扫描 Cloud Storage 和 BigQuery;为每个湖/区使用模板创建发现配置
- 使用去标识化转换:令牌化、用于实现可连接性的确定性加密,或屏蔽
- 将转换密钥存储在 Cloud KMS 中;将重识别密钥分开存放并实施双重控制
- 权衡取舍
- 确定性加密支持连接操作,但可能泄露频率信息;根据需要添加格式保留加密或分桶
- 采样可以降低发现扫描的成本,但可能漏掉出现频率低的 PII
安全与合规运营
加密、Cloud KMS、CMEK 和密文处理
- 默认启用静态加密和传输中加密;当需要对密钥进行合规性控制时,请为 BigQuery、GCS、Pub/Sub、Dataflow 启用 CMEK
- 密钥管理
- 将密钥放置在与数据相同的区域;授予服务代理(例如,BigQuery Service Agent)roles/cloudkms.cryptoKeyEncrypterDecrypter 角色
- 定期轮替密钥;监控已停用或计划销毁的密钥
- 故障模式
- 停用 CMEK 密钥或撤销服务代理的权限会中断加载、查询和导出操作;应针对密钥状态变更设置提醒
- 不允许跨区域使用密钥;对齐位置以避免作业创建错误
- 密文
- 使用 Secret Manager 管理数据库凭据、API 令牌;通过 IAM 授予访问权限,并使用 Secret Manager 日志进行审计
- 切勿将密文嵌入代码、容器或笔记本中;通过运行时访问权限挂载密文;在支持的情况下,优先使用 IAM 数据库身份验证
审计日志、访问审查、合规性证据、保留策略
- 在组织范围内为 BigQuery、GCS、Pub/Sub 启用数据访问日志;将其导出到使用 CMEK 的专用、只写的日志记录项目中
- 创建到 BigQuery(用于分析)和 Cloud Storage(用于带存储桶保留锁的长期不可变归档)的聚合日志接收器
- 使用 Cloud Asset Inventory 和 Policy Analyzer 进行定期访问审查和偏差检测
- 保留策略
- 根据合规性需求设置日志保留期;在 GCS 上使用对象版本控制和保留策略
- 在 BigQuery 中,设置默认表过期时间,并依靠表快照/时间旅行功能进行短期回滚;将关键数据集归档到单独的项目中
- 证据
- 使用 Dataplex 标记维护控制映射(例如,“SOX-C2:证据位于项目 X,接收器 Y”),自动化导出,并运行计划查询以生成证明
可靠性、可观测性、质量与成本管理
数据质量维度、验证框架与事件响应
- 维度:准确性、完整性、一致性、及时性、有效性、唯一性、数据完整性 (integrity)
- 在数据注入和转换阶段实施验证
- 在 BigQuery 表和 GCS 资产上使用 Dataplex 数据质量规则集
- 在 Dataflow/Dataproc 中使用 Great Expectations 或 Deequ 进行模式和内容检查
- 将失败记录路由到死信表或存储桶,并附带丰富的错误上下文;通过隔离坏记录来避免数据丢失
- 事件响应
- 声明严重性级别、负责人、沟通渠道、回滚计划和 RACI 模型
- 自动化运行手册以回填时间窗口数据和重新处理死信;在修复前对受影响的表进行快照
Cloud Monitoring、日志记录、告警、错误预算与 SLO
- 暴露指标:Dataflow 积压量、BigQuery slot 利用率、查询延迟、GCS 延迟/错误、Pub/Sub 未确认消息数
- SLO
- 示例:“30 天内,99.9% 的流式事件在 5 分钟内可在 BigQuery 中可用”
- 跟踪错误预算消耗率,快速消耗时呼叫待命人员;缓慢消耗时创建工单
- 基于日志的指标和告警
- 基于 BigQuery 作业失败、DLP 发现、KMS 密钥错误创建基于日志的指标
- 使用高级日志过滤器针对特定表的追加操作或访问异常发出告警
成本分配、预算、查询控制、存储生命周期与容量规划
- 分配与预算
- 在所有作业、数据集、存储桶和预留上使用标签 (labels 和 tags);将账单数据导出到 BigQuery,并创建带 Pub/Sub 通知的预算
- BigQuery 成本控制
- 使用分区和聚类来减少扫描的字节数
- 在查询作业上设置 maximumBytesBilled;客户端/作业配置示例:
- “jobConfiguration”: { “query”: { “maximumBytesBilled”: “1073741824” } }
- 对于可预测的工作负载,使用 BigQuery Reservations 预留 slot;通过分配将交互式查询与批处理作业分开
- 存储生命周期
- GCS:使用生命周期规则在 N 天后转换到冷存储或删除;在需要回滚的地方启用对象版本控制
- 示例(精简):30 天后删除非当前版本;为合规区域设置 365 天的存储桶保留策略
- BigQuery:为临时数据集设置默认表过期时间;在破坏性更改前创建快照
- 容量规划
- Dataflow:设置最大工作器数量和自动扩缩容;选择合适的机器类型;对输入进行分片以避免热点键
- Pub/Sub:验证发布/消费配额和消息保留策略
- 网络:考虑出口流量、区域间数据移动以及数据库的私有服务访问
- 分配与预算
灾难恢复、备份、多区域弹性和运行手册
- 根据 RTO/RPO 对服务进行分类;相应地选择冷/温/热模式
- 备份
- BigQuery:定期创建表快照;如果需要,导出到 GCS 进行平台外保留
- GCS:使用双区域或多区域存储桶以实现持久性;为 WORM 合规性启用存储桶锁定
- 数据库:在 Cloud SQL 和 Bigtable 中使用托管备份;测试恢复
- 多区域
- 将计算和存储保持在同一多区域内,以最大限度地减少出口流量和延迟;除非必要,否则避免跨洲依赖
- 运行手册
- 记录故障切换、密钥恢复、KMS 事件处理流程、从导出数据中恢复以及 BigQuery 预留重新分配的步骤
- 通过“游戏日”(game days) 测试灾难恢复;跟踪恢复时间并更新 SLO
实践问题场景
NovaRetail Analytics 与多个品牌合作,将包含交易数据的每日 CSV 文件注入到一个共享分析平台。文件到达一个 Cloud Storage 落地存储桶,偶尔会包含格式错误的行。平台必须实施最小权限原则,以便每个客户只能访问自己的数据,同时需要检测敏感字段,并在行被追加到特定审计表时提供即时告警。公司还需要成本控制和恢复计划。
方法:
隔离租户并实施最小权限
- 为每个客户创建一个专用的 BigQuery 数据集(例如,client_a_analytics)。仅向客户的组授予适当的数据集角色(bigquery.dataViewer, bigquery.jobUser),并在适用时通过 IAM 和 VPC-SC 限制只有经批准的用户才能使用 BigQuery API。
- 理由:每个租户一个数据集的模式限制了爆炸半径,并简化了行级策略的复杂性。在数据集级别限定最小权限可默认防止跨租户访问。
治理模式、分类和遮盖
- 定义一个 Data Catalog 策略标签分类法(公共、内部、机密、受限),以及用于所有者、数据管理员和 RTO/RPO 的标签模板。将策略标签附加到每个客户数据集中的敏感列(email, card_suffix)。应用 BigQuery 遮盖策略来限制非特权角色的视图。
- 示例:ALTER TABLE client_a_analytics.orders ALTER COLUMN email SET POLICY TAGS (‘restricted.pii’).
- 理由:集中的标签提供了跨表的一致控制;数据遮盖确保了默认安全的读取,而无需复制数据。
发现 PII 并在需要时实施去标识化
- 配置 Sensitive Data Protection 发现功能以扫描落地存储桶和经过整理的 BigQuery 表。使用检查模板来识别常见的 PII,并使用去标识化模板对电子邮件进行确定性令牌化,以支持连接(join)用例。
- 理由:自动化发现减少了手动错误;确定性令牌化在隐私保护与分析连接需求之间取得了平衡。
使用服务账号、模拟和 CMEK 保护数据管道
- 使用一个仅具有所需角色的 Dataflow 服务账号:落地存储桶的 storage.objectViewer 角色、目标数据集的 bigquery.dataEditor 角色,以及在需要时访问策略标签的权限。为客户数据集使用 CMEK,并授予 BigQuery 和 Dataflow 服务代理 CryptoKey Encrypter/Decrypter 角色。
- 理由:精确限定的角色加上 CMEK 满足了最小权限和密钥控制的要求。服务代理对密钥的访问可防止作业失败。
构建具有错误隔离功能的弹性注入管道
- 运行一个批处理 Dataflow 作业,该作业读取 CSV,验证模式,并将有效行写入 BigQuery 分区表。将无效行连同错误详情(文件名、行号、原因)路由到一个 BigQuery 死信表。
- 理由:旁路输出保留了坏数据以供分析,而不会阻塞好数据;分区表降低了扫描成本并加快了查询速度。
创建数据血缘和业务元数据
- 将落地存储桶和数据集注册为 Dataplex 数据湖中的资产。为 Dataflow 作业启用血缘收集,并为经过整理的表打上业务元数据标签(数据所有者、敏感度、保留策略)。
- 理由:集中式治理有助于进行影响分析、满足审计要求和实现标准化的数据管理。
监控、告警和审计
- 启用管理员活动和数据访问审计日志,并使用 CMEK 将其导出到一个中央日志项目和 BigQuery 中进行分析。使用高级过滤器针对 BigQuery 插入作业添加一个基于日志的告警,用于监控审计表的新增行;将该日志接收器导出到 Pub/Sub,供监控工具使用。
- 理由:日志是防篡改的证据;目标明确的告警仅针对所需表进行通知,从而减少噪音。
实施成本控制和查询护栏
- 要求查询作业设置 maximumBytesBilled,并利用高基数(high-cardinality)列(例如 order_id)进行聚类。应用预算,并在作业和数据集上设置标签(client, environment)。使用 BigQuery Reservations 将交互式分析与计划性加载作业分开。
- 理由:护栏可防止成本失控;标签可实现成本分摊;slot 隔离可保持可预测的性能。
实施保留策略和灾难恢复 (DR)
- 在落地存储桶中,启用对象版本控制和生命周期规则,在 30 天后删除对象;为合规区域设置保留策略。在 BigQuery 中,为暂存表设置默认的表过期时间,并定期为经过整理的表创建快照。将 KMS 备份流程和表恢复步骤存储在运行手册中,并每季度进行测试。
- 理由:生命周期管理降低了存储成本;快照和文档化的运行手册确保了可恢复性。测试验证了 RTO/RPO 的假设。
定期访问审查和质量 SLI/SLO
- 每季度使用 Cloud Asset Inventory 导出 IAM 策略,并与批准的基线进行比较。定义 SLO,例如“99% 的每日文件在到达后 30 分钟内处理完毕”,并针对消耗率设置告警。使用 Dataplex 数据质量规则跟踪数据质量 SLI(完整性、有效性),并将违规情况路由到事件响应流程,并实现自动化回填。
- 理由:定期审查可防止权限蔓延;由 SLO 驱动的运维使工作与用户体验保持一致;自动化的质量检查能及早发现回归问题。
技术权衡与已解决的故障模式:
- CMEK 配置错误或密钥被禁用将导致 Dataflow 加载和 BigQuery 查询中断;必须对 KMS 状态和服务代理权限进行监控。
- 过度使用细粒度的行级策略可能会降低性能;对于租户,优先选择数据集隔离方案。
- 发现扫描的成本可能很高;在适当的情况下按区域和抽样来限定范围,并接受可能错过罕见 PII 的风险。
- 告警疲劳会降低响应速度;应为每个表/操作构建精确的过滤器,并在推广前进行测试。
← 机器学习、AI 与数据服务 · 所有领域
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →