Minio(二)

您所在的位置:网站首页 权限测试定义 Minio(二)

Minio(二)

2023-12-11 22:04| 来源: 网络整理| 查看: 265

文章目录 前言Minio客户端的使用权限控制主流程测试Amazon S3 定义的操作:即各种权限配置分布式集群权限配置总结

前言

        前文我们学习了minio的基本概念与搭建,那么如果我们有n个系统,n个系统都在使用同一套minio,那么如何来控制每个系统的访问权限呢???本文则重在解决此问题。

Minio客户端的使用

        首先我们得先学习一下Minio客户端的使用,因为权限控制是在客户端下使用的。MinIO客户端快速入门指南

        MinIO Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。简单来说就是命令行控制minio的操作,如本文的添加权限控制。

相关命令:

ls 列出文件和文件夹。mb 创建一个存储桶或一个文件夹。cat 显示文件和对象内容。pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。share 生成用于共享的URL。cp 拷贝文件和对象。mirror 给存储桶和文件夹做镜像。find 基于参数查找文件。diff 对两个文件夹或者存储桶比较差异。rm 删除文件和对象。events 管理对象通知。watch 监听文件和对象的事件。policy 管理访问策略。session 为cp命令管理保存的会话。config 管理mc配置文件。update 检查软件更新。version 输出版本信息。

1.下载mc客户端:mc

2.使用 将mc文件放入目录,我这里跟minio文件放在一起。 在mc文件存在目录下: 给mc添加执行权限:chmod +x mc 执行:./mc version 在这里插入图片描述

在这里插入图片描述

权限控制主流程

简述流程:

创建策略创建策略配置文件把策略配置文件与策略关联创建用户把权限策略与用户关联

1.首先执行一下几个命令:

./mc config host list:查看主机的mc配置。我们可以看到本地minio访问地址local:http://localhost:9000 在这里插入图片描述这里显示的配置信息,其实也就是 /root/.mc目录下的config.json配置文件的信息。这个目录会在初次使用mc客户端命令的时候自动生成。 在这里插入图片描述

2.添加策略,并给访问策略执行策略配置

给local创建别名为sxdb,用户名密码为admin 12345678。这里的为minio.service配置文件配置的用户名和密码 ./mc config host add sxdb http://localhost:9000 admin 12345678 在这里插入图片描述 再执行一下./mc config host list查看mc配置,可以看到新增一个一条 在这里插入图片描述

创建自定义策略配置文件 testPolicy1.json touch testPolicy1.json

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::testpolicy1/*" ] } ] } 名称作用Version版本,这个不能随便写,看着是日期。其实随便写了后会失效EffectAllow或者deny,允许或者拒绝下面配置的访问权限Action配置权限,上传,删除,下载等等的权限Resource配置权限的作用范围,这里配置的是只能控制testpolicy1这个桶 给策略sxdb设置策略配置文件json 设置前先看一看当前sxdb的权限,可以看到默认readonly,readwrite,writeonly三个权限 ./mc admin policy list sxdb 在这里插入图片描述 给策略别名sxdb添加自定义策略配置:./mc admin policy add sxdb test1 testPolicy1.json 在这里插入图片描述 在这里插入图片描述

3.添加用户 给策略别名,添加一个用户testuser1 ,密码为a12345678。这个密码不能太短会报错如图所示。指定这个用户的权限策略为刚刚添加的test1 ./mc admin user add sxdb testuser1 a12345678 test1 在这里插入图片描述 4.给用户设置访问策略 给用户testuser1,添加test1权限策略 ./mc admin user set-policy sxdb testuser1 test1 在这里插入图片描述 5.如果有更改策略配置json文件,则可以重新执行如下: ./mc admin user set-policy sxdb testuser1 test1 ./mc admin policy add sxdb test1 testPolicy1.json

测试

用minio.service配置的用户名密码(管理员)登录,建桶testpolicy1,testpolicy1 在这里插入图片描述

更改权限配置文件把删除的权限去掉,添加上传权限 在这里插入图片描述

重新执行命令,重新加载: ./mc admin policy add sxdb test1 testPolicy1.json

换自己创建的用户testuser1 a12345678登录,进行上传,删除操作 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 加上删除权限: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 可以看到文件已经没了。但是不知道小伙伴们有没有发现,明明管理员登录创建了2个桶,为什么这个用户testuser1只看到了一个桶?? 当然是作了权限控制: 这里只给用户testuser1设定了testpolicy1的访问资源 在这里插入图片描述 做一下更改: 在这里插入图片描述 再看一看,这是就2个桶都有了 在这里插入图片描述

Amazon S3 定义的操作:即各种权限配置

Amazon S3 的操作、资源和条件键 如图所示: 在这里插入图片描述

这里简单罗列一下:

名称作用GetObject下载对象ListBucket查看桶内的对象列表ListAllMyBuckets查看所有的桶列表PutObject上传对象DeleteObject删除对象AbortMultipartUpload授予权限以中止分段上传…… 分布式集群权限配置

笔者对分布式下集群的权限配置做了模拟,发现如下: 1.只需要在一个节点创建用户,创建策略。其他节点能够使用该用户登录界面,且该用户拥有相应的权限。但是这个节点mc命令行里面是找不到用户和策略配置的 疑问:分布式集群下,需要在其他节点都重新创建用户配置权限吗???

总结 // 查看mc配置 ./mc config host list // 提供minio.service账号密码,创建策略别名sxdb ./mc config host add sxdb http://localhost:9000 admin 12345678 // 查看策略sxdb的权限列表 ./mc admin policy list sxdb // 给策略sxdb添加自定义策略权限文件testPolicy1.json,名字为test1 ./mc admin policy add sxdb test1 testPolicy1.json // 添加用户,账号密码为testuser1 a12345678,与权限策略test1绑定 ./mc admin user add sxdb testuser1 a12345678 test1 // 查询别名sxdb下面的所有用户状态 ./mc admin user list sxdb // 给用户testuser1 设置权限策略test1 ./mc admin user set-policy sxdb testuser1 test1 // 启用用户testuser1 ./mc admin user enable sxdb testuser1 // 禁用用户testuser1 ./mc admin user disable sxdb testuser1

上一篇:Minio(一) | 搭建Minio服务器(单节点) 下一篇:Minio(三) | Minio分布式集群搭建



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3