2017-01-02 4 views
1

У меня есть API NodeJS для Amazon EB и API API Gateway. API Gateway настраивается как прокси-сервер для EB.AWS API Gateway - эластичный beanstalk - ограниченный доступ

Я могу назвать свой API без проблем, он работает, но я не знаю, как управлять безопасностью.

На самом деле, если я использую URL-адрес шлюза API, я должен подписать запрос (это нормально!), Но я могу использовать URL-адрес EB, и ничего не нужно.

Перед использованием API-шлюза я использовал JWT, но теперь, что мне делать в приложении Node? API Gateway использует заголовок авторизации для подписывания запроса, поэтому приложение Node должно проверить эту подпись, может быть? Или что-то другое?

ответ

2

Рекомендованный подход к ограничению доступа на задний план только к шлюзу API - это использовать сертификаты на стороне клиента. См. documentation here.

. .

Обратите внимание, что при использовании клиентских сертификатов с ELB вы должны настроить ELB в режиме tcp и прекратить соединение SSL на сервере приложений, поскольку ELB не поддерживает проверку сертификата клиента.

Альтернативный подход заключается в том, чтобы настроить ваш шлюз API для добавления заголовка с секретным значением и затем проверить значение на сервере приложений перед обработкой запроса. Это, как правило, считается менее безопасным, поскольку его легче для злоумышленника получить ваше секретное значение. Как минимум, вы захотите использовать SSL между вашим шлюзом API и сервером приложений, чтобы секрет не был отправлен простым текстом.

+0

Надеемся, что ресурсы VPC станут доступными для прокси-сервера через шлюз API в какой-то момент - как и для функций Lambda. Это позволит очистить некоторые из этих вариантов использования эластичных бобовых стеблей, когда приложение EB вынуждено быть публичным. Я думаю, что во многих случаях использование приложения ElasticBeanstalk, распространяемого по частным подсетям, было бы достаточным, если бы оно было доступно прокси из Gateway API (не уверен, что это относится к OP). –

Смежные вопросы