#amazon-web-services #ssl #aws-lambda #aws-api-gateway #client-certificates
#amazon-веб-сервисы #ssl #aws-lambda #aws-api-gateway #клиент-сертификаты
Вопрос:
В AWS мне нужно получить доступ к лямбда-функции, только если вы отправляете подписанный сертификат клиента, но также получаете доступ к информации о сертификате (в основном общее имя) в лямбда-функции.
Я следил за приведенным ниже сообщением в блоге AWS, которое позволяет вам защитить свой шлюз API с помощью mTLS. Сертификаты самоподписаны созданным мной центром сертификации, и все работает нормально, я могу получить доступ к своей функции lambda, только если я отправлю правильные сертификаты, подписанные центром сертификации
Теперь в клиентском сертификате содержится информация CN, и я хочу, чтобы эта информация была передана в мою лямбда-функцию. К сожалению, я пока не смог найти, как я могу это сделать, ни с помощью лямбда-авторизаторов, ни каким-либо другим способом.
Кто-нибудь знает способ сделать это или имеет пример этого?
Ответ №1:
Одним из вариантов было бы написать свой собственный лямбда-авторизатор. Предполагая, что необходимые данные содержатся в полезной нагрузке lambda authorizer, описанной в сообщении в блоге, на которое вы ссылались, вы можете передавать значения в свой lambda через объект «context», см. (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html). Значения будут указаны в лямбда-событии здесь: event.requestContext.authorizer
.
Комментарии:
1. Может быть, у вас есть какой-нибудь пример того, как выглядит лямбда-авторизатор?
2. Ваш ответ правильный, мне удалось использовать схему действий, чтобы передать лямбде информацию о сертификате, но сначала вы должны прокомментировать в схеме действий policy.denyAllMethods(), чтобы заставить его работать для ваших нужд.