
本文介绍腾讯云 EMR 如何基于 Apache Ranger 实现细粒度权限管控,涵盖 HDFS 、 Hive 、 HBase 等组件的权限配置方法,以及 COS 数据权限管控方案,帮助企业构建多层次的数据安全体系。
在大数据平台中,数据安全性是企业最关注的议题之一。随着数据规模和用户数量的增长,传统的文件权限控制已经无法满足复杂的数据访问需求。
Hadoop 生态系统中, HDFS 原生使用 POSIX 风格的权限模型,存在以下局限:
Apache Ranger 是一个集中式的安全管理框架,为 Hadoop 生态系统提供全面的数据安全能力。它支持对 HDFS 、 Hive 、 HBase 、 YARN 、 Kafka 等组件进行细粒度的权限访问控制,并可以通过 Web UI 进行在线操作。
腾讯云 EMR 集成了 Ranger 组件,支持基于 Ranger 对本地及 COS 数据细粒度权限管控,帮助企业构建统一的数据安全体系。
Ranger 基于策略来抽象"用户-资源-权限"三者之间的关系。其权限模型包含三个核心要素:
Ranger 支持对以下组件进行细粒度权限控制:
组件 | 资源层级 | 权限类型 |
|---|---|---|
HDFS | 文件路径 | Read 、 Write 、 Execute |
Hive | 数据库、表、列 | Select 、 Create 、 Update 、 Drop 、 Alter |
HBase | 表、列族、列 | Read 、 Write 、 Create 、 Admin |
YARN | 队列 | Submit-app 、 Admin-queue |
Kafka | Topic | Publish 、 Consume |
在创建 EMR 集群时,需要在组件选择页面勾选 Ranger 组件。 Ranger 组件会安装在集群的 Master 节点上,提供 Web UI 管理界面。
创建集群时需要设置 Ranger 管理员密码,用于后续登录 Ranger 管理界面。
集群创建完成后,可以通过以下方式访问 Ranger Web UI :
登录 Ranger 控制台后,可以在"Service Manager"区域看到已注册的组件服务。单击组件名称下的权限插件名称,即可进入组件安全访问策略列表页面。
创建权限策略的步骤:
策略创建完成后, Ranger 插件会定期从 Ranger Admin 拉取最新的策略更新,通常每隔 30 秒拉取一次。
在 Ranger 控制台中,进入 HDFS 组件的 service 页面,添加策略。需要配置的参数包括:
HDFS 策略支持以下权限类型:
策略生效后,可以切换到对应的用户,使用 HDFS 命令行工具验证权限是否正常。例如:
hdfs dfs -ls /path 命令验证读权限hdfs dfs -put localfile /path 命令验证写权限Ranger 支持对 Hive 表进行列级别的权限控制。管理员可以为特定用户或角色设置对特定列的访问权限,保护敏感数据。
例如,可以设置财务报表中的薪资列仅对人力资源部门可见,而其他部门只能查看非敏感信息。
Ranger 支持行级别的过滤功能。通过 WHERE 子句定义行级访问条件,用户可以仅访问符合条件的数据。
例如,可以设置销售角色仅能访问 region='华东' 的订单数据。
Ranger 支持对敏感列应用脱敏规则。例如:
138****1234 格式110101********1234 格式腾讯云对象存储 COS 支持通过 Ranger 进行权限管控。 COS Ranger Service 是整个权限体系的核心,负责集成 Ranger 的客户端,接收 Ranger client 的鉴权请求。
COS Ranger Service 支持一主多备的 HA 部署, DelegationToken 状态持久化到 HDFS ,通过 ZooKeeper 抢锁决定 Leader 身份。
配置 COS Ranger 服务的步骤:
policy.grantrevoke.auth.users 参数,指定启动 COS Ranger Service 服务的用户名COS 策略支持以下权限类型:
腾讯云 EMR 提供集群级别的 Kerberos 认证,保障集群访问安全。 Ranger 则提供细粒度的权限管控能力。两者结合可以构建完整的安全体系:
在 EMR 集群中启用 Kerberos 认证后, Ranger 会自动集成 Kerberos 认证信息。用户在访问集群时,需要先通过 Kerberos 认证,然后 Ranger 会根据用户的身份进行权限检查。
对于生产环境,建议:
可能的原因:
排查步骤:
了解更多产品详情:腾讯云 EMR 产品页
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。