一、背景
云 HDFS(Cloud HDFS,CHDFS)是腾讯云提供的支持标准 HDFS 访问协议、卓越性能、分层命名空间的分布式文件系统。
CHDFS 主要解决大数据场景下海量数据存储和数据分析,能够为大数据用户在无需更改现有代码的基础上,将本地自建的 HDFS 文件系统无缝迁移至具备高可用性、高扩展性、低成本、可靠和安全的 CHDFS 上。以此实现存算分离,实现计算节点可动态的扩缩容。
因此 CHDFS 主要的用户群体是大数据体系的研发人员,为了满足用户在传统的 Hadoop 环境下的使用习惯,同时满足用户的权限需求,CHDFS 通过以下措施,提供了安全便捷的大数据访问体验。
二、来源管控
存算分离带来了存储的云端托管,使计算节点不再依赖本地的存储,但同时也带来了存储时延的增加,因此存算分离更适合于同地域同机房的访问。CHDFS 在设计之初,就假定用户的大数据集群运行在腾讯云的 VPC 网络 (包括 CVM 和黑石)。
因此用户只用通过以下三步,即可限制来源:
1、新建权限组,并在权限组中指定 VPC(必须本账户下的 VPC)。
2、在权限组里面添加规则,授予 VPC 网段里的某一个子网段的只读或者读写权限。同一个权限组中的多条规则,根据优先级来确定权限。
3、在文件系统的挂载点中绑定权限组,一个文件系统可以绑定多个权限组,请求满足任何一个权限组的规则,即获得相应的访问权限。
三、POSIX 权限与超级用户
CHDFS 兼容 HDFS 的 POSIX 的权限规则,该权限规则和 Linux 文件系统的的规则类似。即每一层的目录和文件都有 User,Group 与 Other 权限 (rwx)。整个权限规则可简述如下:
1、用户执行 Hadoop 命令行或者运行某个大数据 JOB
2、Job 运行中需要访问 CHDFS 的某个路径,即以执行进程的用户身份与组身份访问 CHDFS 的某个路径。
3、CHDFS 从根据访问的路径,从根目录开始,层层检查。如果用户名匹配文件或者目录的用户名,则拥有文件和目录的 User 权限,如果用户组名匹配,则拥有 Group 权限,否则只拥有 Other 权限。
4、对于目录要进入下一层,必须拥有 X 权限,对于目录下创建删除文件必须拥有 W 权限,对于列出目录下的文件,必须有 R 权限。
5、对于读取文件,必须要有 R 权限,对于修改文件必须有 W 权限。
对于普通用户,使用以上的权限规则进行校验,但同时 CHDFS 也支持了超级用户,超级用户拥有对文件目录的一切操作权限,适用于配置管理员。
POSIX 的权限开关与超级用户的设置,可以在新建文件系统时,或者在后续在文件系统属性下编辑。
四、接入 Hadoop Ranger 权限体系
Hadoop Ranger 作为一站式的权限体系解决方案,不仅支持存储端权限管控,还支持 YARN,Hive 等组件权限管控。因此,为了维持客户的使用习惯,我们提供了 CHDFS 的 Ranger 接入解决方案,方便客户使用 Ranger 来进行 CHDFS 的权限管控。CHDFS 接入 Ranger 权限体系的架构如下所示
我们在 Ranger Admin 控制中心,注册 CHDFS 服务的相关信息,并配置 CHDFS 的服务后,即可配置 CHDFS 的相关权限 policy,如下所示。
CHDFS 插件端开启进行 ranger 鉴权后,即会把所有访问 CHDFS 的请求转发给 COS Ranger Service 进行鉴权,COS Ranger Service 根据从 Ranger Admin 拉取 policy,进行权限检查。有关 CHDFS 接入 Ranger 权限的配置说明,请参考 CHDFS 控制台文档(https://cloud.tencent.com/document/product/1105/53307)。
五、总结
CHDFS 作为云端托管的大数据存储,从设计之初,就充分考虑了 HDFS 用户的使用习惯。通过提供限制来源 VPC、IP 网段、POSIX 鉴权、超级用户等特性,并支持接入 Hadoop Ranger 权限体系。方便客户的同时,也充分的保证了安全性与灵活性。
关于我们
云 + 社区「腾讯云存储团队」主页(https://cloud.tencent.com/developer/team/storage),涵盖了腾讯云存储团队最新动态、团队信息、产品矩阵、技术文档、视频教程等,欢迎关注或留言,给出您的宝贵建议。