JuiceFS v1.2-beta1,Gateway 升级,多用户场景权限管理更灵活

JuiceFS v1.2-beta1 今天正式发布。在这个版本中,除了进行了大量使用体验优化和 bug 修复外,新增三个特性:

  1. Gateway 功能扩展:新增了“身份和访问管理(Identity and Access Management,IAM)” 与 “事件通知” ,为用户提供更安全、灵活和自动化的数据管理和监控能力,适用于多用户环境和复杂的业务场景;

  2. 支持 POSIX ACL:使用 Linux 自带的 ACL 工具(setfacl/getfacl)即可实现更加强大的用户权限管理;

  3. 支持平滑升级:在相同的挂载点再次挂载 JuiceFS 即可实现业务无感的平滑升级;此外,这种方式也可用来在线调整挂载参数。

本次版本更新,共有 41 名贡献者参与,合入 354 次代码。感谢每位贡献者的付出!

在近期的博客中,我们将逐一为大家介绍这些特性的原理及应用。

01 JuiceFS Gateway 简介

JuiceFS 将文件分块存储到底层的对象存储中,向用户提供 POSIX 接口访问 JuiceFS 中的文件。当用户需要同时用 S3 兼容接口访问文件时,就需要用 JuiceFS Gateway。

tu

在本次 JuiceFS 1.2-beta1 版本中,我们对 Gateway 功能新增了两项备受期待的模块:

  1. 身份和访问管理(IAM):支持多用户的管理和访问控制,支持匿名访问控制;

  2. 事件通知:可以使用桶事件通知来监控桶中对象发生的事件。

02 实现

JuiceFS Gateway 的核心服务是将 POSIX 文件系统通过 S3 接口对外提供访问。在 v1.2 版本以前,我们的实现方式是将 MinIO Gateway 模块集成到我们的代码中,当时该模块是基于 Apache 许可证的版本。这种集成方式使得 JuiceFS 的运行机制与 MinIO 的原生命令 minio gateway NAS 相似。对于用户来说,JuiceFS 可被视为 MinIO Gateway 的一种实现方式。此外,MinIO 的其他后端实现还包括 NAS、Hadoop 等。

在 v1.2 版本中,我们直接实现了 MinIO object 接口 ,并将 JuiceFS 作为其服务的后端存储。这样做让用户获得了近乎原生 MinIO 体验,并继承了 MinIO 许多高级功能。JuiceFS 在这里充当了 MinIO 服务器命令的一块本地盘,整体的原理类似于 minio server /data1

用户可以使用 MinIO 的 mc 工具直接管理 Juicefs Gateway。由于 MinIO 目前是遵循 AGPL 许可证进行发布的,而 JuiceFS 是使用的是其 Apache 许可证的版本,因此我们建议使用与之相匹配的 Apache 许可版本的 mc工具,以避免潜在的兼容性问题,可以点击这里下载。

本次新增的两个模块的使用方法基本与 MinIO 相应模块的使用方法基本一致,用户可参考 MinIO 相关文档或 JuiceFS 文档来了解详细信息。接下来,我们将简要介绍这些新功能及其使用方法。

03 新增功能

身份和访问管理

用户管理

juicefs gateway 允许使用 mc admin user add 添加新的用户。添加的用户可以使用 mc admin user 进行管理,支持添加,关闭,启用,删除用户,也支持查看所有用户以及展示用户信息和查看用户的策略。

服务账户

允许为某个用户添加服务账户,每个服务账户都与用户身份相关联,并继承附加到其父用户或父用户所属组的策略。每个访问密钥还支持可选的内联策略,可进一步限制对父用户可用的操作和资源子集的访问。具体使用 mc admin user svcacct 命令来进行服务账户的管理。

AssumeRole 安全令牌服务

AssumeRole 会返回一组临时安全凭证,用户可以使用这些凭证访问 Gateway 资源。AssumeRole 需要现有 Gateway 用户的授权凭据,返回的临时安全凭证包括访问密钥、秘密密钥和安全令牌。应用程序可以使用这些临时安全凭证对 Gateway API 操作进行签名调用。应用于这些临时凭据的策略继承自 Gateway 用户凭据。具体使用方法请参考使用文档。

权限管理

默认新创建的用户是没有任何权限的,需要使用 mc admin policy 为其赋权后才可使用。该命令支持权限的增删改查以及为用户添加删除更新权限操作。另外 gateway 还内置了以下 4 种常用的策略。

  • readonly:只读用户
  • readwrite:可读写用户
  • writeonly:只写用户
  • consoleAdmin:可读可写可管理,可管理指可以调用管理 API,比如创建用户等等。如需设置自定义的策略,可以使用 mc admin policy add 添加。
