【问题标题】:Restrict one of public api endpoinds for aws ec2 and lambda限制 aws ec2 和 lambda 的公共 api 端点之一
【发布时间】:2021-06-28 04:37:56
【问题描述】:

我的基础架构在 AWS 上。有 ec2 作为后端服务器,一个 lambda 向这个名为“.../utility”的端点上的 ec2 后端代码发送请求。这个“.../utility”端点对互联网开放。

那么,如何在 Internet 上隐藏“.../utility”端点以防止公共访问,而其他后端端点却保持原样?这样 lambda 就可以私下向 AWS 内部的“.../utility”发送请求?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-lambda backend amazon-vpc


    【解决方案1】:

    您使用什么后端在 EC2 实例上托管 REST API?

    例如,如果使用 Go,您可以创建一个仅允许来自特定 IP 的请求的函数。

    package main
    
    import (
       "github.com/valyala/fasthttp"
       "github.com/Ferluci/fast-realip"
    )
    
    func realipHandler(ctx *fasthttp.RequestCtx) {
        clientIP := realip.FromRequest(ctx)
        
        if clientIP == IP_YOU_WANT_ONLY {
           // return stuff
        }
        else {
           // 403 Unauthorized
        }
    }
    

    这个概念可以应用于任何语言或API。

    您还可以发送包含特定令牌的标头供您的 API 读取。如果请求中不包含带有您的特定令牌的标头。返回 403 Unauthorized

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 2021-05-26
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      相关资源
      最近更新 更多