monio 的一些安全实践

这个本来属于s3 的特性,但是我们在实际使用的过程中肯定不想别人直接可以通过浏览器或者http就可以可以我们的文件内容
这个属于安全的控制,以下是一个实践以及一些安全控制

一些原则

  • 不能直接暴露minio 访问到公网环境(可以基于nginx,以及反向代理工具解决)
  • 配置合理的bucket 策略,可以直接使用默认的,但是对于互联网访问最好合理配置policy,对于静态站点使用按需 read only
  • 推荐基于nginx 做lb 以及cache
  • 禁用管理界面
 
MINIO_BROWSER=off
  • 可以基于nginx 的rewrite 以及if 控制public 列表文件的展示(xml 文件内容列表)openresty 的access_by_lua_block 更好点(基于正则,比较推荐)
    openresty access_by_lua_block 的配置
 
location ~* ^/demo {
       proxy_set_header Host $http_host;
       proxy_set_header X-Forwarded-For $remote_addr;
       client_body_buffer_size 10M;
       client_max_body_size 10G;
       proxy_buffers 1024 4k;
       default_type text/html;
       access_by_lua_block {
           -- 对于demo 的minio bucket 禁用列表列出
            local m, err = ngx.re.match(ngx.var.uri,[[^(\/demo)(\d+)(\/?)$]])
            if m then
                 ngx.exit(ngx.HTTP_FORBIDDEN)
            end
       }
       index index.html index.htm index;
       proxy_read_timeout 300;
       proxy_next_upstream error timeout http_404;
       proxy_pass http://minio:9000;
}

说明

以上是一些自己的实践,欢迎讨论

参考资料

https://docs.min.io/cn/minio-server-configuration-guide.html
https://github.com/openresty/lua-nginx-module#access_by_lua_block

posted on   荣锋亮  阅读(2599)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-07-18 scylladb docker-compose 用户密码认证配置
2019-07-18 jaeger 使用scylladb作为后端存储
2018-07-18 hydra nodejs 微服务框架简单试用
2018-07-18 Rotor envoy control plane 简单试用
2018-07-18 hasura graphql 引擎基本试用
2014-07-18 时间戳转换

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示