首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
Coding
V2EX  ›  NGINX

nginx 代理 s3 请求时,如何在 nginx 添加 s3 签名认证,防止未认证用户并发上传文件,导致内存爆掉

  •  
  •   bruceliang · 46 天前 · 1310 次点击
    这是一个创建于 46 天前的主题,其中的信息可能已经有所发展或是发生改变。
    11 回复  |  直到 2019-10-31 15:10:35 +08:00
        1
    janxin   46 天前
    未认证用户指哪些人? S3 没认证的还是什么样的?
        2
    fredcc   46 天前 via Android
    终端用户获取临时权限上传到 s3 有官方例子,问题是 nginx 是怎么多出来的
        3
    bruceliang   46 天前
    其实就是防止用户恶意访问
        4
    bruceliang   46 天前
    我们用的 ceph,nginx 代理 ceph s3
        5
    bruceliang   46 天前
    如果未携带 s3 签名或者未携带签名的用户大量上传文件到 nginx 是不是会导致 nginx 宕机
        6
    eason1874   46 天前
    Nginx 鉴权我都是用 ngx_lua 模块,各种哈希算法都有现成函数可以用,简单好用,性能也好。

    连接: https://github.com/openresty/lua-nginx-module
        7
    Firxiao   46 天前
    不会的。如果是后端服务器做鉴权,这个连接就被拒绝了。不可能上传成功的。防止用户恶意访问可以写个监控脚本检测 ip 连接数,超过多少封掉。或者用 iptable 来限制单个 ip 最大连接数。
        8
    DavidWei   46 天前 via iPhone
    s3 有 presinedurl 上传方式,为啥需要再代理一次?换个思路,你控制签名的下发就好了
        9
    bruceliang   46 天前
    @Firxiao 文件上传,nginx 服务器会先缓存在 nginx 服务器,然后转发到后端服务器的
        10
    bruceliang   46 天前
    如果数据全部缓存到内存,内存可能会撑爆;如果全部放硬盘,硬盘可能会撑爆
        11
    Firxiao   44 天前
    @bruceliang s3 的标准认证第一步是鉴权 只有鉴权通过才可以上传. 你说的这个情况应该是可以直接接受 put 操作的应用. 建议你做下相关测试, 从日志里面分析下. FYI 并深入了解下 s3 的鉴权机制.
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2443 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 09:16 · PVG 17:16 · LAX 01:16 · JFK 04:16
    ♥ Do have faith in what you're doing.