minio解决在直接访问桶位置时列出所有文件url的问题

808 阅读1分钟

背景

文件存储管理minio为了放开访问权限,设置了*,但如果直接访问桶的路径时,竟然把桶里的所有文件url都列出来了,完犊子,里面放的一些清凉美女图不就被发现了吗

低版本的minio,只有简单的文件管理

image.png

image.png

问题复现

新增了一个test桶,并且桶里设置了public,设置的policy如下图

image.png 直接访问桶的路径时 页面显示如下:

image.png

问题解决

一,在服务器找个目录安装minio的客户端,使用mc执行相关命令,参考minio官网安装mc

curl https://dl.minio.org.cn/client/mc/release/linux-amd64/mc \
  --create-dirs \
  -o $HOME/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

二,进入目录,运行mc 连接minio

$ cd minio-binaries // 安装后会出现minio-binaries目录,可以直接全局使用mc,但是临时的
$ ./mc config host add minio http://127.0.0.1:9000 用户名 密码 // 登录minio
$ ./mc config host list // 检查是否连接成功

三,获取test桶的权限json配置,复制上面的内容,粘贴在一个新json里修改

$ ./mc anonymous get-json minio/test // 获取tong的权限json配置,复制上面的内容
$ touch new_policy.json // 在目录下新建一个new_policy.json
$ vim new_policy.json // 粘贴上面复制的内容,然后删除在action中的 s3:ListBucket, 保存退出

四,用修改后的json重新覆盖之前的配置,

$ ./mc anonymous set-json new_policy.json minio/test // 修改policy json配置

验证

重新打开之前桶的路径,跳转了404,大功告成 image.png

如果是新版管理后台设置和java代码控制 可以参考下面第一个资料

参考资料:
minio public桶禁止在直接访问桶位置时列出所有文件url
如何自定义MinIO桶的权限
minio中文文档