当前位置: 首页 > news >正文

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 命令行增加如下配置

# 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 的集成能够为大数据平台提供强有力的安全保障。

http://www.lqws.cn/news/173161.html

相关文章:

  • 使用 Windows 完成 iOS 应用上架:Appuploader对比其他证书与上传方案
  • uniapp map组件的基础与实践
  • Flink checkpoint
  • LlamaIndex 工作流简介以及基础工作流
  • 中国首套1公里高分辨率大气湿度指数数据集(2003~2020)
  • C++11完美转发
  • 练习:对象数组 4
  • Electron Fiddle使用笔记
  • 面向无人机海岸带生态系统监测的语义分割基准数据集
  • stylus - 新生代CSS预处理框架
  • 我用Amazon Q写了一个Docker客户端,并上架了懒猫微服商店
  • SSL证书深度解析与实践指南
  • 宝塔think PHP8 安装使用FFmpeg 视频上传
  • matlab不同版本对编译器的要求(sfunction 死机)
  • Transformer-BiGRU多变量时序预测(Matlab完整源码和数据)
  • 2025年06月06日Github流行趋势
  • 嵌入式学习笔记-freeRTOS taskENTER_CRITICAL(_FROM_ISR)跟taskEXIT_CRITICAL(_FROM_ISR)函数解析
  • uniapp 开发ios, xcode 提交app store connect 和 testflight内测
  • 基于最大相邻夹角的边缘点提取(matlab)
  • 简约商务年终工作总结报告PPT模版分享
  • Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(八):异步处理逻辑详解
  • 使用 Ansible 在 Windows 服务器上安装 SSL 证书
  • 爆炸仿真的学习日志
  • spark 执行 hive sql数据丢失
  • IDEA运行Tomcat出现乱码问题解决汇总
  • C++_哈希表
  • 自托管图书搜索引擎Bookologia
  • 从0开始学习R语言--Day18--分类变量关联性检验
  • 【Spark征服之路-2.3-Spark运行架构】
  • 基于cornerstone3D的dicom影像浏览器 第二十九章 自定义菜单组件