MinIO自定义权限控制浅研

news2024/11/21 0:31:21

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


MinIO搭建好之后,出于不同场景的需要,有时候需要对不同的用户和Bucket做一些针对性的权限控制。

MinIO的权限控制配置方式不是很友好,需要自己修改策略的配置代码。最近研究测试了一些可能用到的权限做了一下实验,或许你也遇到过相同的需求......

环境搭建

1. 部署一个minio(minio单点和集群的部署可参考《圣诞来了,介绍个对象》、《Look,一群对象来了》);

2. 并创建一个名为sre01、一个sre02的Bucket用于测试权限;

权限实验

前提说明:后面的权限实验中,针对指定Bucket的场景,均默认指定sre01这个Bucket。

1. 拥有全部Bucket的只读权限

权限说明:能看到minio里面的全部Bucket,但无法看到里面有哪些文件。这个就是minio默认的readonly权限,无需自己编辑权限策略:

Bucket查看文件UploadDownloadShareDelete
ALLNNNNN

1.1 创建名为sre的用户,并赋予readonly权限

1.2 权限验证

2. 对指定Bucket的只读权限

权限说明:只能看到sre01这一个Bucket,能看到sre01下有哪些文件,可以生成分享链接,但不能上传、下载和删除文件。

Bucket查看文件UploadDownloadShareDelete
sre01YNNYN

2.1 创建一个名为sre01-read的权限策略

