Я думаю, что правильный способ сделать это зависит от того, хотите ли вы использовать API-шлюз или нет (ИМХО это будет упрощать).
Если вы не хотитеиспользуйте APIG, и вы вызываете лямбду напрямую, используя временные учетные данные, затем вы должны передать весь токен ID и заставить лямбду выполнять всю проверку и декодирование (возможно, с использованием сторонней библиотеки для JWT).Делать это во внешнем интерфейсе небезопасно, так как это означает, что у вас есть лямбда, которая слепо принимает атрибуты как факты из внешнего интерфейса, и злоумышленник может изменить их, если захочет.
Если вы используете APIШлюз для размещения лямбд за API, тогда я бы создал авторизатор cognito на основе пула пользователей, создал ресурс / метод и настроил его для использования авторизатора, и включил Use Lambda Proxy Integration
для Integration Request
.Все утверждения токена, включенные для клиента, будут проходить через event.requestContext.authorizer.claims
, пока он действителен.
Здесь есть несколько документов AWS , хотя это не использует интеграцию прокси.Если вы используете интеграцию прокси, то можете пропустить 6b, так как APIG установит значения для вас.Это описано в ответе здесь .