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.pswp.cn/bicheng/84158.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84158.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84158.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

6月8日day48打卡

隨機函數與廣播機制 知識點回顧: 隨機張量的生成:torch.randn函數卷積和池化的計算公式(可以不掌握,會自動計算的)pytorch的廣播機制:加法和乘法的廣播機制 ps:numpy運算也有類似的廣播機制&…

計算機常用快捷鍵分類匯總,涵蓋 Windows、macOS 以及通用軟件場景

一、系統通用快捷鍵 功能Windows 快捷鍵macOS 快捷鍵復制Ctrl CCommand C粘貼Ctrl VCommand V剪切Ctrl XCommand X撤銷Ctrl ZCommand Z全選Ctrl ACommand A保存Ctrl SCommand S打印Ctrl PCommand P新建窗口/標簽頁Ctrl NCommand N關閉當前窗口/標簽頁Ctrl WC…

ES6中的Map與Set數據結構的簡單應用

一、Map定義和基本用法 Map是一種鍵值對集合,其中鍵和值都可以是任何類型(對象、原始值等)。與普通對象不同,Map保持鍵值對的插入順序,并且允許使用任何類型的鍵。 1、創建Map const map new Map()2、添加鍵值對。…

25.【.NET8 實戰--孢子記賬--從單體到微服務--轉向微服務】--單體轉微服務--用戶服務接口

