V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
bruceliang
V2EX  ›  NGINX

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

  •  
  •   bruceliang · Oct 28, 2019 · 3892 views
    This topic created in 2373 days ago, the information mentioned may be changed or developed.
    11 replies    2019-10-31 15:10:35 +08:00
    janxin
        1
    janxin  
       Oct 28, 2019
    未认证用户指哪些人? S3 没认证的还是什么样的?
    fredcc
        2
    fredcc  
       Oct 28, 2019 via Android
    终端用户获取临时权限上传到 s3 有官方例子,问题是 nginx 是怎么多出来的
    bruceliang
        3
    bruceliang  
    OP
       Oct 28, 2019
    其实就是防止用户恶意访问
    bruceliang
        4
    bruceliang  
    OP
       Oct 28, 2019
    我们用的 ceph,nginx 代理 ceph s3
    bruceliang
        5
    bruceliang  
    OP
       Oct 28, 2019
    如果未携带 s3 签名或者未携带签名的用户大量上传文件到 nginx 是不是会导致 nginx 宕机
    eason1874
        6
    eason1874  
       Oct 28, 2019
    Nginx 鉴权我都是用 ngx_lua 模块,各种哈希算法都有现成函数可以用,简单好用,性能也好。

    连接: https://github.com/openresty/lua-nginx-module
    Firxiao
        7
    Firxiao  
       Oct 28, 2019
    不会的。如果是后端服务器做鉴权,这个连接就被拒绝了。不可能上传成功的。防止用户恶意访问可以写个监控脚本检测 ip 连接数,超过多少封掉。或者用 iptable 来限制单个 ip 最大连接数。
    DavidWei
        8
    DavidWei  
       Oct 29, 2019 via iPhone
    s3 有 presinedurl 上传方式,为啥需要再代理一次?换个思路,你控制签名的下发就好了
    bruceliang
        9
    bruceliang  
    OP
       Oct 29, 2019
    @Firxiao 文件上传,nginx 服务器会先缓存在 nginx 服务器,然后转发到后端服务器的
    bruceliang
        10
    bruceliang  
    OP
       Oct 29, 2019
    如果数据全部缓存到内存,内存可能会撑爆;如果全部放硬盘,硬盘可能会撑爆
    Firxiao
        11
    Firxiao  
       Oct 31, 2019
    @bruceliang s3 的标准认证第一步是鉴权 只有鉴权通过才可以上传. 你说的这个情况应该是可以直接接受 put 操作的应用. 建议你做下相关测试, 从日志里面分析下. FYI 并深入了解下 s3 的鉴权机制.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5797 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 03:40 · PVG 11:40 · LAX 20:40 · JFK 23:40
    ♥ Do have faith in what you're doing.