minio客户端安装多用户+权限隔离(mc)

上一篇:minio安装部署服务器

MinIO客户端:

MinIO Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。
它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。
MinIO服务端中并没有自带客户端,所以我们需要安装配置完客户端后才能使用

官方参考文档

常用mc的命令:

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

# 进入文件夹
cd /usr/local/src/minio/minio/client

# 下载二进制文件
wget https://dl.min.io/client/mc/release/linux-amd64/mc

# 授权
chmod +x  mc

# 更改用户组为minio
chown  -R minio:minio  /usr/local/src/minio/minio/client/

# 查看帮助文档
./mc --help

当我们首次运行,会在当前启动的账号的首目录底下持久化一个隐藏文件[.mc]
如果你是root用户运行,那么这个文件就在[/root/.mc]

#查看 [.mc]文件
ll -a /root

cd /root/.mc/
B、使用固定策略创建新用户

mc-Client快速入门指南

MinIO默认的权限管理策略只有writeonly,readonly和readwrite,而且是针对所有的bucket的,要实现对不同的桶进行不同的权限管理,需要使用自定义policy。
使用mc admin policy创建政策。可以在/root/.mc目录中创建一个json文件

比如我们业务中,有很多的系统,可以根据业务系统的不同,创建不用的业务账号,做到数据隔离的作用
如:
我们创建一个onebucket.json。即表示我们要设置只能操作一个桶的一个账户。
我们先创建onebucket.json策略文件,内容如下:

在这里插入图片描述

在/usr/local/src/minio/minio/client文件夹中

# 创建策略文件
touch onebucket.json

加入下面配置信息

别特注意,在配置文件中,是不允许加入 "//注释"注释的,否则会报错
mc: Unable to parse the input policy: invalid character ‘/’ looking for beginning of object key string.
所以在onebucket.json文件中添加下面json的时候需要去掉注销
在这里插入图片描述

{
  "Version": "2012-10-17",   //这个日期就这样吧,虽然比较老       
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [                     //  权限列表
		"s3:ListAllMyBuckets",        //  查看所有的桶权限
		"s3:ListBucket",              //  查看桶内对象权限
		"s3:GetBucketLocation",       //  定位bucket权限
		"s3:GetObject",               //   下载权限
		"s3:PutObject",               //   上传权限
		"s3:DeleteObject"             //   删除权限
      ],
      "Resource": [
        "arn:aws:s3:::onebucket/*"    // arn:aws:s3不用动,后面用*表示所有桶,用 onebucket/*表示只针对这个桶
      ]
    }
  ]
}

在这里插入图片描述
可以看到 是没有注解的
这里可以建立多个json文件,每个文件都可以单独的做为一个用户权限的专属策略,方便管理
当你有多个业务账号需要创建的时候时候,就可以使用多个json文件来进行策略管理

加入完成之后,接下来我们就来进行多用户配置操作

1.首先我们利用mc查看配置信息

# 列出所有已配置的别名
mc alias list

在这里插入图片描述
这个时候,我们在进入mc的持久化目录
在这里插入图片描述
可以查看到,有一个config.json的文件,实际上就是我们所查看的mc配置信息

2.添加策略链接别名

添加策略链接别名
mc alias set myminio http://127.0.0.1:9000 admin 'admins-1'

在这里插入图片描述

# 再次查看配置
mc alias list

在这里插入图片描述
可以看出,比之前多了一个选项,而且你再次去/root/.mc/目录下查看,你会发现config.json文件也同时更新了

3.查看策略权限

添加完成之后,我们可以查看这个添加的策略

查看策略权限
mc admin policy list myminio

在这里插入图片描述

4.删除策略

删除策略
mc alias remove myminio

这里我们就不做删除了

5.添加策略权限

mc admin policy add myminio onebucket onebucket.json

注意这里,上面讲到策略文件中的注释问题,在onebucket.json文件中,如果有注销【//注释】
在添加策略的时候,会报错,所以需要注意

在这里插入图片描述
6.添加用户

mc admin user add myminio onebucket onebucket123

在这里插入图片描述
7.查看添加的用户

mc admin user list myminio

在这里插入图片描述
8.给新用户添加策略权限

# 案例
# 意思是:使用mc admin policy set 给用户名为onebucket的用户添加onebucket策略
mc admin policy set myminio onebucket user=onebucket

在这里插入图片描述
这个时候我们就完成了一个新用户,对应一个策略权限的所有错我,我们就可以在页面minio的页面上进行操作了

用户权限操作

在这里插入图片描述

首先我们用admin账户登录minio页面,创建一个桶,这个桶的名字 就是我们刚才策略配置文件中的名字
在这里插入图片描述
在这里插入图片描述
上传一个文件

这里注意,需要上传一个文件,不可以为空的文件,因为minio默认空的文件不具有有效性的

在这里插入图片描述

退出当前用户
在这里插入图片描述
用新创建的用户登录

在这里插入图片描述
结束

扩展

1.onebucket使用onebucket.json策略文件按名称创建新的固定策略【mc admin policy】

# 格式
mc admin policy add minio别名 策略别名 策略.json
# 案例 
# 意思是 使用mc admin policy命令添加一个别名为myminio,策略别名为onebucket的策略,策略文件为onebucket.json
mc admin policy add myminio onebucket /root/.mc/onebucket.json

2.在MinIO使用上创建一个新用户 【mc admin user】

# 格式
mc admin user add minio别名 用户名 用户密码
# 案例
# 意思是:使用mc admin user 命令添加一个别名为myminio,用于名为onebucket,密码为onebucket123的用户
mc admin user add myminio onebucket onebucket123

3.成功创建用户后,给用户添加应用策略【mc admin policy】

# 格式
mc admin policy set minio别名 策略别名 user=用户名
# 案例
# 意思是:使用mc admin policy set 给用户名为onebucket的用户添加onebucket策略
mc admin policy set myminio onebucket user=onebucket

4.创建一个新组

mc admin group add myminio newgroup newuser

成功创建组后,可以 getonly 对该组应用策略

mc admin policy set myminio onebucket group=newgroup

5.禁用用户

禁用用户 newuser

mc admin user disable myminio newuser

禁用组 newgroup

mc admin group disable myminio newgroup

6.删除用户

删除用户 newuser

mc admin user remove myminio newuser

从组中删除用户 newuser

mc admin group remove myminio newgroup newuser

删除组 newgroup

mc admin group remove myminio newgroup

7.更改用户或组策略

将用户策略更改 newuser 为 putonly 固定策略

mc admin policy set myminio putonly user=newuser

将组策略更改 newgroup 为 putonly 固定策略

mc admin policy set myminio putonly group=newgroup

8.列出所有用户或组

列出所有启用和禁用的用户

mc admin user list myminio

列出所有启用或禁用的组

mc admin group list myminio

9.配置 mc

mc config host add myminio-newuser http://localhost:9000 newuser newuser123 --api s3v4

mc cat myminio-newuser/my-bucketname/my-objectname

上一篇:minio安装部署服务器

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