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

news2024/12/27 10:47:13

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.coloradmin.cn/o/1649737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WHM中如何查看磁盘使用情况

今日看到有用户在论坛留言反馈他买了Hostease 独立服务器并购买cPanel面板,想要通过面板查看当前服务器使用的磁盘情况,但是不知道如何查看。因为这边也是对于cPanel即WHM面板有是有所了解的,对于这个用户的问题, 操做步骤如下&am…

【Linux】Docker 安装部署 Nacos

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 【Linux】Docker 安装部署 Nacos docker搜索na…

看完这篇文章我奶奶都懂Opentracing了(一)

前言 如果要基于Opentracing开发分布式链路追踪Java客户端工具包,首先肯定需要了解Opentracing中的各种概念,包括但不限于Span和Scope等,其实这些概念在Opentracing的官方文档中是有比较详尽的说明的,英文不好也能靠着机器翻译读…

【linux-IMX6ULL中断配置流程】

目录 1. Cortex-A7和GIC中断概述1. 1 Cortex-A7中断系统:1. 2 GIC中断控制器简介: 2. 中断配置概述3. 底层中断文件配置3.1 对启动文件.s的配置思路3.2 对中断函数配置思路 4. 上层中断配置流程 1. Cortex-A7和GIC中断概述 学习IMX6UL的中断处理系统&…

毕业就业信息|基于Springboot+vue的毕业就业信息管理系统的设计与实现(源码+数据库+文档)

毕业就业信息管理系统 目录 基于Springboot+vue的毕业就业信息管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1学生信息管理 2 公司信息管理 3公告类型管理 4公告信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设…

自动化运维管理工具 Ansible-----【inventory 主机清单和playbook剧本】

目录 一、inventory 主机清单 1.1inventory 中的变量 1.1.1主机变量 1.1.2组变量 1.1.3组嵌套 二、Ansible 的脚本 ------ playbook(剧本) 2.1 playbook介绍 2.2playbook格式 2.3playbooks 的组成 2.4playbook编写 2.5运行playbook 2.5.1ans…

如何翻译外文文献【攻略】

如何翻译外文文献【攻略】 前言版权推荐如何翻译外文文献简单描述第一步 准备一篇外文文献第二步 翻译网站第三步 解锁文档第四步 编辑dpf第五步 pdf转为word第六步 编辑word方便操作快捷键设置章节设置页眉页脚设置页码三线表的绘制 第七步 word转为pdf 最后 前言 2024-5-7 1…

电脑提示“无法定位程序输入点kernel32.dll”怎么解决?分享kernel32.dll丢失的五个修复方法

打开游戏或者软件的时候,电脑提示由于找不到kernel32.dll,无法继续执行此代码怎么办,其实修复起来不难。首先需要先知道怎么是dll文件,dll文件可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的…

【SSM进阶学习系列丨分页篇】PageHelper 分页插件集成实践

文章目录 一、说明什么是分页PageHelper介绍 二、导入依赖三、集成Spring框架中四、编写Service五、编写Controller六、编写queryAllByPage页面展示数据 一、说明 什么是分页 ​ 针对分页,使用的是PageHelper分页插件,版本使用的是5.1.8 。 ​ 参考文档…

openEuler 22.03 GPT分区表模式下磁盘分区管理

目录 GPT分区表模式下磁盘分区管理parted交互式创建分区步骤 1 执行如下步骤对/dev/sdc磁盘分区 非交互式创建分区步骤 1 输入如下命令直接创建分区。 删除分区步骤 1 执行如下命令删除/dev/sdc1分区。 GPT分区表模式下磁盘分区管理 parted交互式创建分区 步骤 1 执行如下步骤…

Day 24 数据库管理及数据类型

数据库管理及数据类型 一:数据类型 1.数值类型 整数类型 ​ 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT ​ 作用:用于存储用户的年龄、游戏的Level、经验值等 浮点数类型 ​ 浮点数类型:FLOAT DOUBLE ​ 作用&#xf…

2024 cleanmymac有没有必要买呢,全反面分析

在使用mac时,小编遇到了运行内存不足、硬盘空间不足的情况。遇到这种情况,我们可以借助经典的电脑深度清理软件——CleanMyMac X,清理不常用的软件和系统垃圾,非常好用!不过,有许多网友发现CleanMyMac X有免…

基于Springboot的校园新闻管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的校园新闻管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

NFTScan 与 Scattering 达成合作伙伴,双方将共同解决混合 NFT 数据需求

在区块链领域,NFT 的创新与发展从未停止。近日,NFT 数据基础设施 NFTScan 与一站式混合 NFT 交易市场 Scattering 达成合作伙伴关系,双方将在 NFT 数据层面展开合作,共同解决混合 NFT 的独特数据需求,Scattering 在协议…

非平衡数据处理-Tomek link算法介绍,代码和实战测评

作者Toby,来源公众号:Python风控模型,非平衡数据处理-Tomek link算法 概述 非平衡数据在金融风控领域、反欺诈客户识别、广告智能推荐和生物医疗中普遍存在。一般而言,不平衡数据正负样本的比例差异极大,如在Kaggle竞…

Quora 首席执行官亚当·德安杰洛 (Adam D’Angelo) 谈论了 AI、聊天机器人平台 Poe,以及 OpenAI 为什么不是竞争对手

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

无线通信基础

这里写目录标题 通信概述什么是无线通信无线通信电磁波 通信概述 什么是无线通信 无线通信 : 是指利用电磁波信号可以在自由空间中传播的特性进行信息交换的一种通信方式 无线通信的关键技术包括调制技术、解调技术、信道编码技术、信号处理技术、天线技术等。这些技术的不断…

【探索Java编程:从入门到入狱】Day4

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

CANdela/Diva系列2--CANdela Studio的工作树介绍1

本系列的第一篇文章(CANdela/Diva系列1--CANdela Studio的基本介绍)主要介绍了CANdela这个工具,本篇文章将对CANdela Studio的工作树的每个模块进行详细介绍,不啰嗦,直接开始! 目录 1. ECU Information的…