Я пытаюсь установить API-интерфейс Amazon API перед балансировщиком нагрузки приложений, который балансирует трафик в моем кластере ECS, где развернуты все мои микросервисы. Мотивация использования шлюза API заключается в использовании пользовательского авторизатора с помощью лямбда-функции.API-интерфейс Amazon API перед кластером ELB и ECS
Схема системы
В амазонских словах (https://aws.amazon.com/api-gateway/faqs/): "запросов через прокси-сервер серверной операцию также должны быть доступны для общественности в Интернете". Это заставляет меня сделать публичный ELB (интернет-ориентированный) вместо внутреннего. Затем мне нужно, чтобы только API-шлюз имел доступ к ELB вне VPC.
Моя первая идея заключалась в использовании сертификата клиента в API Gatway, но ELB, похоже, не поддерживает его.
Любые идеи были бы высоко оценены!
Я не думаю, что есть простое решение. Либо шлюз API не для вас, либо вам нужно сделать немного больше. Решения включают размещение HAProxy перед ALB, который будет проверять сертификат клиента. Или поставьте лямбду перед ALB, но это потребует, чтобы весь ответ буферизировался, возможно, замедляя работу. Или если вы затем можете ввести секретный заголовок в запрос от шлюза API к ALB. Затем этот секрет будет проверен в бэкэндах. Я бы не рекомендовал использовать белый список IP-адресов, поскольку диапазоны IP для шлюза API не являются статическими и могут изменять информацию о перерыве. – doorstuck
Спасибо @doorstuck. Я хотел бы избежать включения новых компонентов, таких как HAProxy. Я предполагаю, что этот сценарий (API Gateway, ELB, ECS Cluster) довольно распространен. Разве AWS не предоставляет для этого решение? –
API Gateway более приспособлен для обслуживания функций Lambda. Когда вы ставите перед контейнерами докеров с размещенными службами, я чувствую, что он добавляет слишком много латентности и сложности. Я использую другой прокси вместо шлюза API, поскольку я все равно использую прокси-часть API-шлюза. Я успешно использовал Skipper by Zalando. Но если вы хотите использовать авторизаторы, кеширование на основе облаков и т. Д., То, возможно, API Gateway по-прежнему подходит. – doorstuck