用户组管理

JuiceFS Gateway 支持创建用户组,类似于 Linux 用户组的概念,使用 mc admin group 管理。你可以把一个或者多个用户设置为一个组,然后为组统一赋权。

匿名访问管理
以上是针对有用户记录的管理,但是有时我们希望特定的对象或桶可以被任何人访问,这时就需要匿名访问管理了,这部分功能使用 mc policy 命令管理。Gateway 默认内置了 4 种匿名权限:

  • none: 不允许匿名访问(一般用来清除已有的权限)
  • download:允许任何人读取
  • upload:允许任何人写入
  • public:允许任何人读写

桶事件通知

有时用户需要根据桶上发生的事件来触发一些行为,这时就需要桶时间通知该功能了。存储桶事件通知可以用来监视存储桶中对象上发生的事件。

目前支持的对象事件类型有:

  • s3:ObjectCreated:Put
  • s3:ObjectCreated:CompleteMultipartUpload
  • s3:ObjectAccessed:Head
  • s3:ObjectCreated:Post
  • s3:ObjectRemoved:Delete
  • s3:ObjectCreated:Copy
  • s3:ObjectAccessed:Get

支持的全局事件有:

  • s3:BucketCreated
  • s3:BucketRemoved

可以使用 mc 客户端工具通过 event 子命令设置和监听事件通知。MinIO 发送的用于发布事件的通知消息是JSON 格式的,JSON 结构参考这里。

目前存储桶事件可以支持发布到以下目标:

  • Redis
  • MySQL
  • PostgreSQL
  • WebHooks

具体用法请参考使用文档。

其他功能

  1. 支持对象标签(object-tagging) 允许用户为对象设置自定义标签,可以使用 mc tag 进行管理

  2. 后台运行 支持 gateway 以后台模式运行,在启动时添加 -d 参数即可

👆👆以上是 JuiceFS 1.2-beta1 Gateway 新功能的介绍,欢迎大家下载试用:https://github.com/juicedata/juicefs/releases/tag/v1.2.0-beta1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/319974.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA面试专题-框架篇(Spring+Mybatis)

Spring Spring框架中的单例bean是线程安全的吗? bean上面可以加入注解Scope,如果是singleton(默认),意味着bean在每个spring IOC容器中只有一个实例;如果是prototype,说明一个bean定义可以有多…

Centos上通过Docker安装ES管理端kibana

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Elasticsearch 是一…

《QT实用小工具·五十六》自适应界面变化的控件

1、概述 源码放在文章末尾 该项目实现了网格显示多张带文字的图片在界面中自适应布局 特点 跟随窗口大小变换位置,并带移动动画 响应鼠标事件,图片缩放动画 点击水波纹动画 项目demo演示如下所示: 项目部分代码如下所示: #i…

Electron+Vue3+Vite+ElectronForge整合 - 一键启动两个服务 一键打包两个服务

说明 本文介绍一下 Electron Vue3 Vite Electron Forge 的高级整合操作。vue3 : 使用 TS 的语法开发; Electron : 使用 JS 的语法开发。本文将从项目初始化开始,一步一步的完成项目的启动、打包全流程的介绍。实现的效果是 : 1、一个正常…

CRE-LLM:告别复杂特征工程,直接关系抽取

