API Gateway: Authentication / Authorization, HTTP REST, WebSockets Flashcards
Чтобы настроить авторизацию-аутентификацию, API Gateway имеет 3 способа …
-
IAM
(roles, resource policies) Cognito User Pool
-
Lambda Authorizer
(ранее “Custom Authorizer”)
Если выбран IAM Auth, то доступ можно дать … через … или
IAM Credentials отправляются в …
Action для отправки запроса в API Gateway - это …
EC2, Lambda или Users
IAM Role или Resource Based Policy
HTTP заголовке и подписываются Sig v4 подписью
Action: execute-api:Invoke
Если выбран IAM Auth через Resource Based Policy, то доступ может быть …, при этом если …, то нужно …, а если …, то нужно …
Cross Account
Principle и API Gateway могут находиться в ОДНОМ или в РАЗНЫХ аккаунтах AWS.
Eсли вызов API Gateway функции происходит
- Cross Account, то нужны ОБА
(Resource Based Policy
AND Identity Based Policy
)
- Same Account, то нужна хотя бы ОДНА
(Resource Based Policy
OR Identity Based Policy
)
Причины выбрать IAM Authentication.
Плюсы минусы особенности, цена, кастомный код.
- Если настроены Users, Roles
- Если нужна Cross Account (через Resource Policy)
- Использует
Sig v4
Причины выбрать Cognito User Pool
Плюсы минусы особенности, цена, кастомный код.
- Если у нас свой пул юзеров (вход через Facebook)
- Никакого кастомного кода
- Авторизацию нужно реализовать на бэкенде
Причины выбрать Lambda Custom Authorizer
Плюсы минусы особенности, цена, кастомный код.
- Если у нас 3-rd party
JWT
токен - Самый гибкий способ
- Платим каждый раз за вызов Lambda (спасает кэширование)
- Авторизацию нужно реализовать в Лямбде
API Gateway поддерживает 3 типа endpoint’ов …
HTTP REST WebSocket
Чем HTTP endpoint отличается от REST endpoint’а?
HTTP
- Только для Proxy
- Нельзя сделать Data Mapping
- Поддерживает OIDC
и OAuth 2.0
- НЕ поддерживает Usage Plans
и API Keys
- НЕ поддерживает Resource Based Policy
Дешёвая альтернатива API Gateway
Простая, но плохая.
Суть WebSocket протокола в том, что …
Он подходит для … приложений, например …
Сервер может push’ить информацию пользователю
Подходит для Stateful приложений
чаты, мессенджеры
Ключевые слова для WebSocket’ов
two-way communication
-
connect
,send messages
,disconnect
-
connection URL callback
для обратной связи -
routing table
с адресами back-end’ов
Какие фичи API GTW можно использовать в микросервисном приложении?
- определения HTTP endpoint’ов к AWS ресурсам
- проверки Authentication / Authorization пользователей
- проверки SSL сертификатов (через сервис
AWS Certificatie Manager
) - перенаправление запросов
- трансформации данных запроса
- Swagger документации
- поддержки environments и Canary Deployment
- кэширования запросов
- Usage Plans платной клиентской подписки