从 AWS 中托管的域访问私有 API

从 AWS 中托管的域访问私有 API

我正在尝试通过 API 网关进行私有 AWS lambda 调用,但在互联网上找不到正确的答案,可能是因为我是 AWS 网站管理的初学者。

我发现的最接近的来源是这个亚马逊文档:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-api-test-invoke-url.html

我正在使用无服务器框架,下面是函数设置的示例

provider:
  name: aws
  runtime: nodejs8.10
  memorySize: 128
  environment:
    MONGODB_URL: ....
    MONGODB_USER: ....
    MONGODB_PWD:....
  vpc:
    securityGroupIds:
      - ....
    subnetIds:
      - ....
      - ....

functions:
  addGameTemplate:
    handler: game.create
    events:
      - http:
          method: put
          path: games
          cors: true
          private: true

该 URL 也托管在 route53 上。

任何指导都将不胜感激!

答案1

如果我理解你的问题正确的话,你想从 Lambda 调用你 VPC 中的私有 API 网关,对吗?

为此,你需要在 VPC 中执行 lambda,否则它将无法访问私有 VPC 资源。

看一下这个:配置 Lambda 函数以访问 Amazon VPC 中的资源。最值得注意的是,您必须为其提供 VPC ID 和它应该执行的子网列表。


正如评论中所澄清的那样,你真正寻找的是限制对 API 网关的访问并且仅允许从您的 VPC 进行访问。为此,请创建/更新您的 API 网关安全组仅允许从您的 VPC 地址范围(或您想要限制访问的任何位置)进行访问。

希望有帮助:)

相关内容