Доступ к частному API из домена, размещенного в AWS

Я пытаюсь сделать частный лямбда-вызов AWS через API-шлюз и не могу найти правильный ответ в Интернете, возможно, потому что я новичок в управлении веб-сайтами AWS.

Ближайшим источником, который я нашел, была эта документация Amazon: 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-адрес также размещен на маршруте 53.

Любое руководство будет оценено!

1 ответ

Решение

Если я правильно понимаю вашу проблему, вы хотите вызвать частный API-шлюз в вашем VPC от Lambda, правильно?

Для этого вам нужно будет выполнить лямбду в VPC, иначе у нее не будет доступа к частным ресурсам VPC.

Проверьте это: настройка лямбда-функции для доступа к ресурсам в Amazon VPC. В первую очередь вам нужно будет указать ему идентификатор VPC и список подсетей, в которых он должен выполняться.


Как поясняется в комментариях, на самом деле вам нужно ограничить доступ к вашему API-шлюзу и разрешить доступ только из вашего VPC. Для этого создайте / обновите свою группу безопасности API Gateway, чтобы разрешить доступ только из вашего диапазона адресов VPC (или из любого места, к которому вы хотите ограничить доступ).

Надеюсь, это поможет:)

Другие вопросы по тегам