MinIO为了放开访问权限,设置了*,但如果直接访问桶的路径时,竟然把桶里的所有文件链接都列出来了,对系统隐私效果十分不友好。
本文以新版和旧版进行总结,如何配置MinIO的policy来禁止展示桶文件列表。
话外
自从 MinIO 开源协议从 Apache2.0 变更为 AGPLv3 ,新协议具有严重的约束,对商业不友好,按照AGPLv3规定,只要系统部署后接入MinIO服务,具有文件存储或读取行为,不论是否改造源码,不论发布在何处,都需要将整个产品源码开源。
若需要使用minio开源版则请下载部署Apache2.0的最后一个版本:minio-RELEASE.2021-04-22T15-44-28Z
本文以此版本为分界线来配置桶禁止展示文件列表;
新版MinIO配置
新版自带了功能比较全的配置页,设置禁止展示桶文件列表特别简单,直接设置桶的Access Policy为自定义就好。

登录控制台,点击 Buckets ,找到要设置的桶,点击进入,点击Access Policy下的选项,选择为 Custom 。

将 Action 下的 s3:ListBucket 删除即可。

旧版MinIO配置

旧版控制台只有基础的文件管理,设置了 public ,设置的 policy 如下图,就可以直接访问该桶下面所有的文件资源,但访问根目录则会出现所有文件列表。

禁止文件展示文件列表,则需要下载 MinIO 的 mc 客户端。
wget https://dl.minio.org.cn/client/mc/release/linux-amd64/archive/mc.RELEASE.2021-04-22T17-40-00Z
mv mc.RELEASE.2021-04-22T17-40-00Z mc
chmod +x mc赋予文件权限后,配置MinIO登录
// 登录minio
./mc config host add minio http://127.0.0.1:9000 用户名 密码
// 检查是否连接成功
./mc config host list查看当前桶具有什么权限,执行以下命令
./mc policy get-json minio/mpb该命令会返回一个json内容,将该内容复制出来,新建一个 new_policy.json 文件,并将内容复制进去,然后保存文件。
修改 new_policy.json 文件,将 将 Action 下的 s3:ListBucket 删除后 保存。
执行以下命令,修改桶的 policy
./mc policy set-json new_policy.json minio/mpb然后我们再访问桶目录,就不在展示文件列表了。
可惜有些程序不支持minIo
MinIO支持S3协议,跟目前云厂商的对象存储也支持这个。这个算通用的,只要程序支持S3协议,就能用MinIO