Wie integriere ich Amazon SES in einen Amazon-Cognito-Benutzerpool?

Lesedauer: 5 Minute
0

Ich muss die Schritte kennen, die erforderlich sind, um Amazon Simple Email Service (Amazon SES) in einen Amazon-Cognito-Benutzerpool zu integrieren.

Kurzbeschreibung

Amazon SES und Amazon Cognito können integriert werden, um E-Mail-Nachrichten mit einer benutzerdefinierten E-Mail-Adresse zu senden, die Sie besitzen. Folgen Sie diesen allgemeinen Schritten, um Amazon SES in einen Amazon-Cognito-Benutzerpool zu integrieren:

  • Beachten Sie die Einschränkungen der Amazon-SES-Sandbox.
  • Verschieben Sie ein Konto aus der Amazon-SES-Sandbox.
  • Überprüfen Sie eine Amazon-SES-Identität.
  • Konfigurieren Sie einen Amazon-Cognito-Benutzerpool mit einer von Amazon SES verifizierten Identität.

Lösung

Implementieren Sie die folgenden Schritte, um Amazon SES in einen Amazon-Cognito-Benutzerpool zu integrieren, um E-Mail-Nachrichten in Ihrem Namen zu senden.

Einschränkungen der Amazon-SES-Sandbox

Alle neuen Amazon-SES-Konten werden in der Amazon-SES-Sandbox abgelegt, um Betrug und Missbrauch zu verhindern. Bei der Verwendung einer Amazon-SES-Sandbox sind Einschränkungen zu beachten. Informationen zu den spezifischen Sandbox-Einschränkungen finden Sie unter Verlassen der Amazon-SES-Sandbox. Sie müssen Ihr Amazon-SES-Konto aus der Sandbox entfernen, um den Amazon-SES-Service vollständig nutzen zu können.

Konto aus der Amazon-SES-Sandbox verschieben

Gehen Sie wie folgt vor, um ein Konto aus der Amazon-SES-Sandbox zu verschieben:

1.    Sehen Sie sich die Zuordnungstabelle der AWS-Regionen in der Amazon-SES-E-Mail-Konfiguration an. Die Zuordnungstabelle zeigt die Regionen, in denen Amazon-SES-Identitäten in Amazon-Cognito-Benutzerpools integriert werden können. Sie müssen sicherstellen, dass Sie kompatible Regionen verwenden, bevor Sie das Amazon-SES-Konto aus der Sandbox verschieben.

2.    Fordern Sie den Produktionszugriff für Ihr Amazon-SES-Konto an. Nachdem Ihre Produktionszugriffsanfrage genehmigt wurde, können Sie E-Mail-Nachrichten an jeden beliebigen Empfänger senden.

Wichtig: Sie müssen zur neuen Amazon-Cognito-Konsolenumgebung wechseln, um Amazon Cognito mit Amazon SES in derselben Region zu integrieren.

Amazon-SES-Identität überprüfen

Gehen Sie wie folgt vor, um eine Amazon-SES-Domänenidentität zu überprüfen:

1.    Erstellen Sie eine Domänenidentität.

2.    Verifizieren Sie eine oder mehrere Domänen in Amazon SES.

Gehen Sie wie folgt vor, um eine Amazon SES-E-Mail-Identität zu überprüfen:

1.    Erstellen Sie eine E-Mail-Identität.

2.    Bestätigen Sie eine oder mehrere E-Mail-Adressen in Amazon SES.

Hinweis: Kontoübergreifende Integrationen für Amazon Cognito und Amazon SES werden nicht unterstützt. Sie können einen Amazon-Cognito-Benutzerpool nicht in einem Konto konfigurieren und ihn mit einer Amazon-SES-E-Mail-Adresse in einem anderen Konto integrieren.

Amazon-Cognito-Benutzerpool mit einer von Amazon SES verifizierten Identität konfigurieren

Um den Amazon-Cognito-Benutzerpool in die verifizierte Amazon-SES-Identitätskonfiguration zu integrieren, folgen Sie den für Ihren Anwendungsfall relevanten Schritten.

Wenn die Amazon-SES-Domänenidentität verifiziert ist

1.    Melden Sie sich bei der neuen Amazon-Cognito-Konsole an und wählen Sie dann Benutzerpools.

2.    Wählen Sie den entsprechenden Benutzerpool aus der Liste aus.

3.    Wählen Sie die Registerkarte Messaging, E-Mail-Konfiguration und dann Bearbeiten.

4.    Wählen Sie unter ABSENDER-E-Mail-Adresse die verifizierte Amazon-SES-Domänenidentität aus. (Zum Beispiel example.com.)

5.    Geben Sie unter ABSENDERNAME Ihre E-Mail-Adresse ein. (Zum Beispiel admin@example.com.)

Da die Domäne bereits verifiziert ist, können Sie eine benutzerdefinierte E-Mail-Adresse für die Domänenidentität hinzufügen. Die UpdateUserPool-API konfiguriert den Amazon-Cognito-Benutzerpool mit einer Amazon-SES-Identität.

Beispiel für den Befehl update-user-pool:

$ aws cognito-idp update-user-pool --user-pool-id example_pool_id --email-configuration SourceArn=arn:aws:ses:example_region:example_account_number:identity/example_domain,EmailSendingAccount=DEVELOPER,From=user@example.com --region example_region

Wichtig: Da die **UpdateUserPool-**API die bestehende Konfiguration des Benutzerpools zurücksetzt, rufen Sie zuerst die DescribeUserPool-API auf. Senden Sie dann alle vorhandenen Benutzerpoolparameter an die **UpdateUserPool-**API.