CRE-LLM:告别复杂特征工程,直接关系抽取 提出背景CRE-LLM 宏观分析CRE-LLM 微观分析1. 构建指令集(Instruction Design)2. 高效微调大型语言模型(Efficient Fine-Tuning on LLMs)3. 方法讨论(Di…

Leetcode—706. 设计哈希映射【简单】(constexpr)

2024每日刷题(127) Leetcode—706. 设计哈希映射 数组实现代码 class MyHashMap { public:MyHashMap() {memset(arr, -1, sizeof(arr));}void put(int key, int value) {arr[key] value;}int get(int key) {if(arr[key] -1) {return -1;} return arr…

【在线OJ】Vue在线OJ项目

一、主页 二、题库 三、在线编译器 四、比赛 五、搜索 六、个人主页

保研面试408复习 2——操作系统、计网

文章目录 1、操作系统一、进程、线程的概念以及区别?二、进程间的通信方式? 2、计算机网络一、香农准则二、协议的三要素1. 语法2. 语义3. 时序 标记文字记忆,加粗文字注意,普通文字理解。 1、操作系统 一、进程、线程的概念以及…

VMware worksation 17 简易安装Centos8.2、Redhat8.2、Ubuntu16.04

系列文章目录 文章目录 系列文章目录前言一、VMware worksation 17 安装二、安装Centos8.2三、安装RHEL8.2四、安装Ubuntu16.04总结 前言 傻瓜式按照Linux系统,如果觉得简单,可以自定义设置,特别是配置一下磁盘空间大小,对以后排…

深入解析:匹配网络(Matching Networks)的原理和应用

匹配网络(Matching Networks) 深入解析:匹配网络(Matching Networks)的原理和应用匹配网络的核心原理工作原理算法流程 匹配网络的实现应用示例结论 深入解析:匹配网络(Matching Networks&#…

使用docker-compose编排Lnmp(dockerfile) 完成Wordpress

目录 一、 Docker-Compose 1.1Docker-Compose介绍 1.2环境准备 1.2.1准备容器目录及相关文件 1.2.2关闭防火墙关闭防护 1.2.3下载centos:7镜像 1.3Docker-Compose 编排nginx 1.3.1切换工作目录 1.3.2编写 Dockerfile 文件 1.3.3修改nginx.conf配置文件 1.4Docker-Co…

leetCode74. 搜索二维矩阵

leetCode74. 搜索二维矩阵 二分法模板&#xff1a;见到背过就行 // 区间[L,R]被划分为[L,mid]和[mid 1, R]时使用这个模板 int bsearch_1(int l, int r){while(l < r){int mid l r >> 1;if(check(mid)) r mid; //check()判断mid是否满足性质else l mid 1;}retu…

Istio 流量管理(请求路由、流量转移、请求重试、流量镜像、故障注入、熔断等)介绍及使用

一、Istio 流量管理 Istio是一个开源的服务网格&#xff0c;它为分布式微服务架构提供了网络层的抽象。它使得服务之间的通信变得更为可靠、安全&#xff0c;并且提供了细粒度的流量管理、监控和策略实施功能。Istio通过在服务之间插入一个透明的代理&#xff08;Envoy&#x…

正则表达式_字符匹配/可选字符集

正则表达式&#xff08;Regular Expression&#xff09;也叫匹配模式(Pattern)&#xff0c;用来检验字符串是否满足特 定规则&#xff0c;或从字符串中捕获满足特定规则的子串。 字符匹配 最简单的正则表达式由“普通字符”和“通配符”组成。比如“Room\d\d\d”就这样 的正则…

有这样的黑色产业链你遇到了吗?

今天上午来到公司发现公司的数据库被黑了。还留下了勒索的信息&#xff0c;下面给大家粘贴上。现在这样的产业是不是很多。你怎么看 把公司的数据库全删除了。然后自己新建了一个数据库&#xff0c;又建立了一个表。里面写的内容如下。 omg! 肯定是扫描出来的。这个库对外暴…

ChatGPT Web Midjourney一键集成最新版

准备工具 服务器一台 推荐使用浪浪云服务器 稳定 安全 有保障 chatgpt api 推荐好用白嫖的api 项目演示 项目部署 浏览器访问casaos 添加软件原添加 https://gitee.com/langlangy_1/CasaOS-AppStore-LangLangy/raw/master/chatmjd.zip 安装此软件 等待安装 安装后再桌面设置…

【Python深度学习(第二版)(4)】神经网络的基本数据结构-张量概念、阶数、使用NumPy操作张量、张量种类、样本轴等概念

文章目录 一. 张量概念二. 张量的阶数1. 标量&#xff08;0阶张量&#xff09;2. 向量&#xff08;1阶张量&#xff09;2. 矩阵&#xff08;2阶张量&#xff09;3. 3阶张量与更高阶的张量 三. 张量属性及操作张量1. 张量的关键属性2. 在NumPy中操作张量2.1. 选择某个图片数据2.…

常用语音识别开源四大工具:Kaldi,PaddleSpeech,WeNet,EspNet

无论是基于成本效益还是社区支持&#xff0c;我都坚决认为开源才是推动一切应用的动力源泉。下面推荐语音识别开源工具&#xff1a;Kaldi&#xff0c;Paddle&#xff0c;WeNet&#xff0c;EspNet。 1、最成熟的Kaldi 一个广受欢迎的开源语音识别工具&#xff0c;由Daniel Pove…

上位机图像处理和嵌入式模块部署(树莓派4b使用lua)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 lua是一个脚本语言&#xff0c;比c语言开发容易&#xff0c;也没有python那么重&#xff0c;整体使用还是非常方便的。一般当成胶水语言进行开发&a…