策略代码:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::sre01/*"
            ]
        }
    ]
}

2.2 修改用户sre权限,改为sre01-read权限

2.3 权限验证

登录sre用户验证权限,对sre01下的文件可分享,不可上传、下载和删除:

3. 对指定Bucket的下载&分享权限

权限说明:能看到sre01这一个Bucket,能看到sre01下有哪些文件,可以生成分享链接和下载,但是不能上传&下载和删除文件。

Bucket查看文件UploadDownloadShareDelete
sre01YNYYN

3.1 创建一个名为sre01-download的权限策略

策略代码:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::sre01/*"
            ]
        }
    ]
}

3.2 修改用户sre权限,改为sre01-download权限

3.3 权限验证

登录sre用户验证权限,对sre01下的文件可分享&下载,不可上传&删除:

4. 对指定Bucket的上传&分享权限

权限说明:能看到sre01这一个Bucket,能看到sre01下有哪些文件,可以上传文件到sre01,对文件可以生成分享链接,但不能下载和删除文件。

Bucket查看文件UploadDownloadShareDelete
sre01YYNYN

4.1 创建一个名为sre01-uplouad的权限策略

策略代码:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",  #如果去掉这一行,就只拥有uplouad权限,看不到bucket下的文件
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::sre01/*"
            ]
        }
    ]
}

4.2 创建修改用户sre权限,改为sre01-upload权限

4.3 权限验证

登录sre用户,验证权限,可分享可上传,不可下载,不可删除:

5. 对指定Bucket的上传&分享&下载权限

权限说明:能看到sre01这一个Bucket,能看到sre01下有哪些文件,可以在sre01执行文件上传和下载,对文件可以生成分享链接,但不能删除文件。

Bucket查看文件UploadDownloadShareDelete
sre01YYYYN

5.1 创建一个名为sre01-uplouad-download的权限策略

策略代码:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::sre01/*"
            ]
        }
    ]
}

5.2 创建修改用户sre权限,改为sre01-uplouad-download权限

5.3 权限验证

登录sre用户,验证权限,可分享可上传,不可下载,不可删除:

6. 对指定Bucket的全控制权限

权限说明:能看到sre01这一个Bucket,能看到sre01下有哪些文件,可以在sre01执行文件上传、下载和删除,对文件可以生成分享链接。

Bucket查看文件UploadDownloadShareDelete
sre01YYYYY

6.1 创建一个名为sre01-uplouad-download-delete的权限策略

策略代码:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::sre01/*"
            ]
        }
    ]
}

6.2 创建修改用户sre权限,改为sre01-uplouad-download权限

6.3 权限验证

登录sre用户,验证权限,可分享可上传,不可下载,不可删除:

以上就是实验的几种minio用户权限控制场景。那么问题来了:

在上面几种权限控制中,只要拥有Bucket下文件的查看权限,就会拥有生成分享链接的share权限。那么在用户不拥有download权限的场景下(如sre-read、sre-upload)该用户能利用自身的share权限,将Bucket下的文件生成下载链接,供自己在浏览器访问链接下载文件吗?

图片

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

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

相关文章

2024年短剧素材怎么下载

看到好看的短剧,想要把它剪辑出来,该怎么下载呢,本文就教大家用工具进行下载 需要工具的点击下面的链接 下载高手链接:https://pan.baidu.com/s/1qJ81sNBzzzU0w6DWf-9Nxw?pwdl09r 提取码:l09r --来自百度网盘超级…

CommunityToolkit.Mvvm笔记---ObservableValidator

ObservableValidator 是实现 INotifyDataErrorInfo 接口的基类,它支持验证向其他应用程序模块公开的属性。 它也继承自 ObservableObject,因此它还可实现 INotifyPropertyChanged 和 INotifyPropertyChanging。 它可用作需要支持属性更改通知和属性验证的…

Pytest精通指南(19)断言和异常处理

文章目录 Pytest assert 简介assert 应用场景assert 测试结果assert 基本用法Pytest raises 简介raises 用途和作用raises 与 try 的区别python代码中使用try在测试用例中使用try使用pytest.raises() Pytest assert 简介 断言(Assertion)是编程中的一个基…

代码随想录算法训练营Day4 | 24.两两交换链表中的节点、19删除链表中的第N个节点、链表相交、142.环形链表

24.两两交换链表中的节点 题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 题目链接:24. 两两交换…

蛋白质亚细胞定位预测(生物信息学工具-017)

直奔主题,下面这张表图怎么制作,一般都是毕业论文hh,蛋白质的亚细胞定位如何预测? 01 方法 https://wolfpsort.hgc.jp/ #官网小程序,简单好用,不用R包,python包,linux程序&#x…

Linux的学习之路:14、文件(1)

摘要 有一说一文件一天学不完,细节太多了,所以这里也没更新完,这里部分文件知识,然后C语言和os两种的文件操作 目录 摘要 一、文件预备 二、c文件操作 三、OS文件操作 1、系统文件I/O 2、接口介绍 四、思维导图 一、文件…

C++笔记:类和对象(一)

类和对象 认识类和对象 先来回忆一下C语言中的类型和变量,类型就像是定义了数据的规则,而变量则是根据这些规则来实际存储数据的容器。类是我们自己定义的一种数据类型,而对象则是这种数据类型的一个具体实例。类就可以理解为类型&#xff0c…

在Ubuntu 22.04上安装配置VNC实现可视化

前面安装的部分可以看我这篇文章 在Ubuntu 18.04上安装配置VNC实现Spinach测试可视化_ubuntu18开vnc-CSDN博客 命令差不多一样: sudo apt update sudo apt install xfce4 xfce4-goodies sudo apt install tightvncserver这个时候就可以启动server了 启动server&…

音频---数字mic

一、常见的数字mic pdm麦通过codec芯片将数字麦转换为i2s信号输入到SOC 纯pdm麦就是直接进入SOC的pdm接口,走的是PDM信号,PDM信号就是两个线,一根数据线一根时钟线(如顺芯ES7201/7202把MIC信号转换成PDM)。 二、DMIC…

等保合规:保护企业网络安全的必要性与优势

前言 无论是多部网络安全法律法规的出台,还是最近的“滴滴被安全审查”事件,我们听得最多的一个词,就是“等保。” 只要你接触安全类工作,听得最多的一个词,一定是“等保。” 那么,到底什么是“等保”呢…

Docker部署SpringBoot服务(Jar包映射部署)

介绍 项目在docker部署运行以后,每次需更新jar包时,都得重新制作镜像,再重新制作容器。流程及其繁琐,效率极低。 以下步骤是在不更新镜像和容器的前提下,直接更新jar完成项目更新的操作。 不重新制作镜像部署 1. 创…

Python简化远程部署和系统管理的工具库之fabric使用详解

概要 Python Fabric库是一个用于简化远程部署和系统管理的工具库。它提供了一组简洁而强大的函数和工具,可以帮助开发者轻松地在多台远程主机上执行命令、上传文件、下载文件等操作,从而实现自动化部署和管理。 安装 要使用Python Fabric库,首先需要安装Fabric模块。可以通…

OpenHarmony实战开发-如何使用text组件的enableDataDetector属性实现文本特殊文字识别。

介绍 本示例介绍使用text组件的enableDataDetector属性实现文本特殊文字识别。 效果图预览 使用说明 1.进入页面,输入带有特殊文字的信息并发送,对话列表中文本会自动识别并标识特殊文字。目前支持识别的类型包括电话号码、链接、邮箱和地址&#xff…

Zynq7000系列中PL时钟使用

可编程逻辑(PL)具有自己的时钟管理生成和分配功能,并从处理器系统(PS)中的时钟发生器接收四个时钟信号(如图25-10所示)。 在嵌入式系统中,PL时钟的管理和分配对于确保逻辑电路的正确…

协程的意义(二)

1.协程的意义 在一个线程中,如果遇到IO等待,线程不会一直在等待,而是利用空余时间去完成别的任务(充分利用线程)。 示例:下载图片 ①普通的方式下载图片(同步方式) ②使用协程的方…

发泡机液压站比例阀放大器

发泡机液压站是提供动力和压力以驱动发泡机工作的系统。 发泡机是一种用于制备聚氨酯发泡材料的设备,而液压站则扮演着为发泡机提供必要动力的角色。具体来看,液压站的主要组成包括: 液压油箱:存储液压油,为系统提供液…

【Applied Algebra】隐藏子群问题和Shor算法的新视角

隐藏子群问题和Shor算法的新视角 隐藏子群问题是指给定一个群和一个函数,该函数对于群的一个子群是常数,并且对于子群的任何两个不同的左陪集有不同的值,问题是找到这个子群.HSP是许多量子算法的基础,其中最著名的是Shor的算法,它可以用来分解大整数和计算离散对数,这直接威胁到…

小目标检测——鸟类数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

nvidia-smi CUDA Version:N/A

问题 nvidia-smi显示:CUDA Version:N/A nvidia-smi -a显示:CUDA Version: Not Found 解决方法 查看Nvidia驱动版本 nvidia-smi如下图,版本为530.41.03 搜索cuda库 apt search libcuda注:不同的源,同一个库的命…

轻量级SQLite可视化工具Sqliteviz

什么是 Sqliteviz ? Sqliteviz 是一个单页面离线优先的渐进式网络应用(PWA),用于完全客户端的 SQLite 数据库或 CSV 文件的可视化。 所谓完全客户端,就是您的数据库永远不会离开您的计算机。使用 sqliteviz&#xff0c…