As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Acionadores do Lambda remetente personalizado
Os acionadores do Lambda CustomEmailSender e CustomSMSSender permitem notificações por e-mail e SMS de terceiros em grupos de usuários. Você pode escolher provedores de SMS e e-mail para enviar notificações aos usuários de dentro do código de sua função do Lambda. Quando o Amazon Cognito envia convites, códigos de MFA, códigos de confirmação, códigos de verificação e senhas temporárias aos usuários, os eventos ativam suas funções configuradas do Lambda. O Amazon Cognito envia o código e senhas temporárias (segredos) para suas funções ativadas do Lambda. O Amazon Cognito criptografa esses segredos com uma chave gerenciada pelo AWS KMS cliente e o. AWS Encryption SDK AWS Encryption SDK É uma biblioteca de criptografia do lado do cliente que ajuda você a criptografar e descriptografar dados genéricos.
- CustomEmailSender
-
O Amazon Cognito invoca esse acionador para enviar notificações por e-mail aos usuários.
- PersonalizadoSMSSender
-
O Amazon Cognito invoca esse acionador para enviar notificações SMS aos usuários.
Conceitos de criptografia
O Amazon Cognito não envia códigos de usuários em texto simples nos eventos que envia para acionadores personalizados do remetente. As funções do Lambda devem descriptografar códigos nos eventos. Os conceitos a seguir são a arquitetura de criptografia que sua função deve usar para obter códigos que possam ser entregues aos usuários.
- AWS KMS
-
AWS KMS é um serviço gerenciado para criar e controlar AWS KMS chaves. Essas chaves criptografam seus dados. Para obter mais informações, consulte O que é o AWS Key Management Service?.
- Chave KMS
-
Uma chave do KMS é uma representação lógica de uma chave criptográfica. A chave do KMS inclui metadados, como o ID da chave, a data de criação, a descrição e o estado da chave. A chave do KMS também contém o material de chave usado para criptografar e descriptografar dados. Para obter mais informações, consulte, Chaves do AWS KMS.
- Chaves simétricas do KMS
-
Uma chave simétrica do KMS é uma chave de criptografia de 256 bits que não sai do AWS KMS sem ser criptografada. Para usar uma chave KMS simétrica, você deve ligar. AWS KMS O Amazon Cognito usa chaves simétricas. A mesma chave criptografa e descriptografa. Para obter mais informações, consulte Chaves simétricas do KMS.
O que é importante saber sobre acionadores do Lambda de remetente personalizado
-
Para configurar seus grupos de usuários para usar esses acionadores do Lambda, é possível usar a AWS CLI ou o SDK. Essas configurações não estão disponíveis no console do Amazon Cognito.
A operação
UpdateUserPooldefine a configuração do Lambda. As solicitações para essa operação exige todos os parâmetros do grupo de usuários e os parâmetros que você deseja modificar. Se você não fornecer todos os parâmetros relevantes, o Amazon Cognito assumirá os valores padrão para todos os parâmetros ausentes. Conforme demonstrado no exemplo de AWS CLI a seguir, inclua entradas para todas as funções do Lambda que você deseja adicionar ou manter em seu grupo de usuários. Para obter mais informações, consulte Como atualizar a configuração do grupo de usuários e do cliente da aplicação.#Send this parameter in an 'aws cognito-idp update-user-pool' CLI command, including any existing #user pool configurations. This snippet also includes a pre sign-up trigger for syntax reference. The pre sign-up trigger #doesn't have a role in custom sender triggers. --lambda-config "PreSignUp=lambda-arn, \ CustomSMSSender={LambdaVersion=V1_0,LambdaArn=lambda-arn}, \ CustomEmailSender={LambdaVersion=V1_0,LambdaArn=lambda-arn}, \ KMSKeyID=key-id"Para solicitações que usam o corpo JSON do
UpdateUserPool, o trechoLambdaConfiga seguir atribui funções personalizadas de remetente de SMS e e-mail."LambdaConfig": { "KMSKeyID": "arn:aws:kms:us-east-1:111122223333:key/a6c4f8e2-0c45-47db-925f-87854bc9e357", "CustomEmailSender": { "LambdaArn": "arn:aws:lambda:us-east-1:111122223333:function:MyFunction", "LambdaVersion": "V1_0" }, "CustomSMSSender": { "LambdaArn": "arn:aws:lambda:us-east-1:111122223333:function:MyFunction", "LambdaVersion": "V1_0" } -
Para remover um gatilho Lambda personalizado do remetente com
update-user-poolAWS CLI um comando, omitaCustomSMSSendero parâmetroCustomEmailSender--lambda-configor e inclua todos os outros gatilhos que você deseja usar com seu grupo de usuários.Para remover um acionador do Lambda de remetente personalizado com uma solicitação da API
UpdateUserPool, omita o parâmetroCustomSMSSenderouCustomEmailSenderdo corpo da solicitação que contém o restante da configuração do grupo de usuários. -
O Amazon Cognito faz escapes de caracteres reservados de HTML
<(<) e>(>) na senha temporária do usuário. Esses caracteres podem aparecer em senhas temporárias que o Amazon Cognito envia para à função personalizada de remetente de e-mail, mas não aparecem nos códigos de verificação temporários. Para enviar senhas temporárias, a função do Lambda deve liberar esses caracteres depois de decifrar a senha e antes de enviar a mensagem ao usuário.
Ativar acionadores do Lambda de remetente personalizado
Para usar lógica personalizada para enviar mensagens de SMS ou e-mail ao grupo de usuários, configure acionadores de remetente personalizado. O procedimento a seguir atribui um acionador de SMS personalizado, um acionador de e-mail personalizado ou ambos ao seu grupo de usuários. Depois de adicionar o acionador de remetente de SMS personalizado, o Amazon Cognito sempre envia atributos do usuário, incluindo o número de telefone e o código único para a função do Lambda, em vez do comportamento padrão que envia uma mensagem SMS ou de e-mail.
-
Crie uma chave de criptografia simétrica em AWS Key Management Service (AWS KMS). O Amazon Cognito gera segredos (senhas temporárias, códigos de verificação, senhas de autenticação de uso único e códigos de autorização) e usa essa chave do KMS para criptografá-los com AWS Encryption SDK. Em seguida, você pode usar o AWS Encryption SDK em sua função Lambda para descriptografar os segredos e enviá-los ao usuário em texto simples.
-
A entidade principal do IAM que cria ou atualiza seu grupo de usuários cria uma concessão única com base na chave KMS que o Amazon Cognito usa para criptografar o código. Conceda essas permissões
CreateGrantda entidade principal à sua chave KMS. Para que esse exemplo de política de chaves do KMS seja efetivo, o administrador que atualiza o grupo de usuários deve estar conectado com uma sessão de perfil assumido para o perfil do IAMarn:aws:iam::111222333444:role/my-example-administrator-role.Aplique a política baseada em recursos a seguir, modificada para seu ambiente, à chave do KMS.
-
Crie uma função do Lambda para o acionador de remetente personalizado. O Amazon Cognito usa o SDK de criptografia da AWS para criptografar os segredos, as senhas temporárias e os códigos que autorizam as solicitações de API dos usuários.
-
Atribua um perfil de execução do Lambda que tenha, no mínimo, as permissões
kms:Decryptpara a chave do KMS. -
Componha o código da função do Lambda para enviar as mensagens. O evento de entrada para sua função contém um segredo. Em sua função, decifre o segredo com o AWS Encryption SDK e processe todos os metadados relevantes. Depois, envie o código, sua própria mensagem personalizada e o número de telefone de destino para a API personalizada que entrega a mensagem.
-
Adicione o AWS Encryption SDK à sua função Lambda. Para ter mais informações, consulte Linguagens de programação do AWS Encryption SDK. Para atualizar o pacote do Lambda, conclua as etapas a seguir.
-
Exporte a função do Lambda como um arquivo .zip no Console de gerenciamento da AWS.
-
Abra sua função e adicione AWS Encryption SDK o. Para ter mais informações e links de download, consulte Linguagens de programação do AWS Encryption SDK no Guia do desenvolvedor do AWS Encryption SDK .
-
Compacte a função com as dependências do SDK e faça upload da função para o Lambda. Para obter mais informações, consulte Implantar funções do Lambda como arquivos .zip no Guia do desenvolvedor do AWS Lambda .
-
-
-
Conceda à entidade principal
cognito-idp.amazonaws.com.rproxy.govskope.cado serviço do Amazon Cognito acesso para invocar a função do Lambda.O AWS CLI comando a seguir concede ao Amazon Cognito permissão para invocar sua função Lambda:
aws lambda add-permission --function-namelambda_arn--statement-id "CognitoLambdaInvokeAccess" --action lambda:InvokeFunction --principal cognito-idp.amazonaws.com -
Gere uma solicitação de UpdateUserPoolAPI com um
LambdaConfigparâmetro que adiciona gatilhos Lambda personalizados do remetente. Não é possível adicionar acionadores desse tipo no console do Amazon Cognito. Os acionadores de remetente personalizado exigem parâmetrosLambdaConfigdeKMSKeyIDeCustomSMSSenderouCustomEmailSender(ou ambos).