用戶管理是任何系統的基礎功能之一,本篇介紹了如何實現一個完整的用戶管理模塊,包括用戶信息的增刪改查、用戶狀態管理、分頁查詢、數據驗證和權限控制。核心代碼實現部分涵蓋了控制器(UserController)、服務接口(IUse…

基于深度學習的無人機軌跡預測

完整代碼見文末 隨著無人機技術的不斷發展,無人機在農業、物流、監控等領域的應用日益廣泛。精準的軌跡預測不僅能夠提高無人機飛行的效率和安全性,還能在應對復雜環境下的突發狀況時做出迅速反應。因此,基于深度學習的無人機軌跡預測已成為當前研究和應用的熱門方向。 無…

AUTOSAR實戰教程--DoIP_02_診斷鏈路建立流程

第一步:DoIP實體車輛聲明/診斷儀車輛識別請求 打開激活線以后,DoIP實體發的三幀車輛聲明報文。其中包含了DoIP實體的診斷邏輯地址(可以類比DoCAN的物理請求/響應地址),對應車輛的VIN碼(若已配置&#xff0…

跟我學c++中級篇——多線程中的文件處理

一、文件處理 作為IO處理的一種重要場景,文件處理是幾乎所有編程都無法繞過的一個情況。稍微復雜的一些的程序都可能需要文件處理,不管這種文件處理對開發者來說是顯式的還是隱式的。相對于其它語言,C并未提供多么好的文件處理API接口&#…

Flutter知識點匯總

Flutter架構解析 1. Flutter 是什么?它與其他移動開發框架有什么不同? Flutter 是 Google 開發的開源移動應用開發框架,可用于快速構建高性能、高保真的移動應用(iOS 和 Android),也支持 Web、桌面和嵌入式設備。。它與其他移動開發框架(如 React Native、Xamarin、原…

【會員專享數據】1980—2022年中國逐日月年潛在蒸散發柵格數據

氣象數據是我們在各項研究中都經常使用的數據,尤其是高精度的氣象數據應用價值非常高。 之前我們分享過研究者張凌, 胡英屹等發布在國家冰川凍土沙漠科學數據中心平臺上的nc格式的1980—2022年中國高分辨率逐日、逐月、逐年氣象數據!很多小伙伴拿到數據…

前端打包工具簡單介紹

前端打包工具簡單介紹 一、Webpack 架構與插件機制 1. Webpack 架構核心組成 Entry(入口) 指定應用的起點文件,比如 src/index.js。 Module(模塊) Webpack 把項目當作模塊圖,模塊可以是 JS、CSS、圖片等…

工業控制核心引擎高性能MCU——MM32F5370

RAMSUN提供的MM32F5370搭載180MHz Arm China Star-MC1處理器,集成DSP、FPU與三角函數加速單元(CORDIC),輕松應對復雜算法需求。其技術亮點包括: 超高精度PWM:8通道208ps級高精度PWM輸出,滿足儲能…

AI架構師修煉之道

1 AI時代的架構革命 與傳統軟件開發和軟件架構師相比,AI架構師面臨著三重范式轉換: 1.1 技術維度,需處理異構算力調度與模型生命周期管理的復雜性; 1.2 系統維度,需平衡實時性與資源約束的矛盾; 1.3 價…

數學建模期末速成 主成分分析的基本步驟

設有 n n n個研究對象, m m m個指標變量 x 1 , x 2 , ? , x m x_1,x_2,\cdots,x_m x1?,x2?,?,xm?,第 i i i個對象關于第 j j j個指標取值為 a i j a_{ij} aij?,構造數據矩陣 A ( a i j ) n m A\left(\begin{array}{c}a_{ij}\end{array}\right)_{…

博圖 SCL 編程技巧:靈活實現上升沿與下降沿檢測案例分享(上)

博圖 SCL 編程技巧:靈活實現上升沿與下降沿檢測案例分享 在 PLC 編程中,檢測信號從 0 變為 1 (上升沿) 或從 1 變為 0 (下降沿) 是最基礎也是最關鍵的操作之一。它常用于啟動單次動作、計數、狀態切換等場景。在西門子 TIA Portal 環境中,雖…

深度學習入門Day3--魚書學習(2)

這倆天剛忙完答辯的事情,終于有時間學習了 一、3層神經網絡實現 1.本節中的符號使用說明。 w 12 ( 1 ) w_{12}^{(1)} w12(1)?表示前一層的第2個神經元 x 2 x_{2} x2?到后一層的第一個神經元 a 1 a_{1} a1?的權重。權重右下角按照“后一層的索引號、前一層的索引…

服務器 | Centos 9 系統中,如何部署SpringBoot后端項目?

系列文章目錄 虛擬機 | Ubuntu 安裝流程以及界面太小問題解決 虛擬機 | Ubuntu圖形化系統: open-vm-tools安裝失敗以及實現文件拖放 虛擬機 | Ubuntu操作系統:su和sudo理解及如何處理忘記root密碼 文章目錄 系列文章目錄前言一、環境介紹二、 使用syst…

CNN核心機制深度解析:卷積池化原理 PyTorch實現經典網絡

本文較長,建議點贊收藏,以免遺失。更多AI大模型應用開發學習視頻及資料,盡在聚客AI學院。 本文系統講解CNN核心原理、經典網絡架構和圖像分類實戰,涵蓋卷積層、池化層、LeNet/AlexNet/VGG/ResNet設計思想,并提供CIFAR-…

6個月Python學習計劃 Day 17 - 繼承、多態與魔術方法

第三周 Day 4 🎯 今日目標 理解類的繼承和方法重寫掌握多態思想及其實際應用了解并使用常見的魔術方法(如 str、len 等) 🧬 類的繼承(Inheritance) Python 支持單繼承與多繼承,常用語法如下&…

抖音怎么下載視頻

抖音作為一款短視頻社交平臺,憑借其獨特的短視頻形式和豐富的內容,吸引了大量用戶。有些用戶在欣賞完抖音視頻后,想要將其保存下來,以便日后觀看。如何在抖音下載視頻呢?本文將為您詳細介紹抖音視頻下載的技巧和方法。…

使用MinIO搭建自己的分布式文件存儲

目錄 引言: 一.什么是 MinIO ? 二.MinIO 的安裝與部署: 三.Spring Cloud 集成 MinIO: 1.前提準備: (1)安裝依賴: (2)配置MinIO連接: &…