在使用MinIO的过程中会发现它的关注点非常清晰,功能非常简洁,但是关于在实际使用中的一个可能会绕不过去的问题就是用户、组和权限的设定与管理方面,在MinIO的界面中没有体现,实际上MinIO提供了一个这方面的解决方法被称为mcs,实际上这是另外一个独立的项目,称为console,在这篇文章中我们来一探究竟。
Minio的console的概要信息如下表所示:
项目 说明 官网 https://min.io/ 开源/闭源 开源 源码管理地址 https://github.com/minio/console License类别 AGPL-3.0 License 开发语言 Go、Typescript 操作系统支持 跨平台,支持多种操作系统,比如Linux, Mac OS X, FreeBSD, Solaris, and Windows等 当前稳定版本 0.4.3 (2020/10/23) 安装MinIO的console的安装目前提供了二进制的方式和容器方式
容器方式可以直接使用docker pull拉取相应版本并运行即可。
版本拉取 执行命令 拉取最新版本 docker pull minio/minio 拉取指定版本 docker pull minio/console:v0.4.3 二进制方式 操作系统 CPU架构 地址 Apple macOS 64-bit Intel https://github.com/minio/console/releases/download/v0.4.3/console_0.4.3_Darwin_x86_64.tar.gz- 步骤1: 下载二进制文件(MacOS/0.4.3版本例)
执行命令:wget https://github.com/minio/console/releases/download/v0.4.3/console_0.4.3_Darwin_x86_64.tar.gz
- 步骤2: 解压
执行命令:tar xvf console_0.4.3_Darwin_x86_64.tar.gz
- 步骤3:设定执行权限
执行命令:chmod +x console
- 步骤4: 设定与MinIO的关联
执行命令:mc admin user add minio console consolepass
liumiaocn:mcs liumiao$ mc admin user list minio liumiaocn:mcs liumiao$ mc admin user add minio console consolepass Added user `console` successfully. liumiaocn:mcs liumiao$ mc admin user list minio enabled console liumiaocn:mcs liumiao$
注意:此处minio为mc之前mc config设定的信息。另外为了放置history命令中能够查看到此处的cosolepass的用户密码信息,可在执行此命令前后使用set +o history/set -o history
- 步骤5: 创建策略
执行命令:mc admin policy add minio consoleAdmin consoleAdmin.json
liumiaocn:mcs liumiao$ cat consoleAdmin.json { "Version": "2012-10-17", "Statement": [{ "Action": [ "admin:*" ], "Effect": "Allow", "Sid": "" }, { "Action": [ "s3:*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ], "Sid": "" } ] } liumiaocn:mcs liumiao$ mc admin policy add minio consoleAdmin consoleAdmin.json Added policy `consoleAdmin` successfully. liumiaocn:mcs liumiao$ mc admin policy list minio diagnostics readonly readwrite writeonly consoleAdmin liumiaocn:mcs liumiao$
- 步骤6: 设定用户策略
执行命令:mc admin policy set minio consoleAdmin user=console
liumiaocn:mcs liumiao$ mc admin policy set minio consoleAdmin user=console Policy consoleAdmin is set on user `console` liumiaocn:mcs liumiao$
- 步骤7: 启动console服务
执行命令: export CONSOLE_PBKDF_PASSPHRASE=PBKDF_PASSWORD export CONSOLE_PBKDF_SALT=PBKDF_PASSWORD export CONSOLE_ACCESS_KEY=console export CONSOLE_SECRET_KEY=consolepass export CONSOLE_MINIO_SERVER=http://localhost:9000 ./console server
liumiaocn:mcs liumiao$ export CONSOLE_PBKDF_PASSPHRASE=PBKDF_PASSWORD liumiaocn:mcs liumiao$ export CONSOLE_PBKDF_SALT=PBKDF_PASSWORD liumiaocn:mcs liumiao$ export CONSOLE_ACCESS_KEY=console liumiaocn:mcs liumiao$ export CONSOLE_SECRET_KEY=consolepass liumiaocn:mcs liumiao$ export CONSOLE_MINIO_SERVER=http://localhost:9000 liumiaocn:mcs liumiao$ ./console server 2020/11/03 8:28:01 Serving console at http://[::]:9090登陆确认
使用console/consolepass在9090端口提供的登陆页面即可登陆
登陆之后可以在缺省的仪表盘页面看到当前此MinIO服务的使用状况
可以通过此界面进行存储桶的创建和删除等操作
当然也可以进行文件的上传和删除等操作,这里不再一一演示,console重要的功能在于用户和分组以及策略的设定等功能的增加。只是目前的版本在使用上前端细节还有一些小问题,比如
这个提示可能看不出来什么原因,实际上是因为Secret Key要有8个或以上的, 从日志中可以看到如下错误提示:original error: secret key must be minimum 8 or more characters long。重新调整密码长度之后就可以正常创建成功了。
除了上述用户和组等功能的增强,对原有创建存储桶等功能也有增强,比如如下图所示,可以进行版本的控制和Quota的设定等。