JuiceFS v1.3-Beta2:集成 Apache Ranger,实现更精细化的权限控制

在大数据场景中,文件系统和应用组件的权限管理至关重要。在最新发布的 JuiceFS 社区版 v1.3-Beta 2 中,JuiceFS 引入了与 Apache Ranger 的集成,提供了更为灵活和细粒度的权限控制解决方案。

本文将介绍 JuiceFS 社区版如何与 Apache Ranger 进行集成,并探讨其权限管理的实现方式。该功能由多点 DMALL 数据平台团队李铭贡献,特此感谢她对社区的贡献。

01 JuiceFS 文件系统权限管理概述

JuiceFS 作为一个 POSIX 文件系统,其权限管理方式与本地文件系统类似。每个文件或目录都通过用户和用户组进行管理。具体来说:

  • 用户和用户组管理:每个文件或目录都有一个所属用户和用户组。这些用户和用户组的信息存储在 JuiceFS 的元数据中,通常以 UID(用户 ID)和 GID(组 ID)的形式存储,而不是直接存储用户名或组名。由于不同机器上相同的 UID 可能对应不同的用户名,因此在使用 JuiceFS 时,通常需要确保所有节点上的 UID/GID 与用户名的映射关系保持一致。

  • ACL(访问控制列表):除了基本的用户和用户组权限管理外,JuiceFS 还支持 ACL。ACL 允许用户为特定文件或目录设置更为细粒度的权限。例如,可以直接为某个用户赋予对某个文件的读写权限,而不需要将该用户添加到文件所属的用户组中。

02 JuiceFS 与 Apache Ranger 的集成

为了方便用户以细粒度的方式管理文件权限,并通过 web ui 集中管理。JuiceFS 选择支持 Hadoop 生态系统常用的 Apache Ranger。

Apache Ranger 简介

Apache Ranger 是一个用于 Hadoop 生态系统的集中式安全管理框架,提供了对 HDFS、Hive、HBase 等组件的细粒度权限控制。Ranger 通过 Web 界面进行策略管理,并将这些策略存储在数据库中。HDFS NameNode 等组件通过 Ranger 的插件定期拉取策略,并在内存中进行权限校验。

JuiceFS 与 Ranger 的集成架构

JuiceFS 社区版与 Apache Ranger 的集成主要依赖于 Ranger 的插件机制。由于 JuiceFS 社区版没有服务端,所有的权限校验逻辑都在客户端完成。具体架构如下:

  1. Ranger 插件:JuiceFS 客户端中集成了 Ranger 插件,该插件负责从 Ranger 服务端拉取权限策略,并在本地进行权限校验。

  2. 策略同步:为了避免多个 JuiceFS 客户端同时从 Ranger 服务端拉取策略导致 Ranger Admin 压力过大,JuiceFS 采用了一种优化策略:只有一个客户端会定期从 Ranger 服务端拉取策略,并将其写入 JuiceFS 的某个目录中。其他客户端则直接从 JuiceFS 文件系统中读取策略,从而减少对 Ranger 服务端的压力。

  3. 权限校验流程:当用户访问某个目录或文件时,JuiceFS 客户端首先会检查 Ranger 策略中是否对该目录或文件有明确的权限设置。如果有明确的允许或拒绝规则,则按照规则执行;如果没有明确规则,则回退到 POSIX 的权限管理机制(即基于 UID/GID 的权限校验)。

配置步骤

配置也比较简单,通过 JuiceFS 命令行增加如下配置

bash 复制代码
# format 的时候指定 ranger 配置
juicefs format META-URL NAME --ranger-rest-url http://localhost:6080 --ranger-service jfs

# 已有的文件系统增加 ranger 配置
juicefs config META-URL --ranger-rest-url http://localhost:6080 --ranger-service jfs
  1. Ranger 服务地址:指定 Ranger 服务端的地址,JuiceFS 客户端将通过该地址与Ranger服务端通信。

  2. Ranger 服务名称:指定 Ranger 中对应的服务名称,JuiceFS 客户端将根据该名称拉取相应的权限策略。

注意事项

  • 日志管理:JuiceFS 社区版的权限校验逻辑在客户端完成,且客户端数量可能非常多,目前不支持审计日志。

  • 安全性: 由于权限校验逻辑在客户端执行且代码开源,权限校验的强制性相对较弱。用户可以通过修改代码或其他手段绕过权限校验。因此,在实际使用中,需要通过管理措施来确保权限控制的有效性。

  • 仅 Java 客户端支持:目前,Ranger 的客户端代码是基于Java 的,因此 JuiceFS 与 Ranger 的集成主要适用于 Hadoop SDK 。

03 总结

JuiceFS 社区版与 Apache Ranger 的集成为大数据环境下的文件系统权限管理提供了一种灵活且细粒度的解决方案。通过 Ranger 的集中式策略管理,用户可以方便地为 JuiceFS 中的文件和目录设置访问控制规则。JuiceFS 与 Ranger 的集成能够为大数据平台提供强有力的安全保障。

相关推荐
软件开发技术深度爱好者2 分钟前
基于多个大模型自己建造一个AI智能助手
人工智能
大卫小东(Sheldon)8 分钟前
公司新来的00后老板让我们把数据库改成PostgreSQL,大家怒了😂
ai·postgre
中國龍在廣州15 分钟前
现在人工智能的研究路径可能走反了
人工智能·算法·搜索引擎·chatgpt·机器人
攻城狮7号24 分钟前
小米具身大模型 MiMo-Embodied 发布并全面开源:统一机器人与自动驾驶
人工智能·机器人·自动驾驶·开源大模型·mimo-embodied·小米具身大模型
搜移IT科技29 分钟前
【无标题】2025ARCE亚洲机器人大会暨展览会将带来哪些新技术与新体验?
人工智能
信也科技布道师FTE1 小时前
当AMIS遇见AI智能体:如何为低代码开发装上“智慧大脑”?
人工智能·低代码·llm
青瓷程序设计1 小时前
植物识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
JuiceFS1 小时前
JuiceFS sync 原理解析与性能优化,企业级数据同步利器
运维·后端
AI即插即用1 小时前
即插即用系列 | CVPR 2025 WPFormer:用于表面缺陷检测的查询式Transformer
人工智能·深度学习·yolo·目标检测·cnn·视觉检测·transformer
唐兴通个人1 小时前
数字化AI大客户营销TOB营销客户开发专业销售技巧培训讲师培训师唐兴通老师分享AI销冠人工智能销售AI赋能销售医药金融工业品制造业
人工智能·金融