MinIO自定义权限控制浅研

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


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.mzph.cn/web/1000.shtml

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

相关文章

530.二叉搜索树的最小绝对差

给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 方法一&#xff1a;中序遍历 public int getMinimumDifference(TreeNode root){Deque<TreeNode> stack new Link…

Selenium(三):WebElement核心属性和方法

WebElement常用属性 1.id 标示 2.size 宽高 3.rect 宽高和坐标 4.tag_name 标签名称 5.text 文本内容 WebElement常用方法 1.send_keys() 输入内容 2.clear() 清空内容 3.click() 点击 4.get_attribute() 标签名称 5.is_selected() 是否被选中 5.is_enabled() 是否…

PCDN与边缘计算的集成解决方案

PCDN与边缘计算的集成解决方案 在数字化时代&#xff0c;内容的快速、安全地传递至用户变得至关重要。无论是媒体、教育还是其他领域&#xff0c;所有这些行业都需要强大的技术支持以保证信息的实时更新和安全传输。PCDN&#xff08;Peer Content Delivery Network&#xff0c…

实在RPA设计器试用导引

一、产品概述 实在RPA设计器是一款将人工智能(AI)与机器人流程自动化(RPA)深度融合的可视化自动流程编辑器。它通过AI推荐与桌面嵌入式交互&#xff0c;极大简化了RPA的使用难度&#xff0c;让普通业务人员也能轻松使用。实在RPA设计器具备以下核心优势&#xff1a; 兼容性&a…

Mac 安装comfigUI (M1)

注&#xff1a;系统要升到最新的 &#xff08;Xcode 13.3.1 or later&#xff09; Requirements Mac computers with Apple silicon or AMD GPUsmacOS 12.3 or laterPython 3.7 or laterXcode command-line tools: xcode-select --install 安装 pytorch 查看这个内容安装 h…

如何在Windows 10锁定时启用内置管理员?这里提供详细步骤

序言 当被锁定在Windows 10计算机之外时,如何启用内置管理员?正如我们所知,一旦启用了内置管理员,我们所有人都可以将其用作另一个本地管理员帐户来登录锁定的计算机。 当然,即使当你被锁定在Windows 10计算机之外时,你也可以启用内置管理员。你需要的只是Windows 10系…

TVBox的Json配置接口编写指南,模板格式说明(如何打造一个专属于自己的TVBox配置文件)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 配置解析 📒📝 JSON基础📝 配置文件结构/参数说明📝 编写步骤📝 注意事项🎈 接口分享⚓️ 相关链接 ⚓️📖 介绍 📖 TVBox 是一款备受欢迎的电视盒子应用(免费影视必备),它以其高度自定义的特性深受用户喜爱…

盗梦攻击:虚拟现实系统中的沉浸式劫持

虚拟现实&#xff08;VR&#xff09;硬件和软件的最新进展将改变我们与世界和彼此互动的方式&#xff0c;VR头显有可能为用户提供几乎与现实无差别的深度沉浸式体验。它们还可以作为一种跨越遥远距离的方式&#xff0c;通过使用个性化的化身或我们的数字代表&#xff0c;促进社…

从 Elastic 的 Go APM 代理迁移到 OpenTelemetry Go SDK

作者&#xff1a;来自 Elastic Damien Mathieu 正如我们之前所分享的&#xff0c;Elastic 致力于帮助 OpenTelemetry&#xff08;OTel&#xff09;取得成功&#xff0c;这意味着在某些情况下构建语言 SDK 的分发版本。 Elastic 在观察性和安全数据收集方面战略性地选择了 OTel…

9个技巧使你的Python代码更Pythonic!

如何区分漂亮和丑陋的代码&#xff1f; 更重要的是&#xff0c;如何写出漂亮的 Python 代码&#xff1f; 本文将通过初学者容易理解的例子展示9个神话般的Python技巧&#xff0c;以帮助你在日常工作中编写更多的Pythonic程序。 01 product() 使用 product() 函数避免嵌套的…

Zabbix 监控软件(一)

通常我们服务搭建成功 但不清楚服务器的运行状况&#xff0c;这时候就需要会使用监控系统查看服务器状态以及网站流量指标&#xff0c;利用监控系统的数据去了解上线发布的结果&#xff0c;和网站的健康状态。 利用一个优秀的监控软件&#xff0c;我们可以: ●通过一个友好的界…

R语言入门:“Hellinger“转化和“normalize“转化(弦转化)的公式表示与R代码实现

1、写在前面 vegan包中的decostand()函数为群落生态学研究提供了一些流行的(和有效的)标准化方法。有关decostand()函数标准化的一些标准化方法可以看我的另一篇笔记&#xff1a;R语言入门&#xff1a;vegan包使用decostand()函数标准化方法 由于在网络上没有找到关于这两个转…

互联网技术知识点总览——操作系统知识点框架图

简介 本文对操作系统的知识点整体框架进行梳理和分享如下&#xff1a;

【问题解决】Fatal error “unsafe repository (‘git目录名‘ is owned by someone else)“

问题复现 近期升级了 Git v2.37.0&#xff0c;发现在git bash进入git目录执行git命令时出现错误&#xff1a;Fatal error "unsafe repository (git目录名 is owned by someone else)"&#xff0c;无法使用git做一些操作。 问题解决 两个方法&#xff1a;降级到v2.…

避障型激光传感器SE-0522/0526/0533/1022/1026/1033应用与接线说明

避障型激光传感器SE-0522/0526/0533/1022/1026/1033是根据飞行时间&#xff08;TOF 测量原理&#xff09;运行&#xff0c;在极高的同步时钟下&#xff0c;以 均匀的时间间隔发射激光&#xff0c;激光光束遇到物体时 会反射回来&#xff0c;扫描传感器接收到反射 的光束后&…

正式项目的验收文件模板

了解了&#xff01;下面是一个更完整和专业的研发项目验收报告的Word文档模板的详细内容&#xff0c;你可以将其复制到Word中并进行相应的格式调整以符合你的需求&#xff1a; 项目验收报告 项目名称&#xff1a;[输入项目名称] 项目编号&#xff1a;[输入项目编号] 项目负责人…

docker安装clickhouse数据库

1.创建目录 mkdir -p /data/clickhouse/data mkdir -p /data/clickhouse/conf mkdir -p /data/clickhouse/log2.拉取镜像 docker pull clickhouse/clickhouse-server3.创建临时容器 docker run -d --rm --name clickhouse-server --ulimit nofile262144:262144 clickhouse/c…

2024 发布Maven项目到中央仓库

注册sonatype账号 Maven中央仓库并不支持直接发布jar包&#xff0c;sonatype是其指定的第三方仓库之一&#xff0c;发布到此的项目会被定时同步到中央仓库 官方教程地址&#xff1a;https://central.sonatype.org/register/central-portal/ 访问网址&#xff1a;https://centra…

新项目应该选mongodb还是postgresql?

文章目录 MongoDBPostgreSQL大数据处理时的优势对比实际使用经验 选择MongoDB还是PostgreSQL作为新项目的数据库&#xff0c;主要取决于项目的具体需求、数据模型、应用场景以及团队熟悉程度等因素。下面将从几个关键角度对两者进行对比分析。 MongoDB 数据模型&#xff1a;Mo…

开发工具——postman使用教程详解

一、概念 1、Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件&#xff0c;Postman分为Postman native app和Postman Chrome app两个版本。目前Chrome app已停止维护&#xff0c;官方不推荐使用该版本。 2、官网下载地址&#xff1a;http://www.getpostman.com…