Авторизация клиента MTLS для шлюза AWS API
Каждый раз, когда я искал Mutual Auth через SSL для AWS API Gateway, я могу найти только MTLS между AWS API Gateway и Backend Services. Но я пытаюсь защитить свои конечные точки AWS API Gateway с помощью MTLS (аутентификация клиента).
Например, у меня есть служба QueryCustomer с резервной копией, которую я проксировал через AWS API Gateway. Теперь я могу поставить SSL-сертификат на API-шлюз, но это обычный односторонний SSL. Чего я хочу добиться, так это иметь MTLS с аутентификацией клиента, при котором потребитель API из AWS API Gateway должен сначала обменять свои публичные сертификаты, которые мы настраиваем в доверенных хранилищах AWS, а публичные сертификаты AWS также будут храниться на стороне потребителя API.
Теперь во время квитирования, как и в случае с другими шлюзами API и серверами приложений, должно быть свойство, которое говорит что-то вроде этой конечной точки шлюза API AWS "требует аутентификации клиента", так что только если публичный сертификат потребителя API находится в хранилище доверенных сертификатов шлюза API, он должен пройти аутентификацию для доступа конечная точка, в противном случае просто выдайте обычную ошибку рукопожатия SSL.
Кто-нибудь может посоветовать, достижимо ли это на AWS API Gateway?
1 ответ
В настоящее время это недоступно в API Gateway, но у нас были запросы от нескольких клиентов на эту функцию. К сожалению, я не могу комментировать ETA или доступность.
23 сентября 2020 г.
AWS теперь поддерживает взаимный TLS
https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-mutual-tls.html
Также теперь мы можем отключить выполнение-api-endpoint.
aws apigatewayv2 update-api \
--api-id abcdef123 \
--disable-execute-api-endpoint
Чтобы использовать взаимный TLS, создайте хранилище доверенных сертификатов X.509, которым вы доверяете для доступа к своему API. Сертификаты могут быть от публичных или частных центров сертификации. Сертификаты могут иметь максимальную длину цепочки четыре. Вы также можете предоставить самозаверяющие сертификаты. Поддерживаются следующие:
SHA-256 или более мощный RSA-2048 или более мощный ECDSA-256 или более мощный
API Gateway проверяет ряд свойств сертификата. Вы можете использовать авторизаторы Lambda для выполнения дополнительных проверок, когда клиент вызывает API, включая проверку того, был ли сертификат отозван. API Gateway проверяет следующие свойства сертификата:
Проверка Описание Синтаксис X.509
Сертификат должен соответствовать требованиям синтаксиса X.509.
Честность
Содержимое сертификата не должно отличаться от содержимого сертификата, подписанного центром сертификации из хранилища доверенных сертификатов.
Срок действия
Срок действия сертификата должен быть текущим.
Связывание имен / ключей
Имена и тематика сертификатов должны образовывать непрерывную цепочку. Сертификаты могут иметь максимальную длину цепочки четыре.