使用 AWS Lake Formation 构建数据湖 - 细粒度访问控制与数据目录

通过列级和行级细粒度访问控制及基于标签的管理建立数据湖治理。介绍与 Glue Data Catalog 的集成及跨账户访问。

Lake Formation 概述

Lake Formation 是简化 S3 数据湖构建、管理和安全性的服务。传统上,S3 数据湖的访问控制通过 S3 存储桶策略和 IAM 策略的组合来管理,但列级和行级控制十分困难。Lake Formation 在数据库、表、列、行四个级别管理权限,可应对数千表规模的数据湖。与 Glue Data Catalog 完全集成,在统一的目录中管理表定义和权限。

访问控制与基于标签的管理

Lake Formation 的权限模型向主体(IAM 用户、角色)授予数据库、表、列的 SELECT、INSERT、DELETE 权限。行级过滤器可将访问限制为仅符合特定条件的行,实现按部门仅查看本部门数据的控制。LF-TBAC 为数据附加标签(如 sensitivity=high),基于标签表达式授予权限。当新表被添加相同标签时,权限自动继承,无需逐表设置。这在数百表规模的环境中大幅减少权限管理工作量。

跨账户访问与审计

Lake Formation 的跨账户共享可向 Organizations 内的其他账户授予表和数据库的访问权限。使用 RAM(Resource Access Manager)创建资源链接,在消费者账户的 Glue 目录中显示共享表。通过数据过滤器定义行级和单元格级访问控制,可对同一表向不同账户提供不同范围的数据。CloudTrail 集成记录所有数据访问的审计日志,满足合规要求。

Lake Formation 的定价与运维

Lake Formation 本身不产生额外费用。成本取决于底层 S3 存储、Glue 爬虫和作业、Athena 查询的使用费。使用 Lake Formation 的事务功能(Governed Tables)时,会产生事务 API 调用和存储的额外费用。引入 LF-TBAC 可大幅降低权限管理的运维成本,在大规模环境中效果尤为显著。

总结

Lake Formation 是为 S3 数据湖提供细粒度访问控制的服务。通过列级和行级权限管理及 LF-TBAC(基于标签的访问控制)提升大规模环境的权限管理效率,通过跨账户共享安全实现 Organizations 内的数据共享。CloudTrail 集成记录数据访问审计日志,构建数据治理基础。