Beschreibungen für den Befehl update-identity-pool:

  • example_pool_id entspricht der Amazon-Cognito-Benutzerpool-ID. Beispiel: ap-southeast-1_xxxxxxxx.
  • arn:aws:ses:example_region:example_account_number:identity/example_domain ist der ARN Ihrer Amazon-SES-Domänenidentität.
  • user@example.com muss durch Ihre E-Mail-Identität ersetzt werden.
  • example_region steht für die Region, in der Ihr Amazon-Cognito-Benutzerpool existiert. Beispiel: ap-southeast-1.

Wenn die Amazon-SES-E-Mail-Identität verifiziert ist

1.    Melden Sie sich bei der neuen Amazon-Cognito-Konsole an und wählen Sie dann Benutzerpools.

2.    Wählen Sie den entsprechenden Benutzerpool aus der Liste aus.

3.    Wählen Sie die Registerkarte Messaging, E-Mail-Konfiguration und dann Bearbeiten.

4.    Wählen Sie unterABSENDER-E-Mail-Adresse die Amazon-SES-E-Mail-Domänen-Identität aus. (Zum Beispiel admin@example.com.)

Fehlerbehebung

Dieser Abschnitt enthält Informationen zur Behebung von Fehlern, auf die Benutzer beim Senden von E-Mail-Nachrichten nach der Integration von Amazon Cognito und Amazon SES stoßen.

Fehler bei nicht verifizierter E-Mail-Adresse

„Die E-Mail-Adresse wurde nicht verifiziert. Die folgenden Identitäten haben den Check-in in der Region AP-SOUTHEAST-1 nicht bestanden: user@example.com.“

Amazon Cognito erhält den Fehler „Nicht verifizierte E-Mail-Adresse“, wenn versucht wird, eine E-Mail-Nachricht zu senden. Sie können diesen Fehler erhalten, wenn Sie versuchen, eine E-Mail-Nachricht von einem Konto in einer Amazon-SES-Sandbox an eine nicht verifizierte E-Mail-Adresse zu senden. Um den Fehler zu beheben, entfernen Sie Ihr Amazon-SES-Konto aus der Sandbox oder überprüfen Sie die E-Mail-Adresse des Empfängers in Amazon SES.

Benutzer erhalten keine E-Mail-Nachrichten von Amazon Cognito

Benutzer erhalten keine E-Mail-Nachrichten von einem Amazon-Cognito-Benutzerpool. Um dieses Problem zu beheben, überprüfen Sie, ob Sie die standardmäßige E-Mail-Funktion von Amazon Cognito oder die Amazon-SES-E-Mail-Konfiguration für das Senden von E-Mail-Nachrichten verwenden. Überprüfen Sie Ihre Aktualisierungen über die AWS-Managementkonsole oder indem Sie die DescribeUserPool-API aufrufen.

Beispiel für den Befehl describe-user-pool:

aws cognito-idp describe-user-pool --user-pool-id example_pool_id --region example_region --query 'UserPool.EmailConfiguration'

Ausgabe:

{
  "SourceArn": "arn:aws:ses:us-east-1:123456789012:identity/admin@example.com",
  "EmailSendingAccount": "DEVELOPER",
  "From": "admin@example.com"
}

-oder-

{
  "SourceArn": "arn:aws:ses:us-east-1:123456789012:identity/admin@example.com",
  "EmailSendingAccount": "COGNITO_DEFAULT"
}

Wenn die **EmailSendingAccount-**Konfiguration auf ENTWICKLER gesetzt ist, verwendet Ihr Amazon-Cognito-Benutzerpool Amazon SES zum Senden von E-Mail-Nachrichten. Stellen Sie sicher, dass sich Ihr Amazon-SES-Konto in der Sandbox befindet. Falls ja, entfernen Sie Amazon SES aus der Sandbox für das Senden von E-Mail-Nachrichten an nicht verifizierte Identitäten. Wenn sich das Amazon-SES-Konto im Produktionsmodus befindet oder nicht im Sandbox-Modus ist, überprüfen Sie die Amazon-SES-Protokolle für die E-Mail-Zustellung.

Wenn Sie die **COGNITO_DEFAULT-**Nachricht in Ihrer Ausgabe erhalten, verwendet Ihr Amazon-Cognito-Benutzerpool die Standardfunktionen zum Senden von E-Mail-Nachrichten. Mit dieser Standardfunktion hat Amazon Cognito eine Kontingentbegrenzung für die Anzahl der von jedem Benutzerpool gesendeten E-Mail-Nachrichten.

Die LimitExceededException-Ausnahme wird ausgelöst

„Das tägliche E-Mail-Limit für den Vorgang oder das Konto wurde überschritten. Die Anzahl der zulässigen Operationen wurde überschritten. Wenn ein höheres Limit erforderlich ist, konfigurieren Sie Ihren Benutzerpool so, dass Sie Ihre eigene Amazon-SES-Konfiguration für den Versand von E-Mail-Nachrichten verwenden.“

Benutzer erhalten den Fehler beim täglichen E-Mail-Limit, wenn Amazon Cognito die Standard-E-Mail-Funktionalität mit einem täglichen Kontingentlimit für den Versand von E-Mail-Nachrichten verwendet. Stellen Sie, wie in der Fehlermeldung vorgeschlagen, ein höheres E-Mail-Nachrichtenzustellungsvolumen ein, indem Sie die Amazon-SES-E-Mail-Konfiguration ändern.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr