Я создал шлюз API для запуска лямбда-функции.Это предназначено для использования в качестве внутренней службы, поэтому мой шлюз API является частным.Чтобы сделать шлюз API доступным в частном порядке, я сделал следующее:
- Создал конечную точку VPC в паре подсетей нашего VPC
- Добавил конечную точку в группу безопасности, которая толькоразрешает трафик с локального сервера
- В шлюз API добавлена политика ресурсов, которая разрешает запросы только от конечной точки VPC
. Эти шаги эффективно блокируют публичные запросы и разрешают запросы с локального сервера.через DNS-имена, созданные конечной точкой VPC.
Проблема этого подхода заключается в том, что для вызова API необходимо указать либо Host
, либо x-apigw-api-id
в запросе.Цель состоит в том, чтобы пользователи могли заходить в свои браузеры, вводить параметры URL-адреса и строки запроса и получать ответ от службы.
Типы Amazon API Gateway, варианты использования и производительность говорит о подходе, позволяющем избежать указания идентификатора API или хоста, но он не дает подробностей.В соответствующей части говорится, что решение будет следующим:
Поместите балансировщик нагрузки приложения с SSL-сертификатом (например, api.mydomain.com) перед IP-адресами ваших сетевых интерфейсов PrivateLink.Также разверните пользовательское доменное имя для api.mydomain.com и сопоставление базового пути для вашего шлюза API.Затем добавьте запись Route 53, которая указывает api.mydomain.com как псевдоним вашего ALB.Это решение довольно сложное, но мы проверили его, и оно работает.Описание полного решения выходит за рамки этого поста, но мы могли бы позже написать об этом отдельный пост в блоге.
Кто-нибудь знает, как это сделать или другой подход?