Авторизация клиента MTLS AWS API Gateway

Каждый раз, когда я искал Mutual Auth over 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 и серверами приложений, должно быть свойство, которое говорит что-то вроде этой конечной точки AWS API Gateway «требует аутентификации клиента», чтобы только если общедоступный сертификат потребителя API находится в шлюзе API доверенный магазин должен быть аутентифицирован для доступа к конечной точке, в противном случае просто выдаст обычную ошибку подтверждения SSL.

Может кто-нибудь посоветовать, возможно ли это на AWS API Gateway?


person Shoaib Khan    schedule 02.08.2017    source источник


Ответы (2)


В настоящее время это недоступно в API Gateway, но у нас есть запросы на эту функцию от нескольких клиентов. К сожалению, я не могу комментировать ETA или доступность.

person jackko    schedule 05.12.2017
comment
Меня это тоже интересует. Это доступно сейчас? - person hyperlink; 11.06.2019
comment
23 сентября 2020 г. - AWS теперь поддерживает документы взаимного TLS .aws.amazon.com / apigateway / latest / developerguide / - person Mahesh_Loya; 23.09.2020

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.

Честность

Содержимое сертификата не должно отличаться от содержимого сертификата, подписанного центром сертификации из хранилища доверенных сертификатов.

Срок действия

Срок действия сертификата должен быть текущим.

Связывание имен / ключей

Имена и тематика сертификатов должны образовывать непрерывную цепочку. Сертификаты могут иметь максимальную длину цепочки, равную четырем.

person Mahesh_Loya    schedule 23.09.2020
comment
Я все еще не понимаю ... Если у меня есть серверная часть Tomcat за шлюзом API, как мне перенаправить сертификаты клиентов на него? Например. с nginx я могу настроить его так: proxy_set_header Client-Cert $ssl_client_escaped_cert; - person Martynas Jusevičius; 11.05.2021