Настройте Cognito для правильной отправки электронных писем через третьих лиц, например SendGrid.

Я попытался вызвать функцию настраиваемого сообщения для отправки электронных писем через SendGrid, хорошо, что это сработало, но у меня нет способа остановить AWS от отправки через их электронные письма. Я попытался установить messageAction на ПОДДЕРЖАНИЕ, но возникла другая проблема. Такой поддержки саморегистрации нет, поскольку messageAction предназначен только для функции adminCreateUser. Я что-то пропустил или делаю это неправильно?


person Kim Toston    schedule 25.11.2019    source источник


Ответы (4)


Пользовательские лямбда-триггеры отправителя - это способ использовать сторонних поставщиков услуг уведомлений.

Документы Cognito на данный момент отсутствуют (шаги отсутствуют, лямбда-код необходимо исправить после копирования из примера, нет инструкций по развертыванию с помощью CloudFormation, ...).

Общий обзор шагов:

  1. Создайте симметричный ключ KMS.
  2. Создайте лямбда-функцию. Предоставьте Lambda разрешение kms:Decrypt ключу. Передайте ключ ARN в качестве переменной среды.
  3. Создайте пул пользователей и клиента пула пользователей. Для пула настройте LambdaConfig предоставление Lambda и KMS Key ARN.
  4. В коде расшифруйте код уведомления, используя ключ, переданный в переменных env.
  5. Отправьте код уведомления с помощью стороннего API (например, Twilio Sendgrid).

Инструменты (по состоянию на март 2021 г.):

  • Cognito Console не поддерживает новые триггеры
  • AWS CLI поддерживает новые триггеры
  • В документации CloudFormation говорится, что триггеры не поддерживаются, но на самом деле это работает.
  • Terraform пока не поддерживает установку новых триггеров (есть обходной путь)

Я писал в блоге о процессе настройки настраиваемого лямбда-триггера электронной почты с помощью CloudFormation и Terraform: Отправляйте электронные письма AWS Cognito с помощью сторонних ESP.

person Max Ivanov    schedule 10.03.2021
comment
спасибо, что написали это, похоже, что AWS хочет, чтобы мы в наши дни собрали документы для когнитивных исследований. - person Ravenscar; 10.03.2021

Похоже, что сейчас Cognito начинает это поддерживать.

Cognito предоставляет два лямбда-триггера CustomEmailSender и CustomSMSSender для включения сторонних уведомлений по электронной почте и SMS. 1


1 Источник из документов AWS Cognito

person Kamahl    schedule 07.01.2021
comment
@ 10Repsaysgetvaccinated Это ответ. Говорят, что сейчас поддерживается. Ссылка просто ссылка. - person Scratte; 07.01.2021
comment
@Scratte Мне все еще не понравился ответ .... все ли в порядке с моим редактированием? - person 10 Rep; 07.01.2021
comment
@ 10Repsaysgetvaccinated Хорошая правка :) - person Scratte; 07.01.2021

Cognito в настоящее время не поддерживает отправку электронных писем с использованием сторонних сервисов. Вы не можете запретить отправку электронной почты для различных сценариев, таких как регистрация пользователя или забытый пароль, чистым способом.

person stackOp    schedule 15.06.2020

Cognito недавно начал поддержку, позволяющую пользователям отправлять электронные письма через третьих лиц. Вам нужно будет сделать это с помощью лямбды, поэтому вот шаги:

  1. Создайте лямбду, которая будет звонить вашему провайдеру электронной почты, чтобы отправить электронное письмо / передать данные.

  2. Предоставьте разрешения kinesis созданной вами роли лямбда-функции

  3. Создайте симметричный ключ KMS

  4. Добавить роль лямбда-функции в список ключей пользователей

  5. Добавьте KEY_ID и KEY_ALIAS в лямбда, предпочтительно в качестве переменной env

  6. Разрешить лямбда-функции вызывать когнитивное мышление с помощью cli

    aws lambda add-permission --function-name YOURLAMBDAARN --statement-id CognitoLambdaInvokeAccess --action lambda: InvokeFunction --principal cognito-idp.amazonaws.com

  7. Настройте когнито Это сбросит настройки когнито, поэтому сначала посмотрите, что было включено

    aws cognito-idp update-user-pool --user-pool-id yourpoolid --lambda-config PreSignUp = oranyofyourtriggers, CustomEmailSender = {LambdaVersion = V1_0, LambdaArn = yourlambdaarn}, KMSKeyID = yourkeyarn

приведенная выше команда сбросила бы когнито, поэтому все триггеры, если они использовались ранее, должны быть установлены сейчас в MFA и проверках, в каких атрибутах для проверки выбрать адрес электронной почты (и настройки sms и дать роль, если это использовалось ранее) и сохраните эти изменения

person Nishith    schedule 14.04.2021