Разверните мой REST API на AWS, если API не должен быть публичным API - PullRequest
0 голосов
/ 20 января 2019

У меня есть приложение, которое построено с использованием Spring MVC, а бэкэнд - REST API, также построенный с использованием Spring MVC Framework.

Запрос из браузера сначала попадает в приложение springMvc, которое затем вызывает мой REST API для данных. У меня нет необходимости публично выставлять свои API. Поэтому я не собираюсь использовать какой-либо API-шлюз.

В целях безопасности я думаю разместить мое приложение REST в частной подсети и разместить приложение springMVC в общедоступной подсети в VPC.

Мой вопрос заключается в том, что если некоторые разработчики захотят напрямую протестировать API, какие условия доступны в AWS для управления этим в среде разработки.

Я использую AWS cognito для аутентификации и собираюсь проверить токен в приложении REST для дополнительной безопасности. На уровне сети я планирую использовать ACL-списки Netwrok, чтобы ограничить использование приложения REST только моим приложением springMVC. В основном одна общедоступная подсеть и одна частная подсеть.

Пожалуйста, помогите, если мое понимание верно в этом отношении и не вызовет ли это какие-либо проблемы с дизайном позже.

Если на каком-то этапе позже я планирую предоставить свои API-интерфейсы, скажем, мобильному приложению, возможно, мне придется сделать некоторые переделки. Стоит ли думать о будущем сейчас и проектировать с учетом того, что на AWS у меня не уйдет много времени.

1 Ответ

0 голосов
/ 20 января 2019

Вы можете использовать API-шлюз для создания частных API , которые доступны только вашему VPC. Вы должны рассмотреть возможность использования этой опции, если это возможно. Есть много вещей, которыми трудно управлять, когда дело касается API, таких как регулирование, кэширование и ведение журналов. Используя API Gateway, большая часть работы с API и инструментария для API уже будет выполнена. Вы также можете подключить пулы пользователей Cognito к шлюзу API .

В этом блоге есть хороший обзор и пример.

...