新版的Minio管理面板发生了什么变化?
最近把服务器部署的Minio升级到了6月的版本,登录9090后台管理的时候发现很多功能都被精简了,现在的管理面板更趋向于是一个简易版的OSS对象浏览器。
从一些现有的总结信息来看(来源:特别更新:MinIO社区版11万行代码被删除,Web管理功能全面移除) ),移除的内容涉及以下部分:
账户与策略管理: 原本控制台提供的用户账户创建、访问密钥管理、策略策略设置等功能被移除。更新后,用户无法通过图形界面创建新的访问凭证或管理用户权限,只剩管理员初始帐号可用。这也意味着 OpenID Connect(OIDC)单点登录等高级认证集成功能被砍掉,后续版本中只能使用内置的管理员凭证登录控制台。Cloudron 社区论坛的讨论也确认,「OIDC 身份认证在上游已被移除,升级后只能用管理员账户登录,无法再创建新的访问密钥」。
配置与集群管理: 控制台中用于查看和修改服务器配置、管理后端存储设置、监控 MinIO 集群状态的界面不复存在。用户无法在浏览器中方便地调整实例设置或查看服务信息,相关操作需改用命令行或 API。
存储桶管理: 原有用于新建 Bucket(存储桶)、设置 Bucket 策略、浏览和管理 Bucket 属性的界面被删除。现在 Web 界面仅保留对象浏览功能,即列出 Bucket 及其中对象的基本文件浏览操作。诸如一次性创建 Bucket、配置 Bucket 版本控制、生命周期规则等动作都无法通过 UI 完成。
其他管理控制台功能: 诸如服务器信息仪表盘、多节点模式下的集群管理视图、用户界面上的日志 / 通知配置等管理类选项也一并被移除。总体而言,新版的所谓「简化控制台」实际上已经不再是一个管理控制台,而退化为一个纯对象存储浏览器。
2025.4.22版本是最后一个保留完整控制台功能的版本,2025.05.24的版本则开始精简控制台的功能,目前大部分的管理功能只能通过mc(Minio Client)实现,不过相信后续还会有第三方的管理面板出现。
开始使用mc(Minio Client)
我的场景是在项目开发中希望创建一个用户拥有某个存储桶的读写权限,并且设置这个桶可以公开访问(用于直链文件分发),因此下面的使用命令主要围绕这个目标展开。
mc命令的安装
curl https://dl.min.io/client/mc/release/linux-amd64/mc -o mc
chmod +x mc
sudo mv mc /usr/local/bin/
连接到Minio:为Minio示例添加别名
为你的Minio设置一个别名(以local为例),后续操作minio时可以直接使用local,使用单引号''
包裹连接信息,避免有特殊字符(空格、分号等)时命令执行失败
mc alias set local http://127.0.0.1:9000 'your_username' 'your_password'
创建存储桶
在刚刚连接的local实例,创建存储桶(以a-bucket为例)
mc mb local/a-bucket
设置存储桶允许公开访问
默认设置,直接使用download权限策略(不推荐)
设置a-bucket存储桶允许公开访问,即设置允许匿名下载,这里的download是一个权限的预设值。
mc anonymous set download local/a-bucket
不推荐直接使用的原因是,当访问/a-bucket路径时,将会列出你存储桶下上传的文件列表,导致隐私泄露,如下图所示
自定义匿名用户的权限策略
推荐的方式是自己定义一个只包含访问存储桶单文件的权限策略(不包含ListObject权限即可),使用mc anonymous set-json
语法将新的权限策略给设置存储桶的匿名用户
# 权限内容
cat > download_a_bucket.json <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject"],
"Resource": [
"arn:aws:s3:::a-bucket/*"
]
}
]
}
# 设置匿名用户权限
mc anonymous set-json download_a_bucket.json local/a-bucket
EOF
这种方式能够保证下载文件正常的同时,访问/a-bucket,将提示无权限,而不会列出存储桶内上传的文件,
创建用户
创建一个用户(以a_user为例)
mc admin user add local 'a_user' 'your_password'
创建存储桶读写策略
Minio的权限策略通过json文件编写,以生成rw_a_bucket.json的文件内容为例,然后将其添加到示例上
# 策略内容
cat > rw_a_bucket.json <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::a-bucket",
"arn:aws:s3:::a-bucket/*"
]
}
]
}
EOF
# 设置策略
mc admin policy create local rw-a-bucket rw_a_bucket.json
将策略与用户关联
将刚刚创建的rw-a-bucket策略与用户a_user关联
mc admin policy attach local rw-a-bucket --user a_user