限制 aws ec2 和 lambda 的 public api 端点之一

Restrict one of public api endpoinds for aws ec2 and lambda

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

那么我如何才能隐藏“.../utility”端点以防止 public 访问互联网,而其他后端端点保持原样 public?这样 lambda 就可以私下向 AWS 内部的“.../utility”发送请求?

您使用什么后端在 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中。

您还可以发送一个 header,其中包含供您 API 阅读的特定令牌。如果请求不包含带有您的特定令牌的 Header。 Return 403 未授权