Registrieren Sie mehrere AWS Konten mit einer einzigen E-Mail-Adresse mithilfe von Amazon SES - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Registrieren Sie mehrere AWS Konten mit einer einzigen E-Mail-Adresse mithilfe von Amazon SES

Erstellt von Joe Wozniak () und Shubhangi Vishwakarma () AWS AWS

Code-Repository: GitHub aws-account-factory-email

Umgebung: PoC oder Pilotprojekt

Technologien: Infrastruktur; Verwaltung und Verwaltung; Nachrichtenübermittlung und Kommunikation

AWSDienste: AWS Lambda; AmazonSES; Amazon DynamoDB

Übersicht

Dieses Muster beschreibt, wie Sie echte E-Mail-Adressen von der E-Mail-Adresse trennen können, die einem Konto zugeordnet ist. AWS AWSKonten erfordern, dass bei der Kontoerstellung eine eindeutige E-Mail-Adresse angegeben wird. In einigen Organisationen muss das Team, das die AWS Konten verwaltet, die Last der Verwaltung vieler eindeutiger E-Mail-Adressen mit seinem Messaging-Team übernehmen. Dies kann für große Organisationen, die viele AWS Konten verwalten, schwierig sein.

Dieses Muster bietet eine einzigartige Lösung für den Verkauf von E-Mail-Adressen, mit der AWS Kontoinhaber eine E-Mail-Adresse mehreren AWS Konten zuordnen können. Die echten E-Mail-Adressen der AWS Kontoinhaber werden dann diesen generierten E-Mail-Adressen in einer Tabelle zugeordnet. Die Lösung verarbeitet alle eingehenden E-Mails für die einzelnen E-Mail-Konten, sucht nach dem Besitzer jedes Kontos und leitet dann alle empfangenen Nachrichten an den Eigentümer weiter.  

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Administratorzugriff auf ein AWS Konto.

  • Zugriff auf eine Entwicklungsumgebung. Wir empfehlen Ihnen, AWS Cloud9 zu verwenden, um zu vermeiden, dass Sie die benötigten Tools und Zugriffsschlüssel selbst einrichten müssen.

  • (Optional) Wenn Sie mit den Workflows des AWS Cloud Development Kit (AWSCDK) und der Programmiersprache Python vertraut sind, können Sie Probleme beheben oder Änderungen vornehmen.

Einschränkungen

  • Die Gesamtlänge der versendeten E-Mail-Adresse beträgt 64 Zeichen. Einzelheiten finden Sie CreateAccountin der AWSAPIOrganisationsreferenz.

Produktversionen

  • Node.js Version 12.7.0 oder höher

  • Python 3.9 oder höher

  • Python-Pakete pip und virtualenv

  • AWSCDKVersion 2.23.0 oder höher

  • Docker 20.10.x oder höher

Architektur

Zieltechnologie-Stack

  • AWS CloudFormation stapeln

  • AWSLambda-Funktionen

  • Regel und Regelsatz für Amazon Simple Email Address (AmazonSES)

  • AWSRollen und Richtlinien für Identity and Access Management (IAM)

  • Bucket- und Bucket-Richtlinie für Amazon Simple Storage Service (Amazon S3)

  • AWSSchlüssel und Schlüsselrichtlinie für den Key Management Service (AWSKMS)

  • Thema und Themenrichtlinie für Amazon Simple Notification Service (AmazonSNS)

  • Amazon-DynamoDB-Tabelle.

Zielarchitektur

Zielarchitektur für die Registrierung mehrerer AWS Konten mit einer einzigen E-Mail-Adresse

Dieses Diagramm zeigt zwei Abläufe:

  • Ablauf des Verkaufs von E-Mail-Adressen: Im Diagramm beginnt der Ablauf des Verkaufs von E-Mail-Adressen (unterer Abschnitt) in der Regel mit einer Kontoverkaufslösung oder einer externen Automatisierung oder wird manuell aufgerufen. In der Anfrage wird eine Lambda-Funktion mit einer Nutzlast aufgerufen, die die benötigten Metadaten enthält. Die Funktion verwendet diese Informationen, um einen eindeutigen Kontonamen und eine E-Mail-Adresse zu generieren, sie in einer DynamoDB-Datenbank zu speichern und die Werte an den Aufrufer zurückzugeben. Diese Werte können dann verwendet werden, um ein neues AWS Konto zu erstellen (normalerweise mithilfe von AWS Organizations).

  • Ablauf der E-Mail-Weiterleitung: Dieser Ablauf ist im oberen Abschnitt des vorherigen Diagramms dargestellt. Wenn ein AWS Konto mithilfe der Konto-E-Mail erstellt wird, die beim Verkauf von E-Mail-Adressen generiert wurde, AWS werden verschiedene E-Mails, wie z. B. die Bestätigung der Kontoregistrierung und regelmäßige Benachrichtigungen, an diese E-Mail-Adresse gesendet. Indem Sie die Schritte in diesem Muster befolgen, konfigurieren Sie Ihr AWS Konto bei Amazon für SES den Empfang von E-Mails für die gesamte Domain. Diese Lösung konfiguriert Weiterleitungsregeln, die es Lambda ermöglichen, alle eingehenden E-Mails zu verarbeiten, zu überprüfen, ob sich die TO Adresse in der DynamoDB-Tabelle befindet, und die Nachricht stattdessen an die E-Mail-Adresse des Kontoinhabers weiterzuleiten. Mithilfe dieses Verfahrens haben Kontoinhaber die Möglichkeit, mehrere Konten mit einer E-Mail-Adresse zu verknüpfen.

Automatisierung und Skalierung

Dieses Muster verwendet die AWSCDK, um die Bereitstellung vollständig zu automatisieren. Die Lösung verwendet AWS verwaltete Dienste, die automatisch skaliert werden (oder so konfiguriert werden können), dass sie Ihren Anforderungen entsprechen. Die Lambda-Funktionen erfordern möglicherweise eine zusätzliche Konfiguration, um Ihre Skalierungsanforderungen zu erfüllen. Weitere Informationen finden Sie unter Lambda-Funktionsskalierung in der Lambda-Dokumentation.

Tools

AWSDienste

  • AWSCloud9 ist eine integrierte Entwicklungsumgebung (IDE), mit der Sie Software programmieren, erstellen, ausführen, testen und debuggen können. Sie hilft Ihnen auch dabei, Software in der AWS Cloud zu veröffentlichen.

  • AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS Konten und Regionen hinweg zu verwalten.

  • AWSCommand Line Interface (AWSCLI) ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer Befehlszeilen-Shell mit AWS Diensten interagieren können.

  • Amazon DynamoDB ist ein vollständig verwalteter Service ohne SQL Datenbank, der eine schnelle, vorhersehbare und skalierbare Leistung bietet.

  • AWSIdentity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • AWSMit dem Key Management Service (AWSKMS) können Sie kryptografische Schlüssel erstellen und kontrollieren, um Ihre Daten zu schützen.

  • AWSLambda ist ein Rechendienst, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

  • Amazon Simple Email Service (AmazonSES) unterstützt Sie beim Senden und Empfangen von E-Mails mithilfe Ihrer eigenen E-Mail-Adressen und Domains.

  • Amazon Simple Notification Service (AmazonSNS) unterstützt Sie bei der Koordination und Verwaltung des Nachrichtenaustauschs zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

Für die Bereitstellung benötigte Tools

  • Entwicklungsumgebung mit AWS CLI und IAM Zugriff auf Ihr AWS Konto. Einzelheiten finden Sie unter den Links im Abschnitt Verwandte Ressourcen. Wir empfehlen Ihnen, AWS Cloud9 zu verwenden, um den Einrichtungsprozess zu vereinfachen.  

  • Wenn Sie AWS Cloud9 verwenden, wird Folgendes für Sie konfiguriert.  Wenn Sie AWS Cloud9 nicht verwenden möchten, müssen Sie Folgendes installieren:

    • Die AWSCLI, um die Zugangsdaten für die AWS CDK zu konfigurieren. Weitere Informationen finden Sie in der AWSCLIDokumentation.

    • Python-Version 3.9 oder höher

    • Python-Pakete pip und virtualenv

    • Node.js Version 12.7.0 oder höher

    • AWSCDKVersion 2.23.0 oder höher

    • Docker-Version 20.10.x oder höher

Code

Der Code für dieses Muster ist im E-Mail-Repository von GitHub AWSAccount Factory verfügbar.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Identifizieren oder erstellen Sie ein AWS Konto.

Identifizieren Sie ein vorhandenes oder neues AWS Konto, auf das Sie vollen Administratorzugriff haben, um die E-Mail-Lösung bereitzustellen.  

AWSAdministrator, Cloud-Administrator

Richten Sie eine Bereitstellungsumgebung ein.

Konfigurieren Sie eine benutzerfreundliche Bereitstellungsumgebung und richten Sie Abhängigkeiten ein, indem Sie die folgenden Schritte ausführen:

  1. Stellen Sie eine Instanz von AWS Cloud9 als dedizierte Bereitstellungsumgebung bereit. Anweisungen finden Sie unter Erste Schritte mit AWS Cloud9.

  2. Klonen Sie die GitHub AWSAccount-Factory-E-Mail-Repository-Codebasis mit dem folgenden Befehl auf die AWS Cloud9-Instanz:

    git clone https://github.com/aws-samples/aws-account-factory-email
  3. Aktualisieren Sie in der requirements.txt Datei (im Stammverzeichnis des Repositorys) die Zeile, die mit beginnt, sodass sie der Version aws-cdk-lib== entspricht AWSCDK, die in Ihrer Umgebung ausgeführt wird. Verwenden Sie den cdk --version Befehl, um die Version zu identifizieren.

AWS DevOps, App-Entwickler
AufgabeBeschreibungErforderliche Fähigkeiten

Identifizieren und weisen Sie eine Domain zu.

Für die E-Mail-Weiterleitungsfunktion ist eine dedizierte Domain erforderlich. Identifizieren und weisen Sie eine Domain oder Subdomain zu, die Sie bei Amazon verifizieren können. SES Diese Domain sollte für den Empfang eingehender E-Mails innerhalb des AWS Kontos verfügbar sein, in dem die E-Mail-Weiterleitungslösung eingesetzt wird.

Anforderungen an die Domain:

  • Die Domain sollte eine Standarddomain oder Subdomain sein.

  • Die Domain sollte extern DNS auflösbar sein, da sie für den Empfang von E-Mails von außerhalb der Organisation verwendet wird.

Cloud-Administrator, Netzwerkadministrator, DNS Administrator

Überprüfen Sie die Domain.

Stellen Sie sicher, dass die identifizierte Domain verwendet werden kann, um eingehende E-Mails zu akzeptieren.

Folgen Sie den Anweisungen unter Verifizieren Ihrer Domain für den SES E-Mail-Empfang durch Amazon in der SES Amazon-Dokumentation. Dies erfordert eine Abstimmung mit der Person oder dem Team, die für die DNS Aufzeichnungen der Domain verantwortlich ist.

App-Entwickler, AWS DevOps

Richten Sie MX-Einträge ein.

Richten Sie Ihre Domain mit MX-Einträgen ein, die auf die SES Amazon-Endpunkte in Ihrem AWS Konto und Ihrer Region verweisen. Weitere Informationen finden Sie in der SESAmazon-Dokumentation unter Veröffentlichen eines MX-Eintrags für den SES E-Mail-Empfang von Amazon.

Cloud-Administrator, Netzwerkadministrator, DNS Administrator
AufgabeBeschreibungErforderliche Fähigkeiten

Ändern Sie die Standardwerte in cdk.json.

Bearbeiten Sie einige der Standardwerte in der cdk.json Datei (im Stammverzeichnis des Repositorys), sodass die Lösung nach der Bereitstellung ordnungsgemäß funktioniert.

  1. Ändern Sie den SES_DOMAIN_NAME Wert so, dass er dem Domainnamen entspricht, den Sie zuvor verifiziert haben.

  2. Ändern Sie den ADDRESS_FROM Wert so, dass er dieselbe Domain enthält wie inSES_DOMAIN_NAME. Der lokale Teil der Adresse sollte von Ihrem Cloud-Team festgelegt werden. Diese Adresse wird zur FROM Adresse für jede E-Mail, die über die Lösung weitergeleitet wird.

  3. Ändern Sie den ADDRESS_ADMIN Wert so, dass er mit der E-Mail-Adresse übereinstimmt, an die alle nicht passenden eingehenden Nachrichten weitergeleitet werden. Bei diesem Wert muss es sich um eine gültige und funktionierende E-Mail-Adresse handeln.

App-Entwickler, AWS DevOps

Stellen Sie die Lösung für den Verkauf und die Weiterleitung von E-Mails bereit.

  1. Erstellen Sie eine virtuelle Python-Umgebung:

    python -m venv .venv
  2. Aktivieren Sie die virtuelle Python-Umgebung:

    source .venv/bin/activate

    Oder verwenden Sie auf der Windows-Plattform:

    % .venv\Scripts\activate.bat
  3. Installieren Sie alle Python-Anforderungen ohne Fehler:

    pip install -r requirements.txt
  4. Synthetisieren Sie die CloudFormation Vorlage:

    cdk synth

    Vergewissern Sie sich, dass keine Fehler vorliegen und dass die vollständige CloudFormation Vorlage die erwartete Ausgabe enthält.

  5. (Optional) Wenn Sie den AWS CDK Code zum ersten Mal für das aktuelle AWS Konto oder die Region bereitstellen, starten Sie die Umgebung. Weitere Informationen finden Sie in der Dokumentation unter Bootstrapping. AWS CDK

    cdk bootstrap aws://AWS-ACCOUNT-NUMBER/REGION

    Ersetzen Sie AWS-ACCOUNT-NUMBER und REGION durch tatsächliche Werte.

  6. Stellen Sie die Lösung bereit:

    cdk bootstrap cdk deploy

    Die Befehle sollten ohne Fehler abgeschlossen werden.

App-Entwickler, AWS DevOps

Stellen Sie sicher, dass die Lösung bereitgestellt wurde.

Stellen Sie sicher, dass die Lösung erfolgreich bereitgestellt wurde, bevor Sie mit dem Testen beginnen:

  1. Öffnen Sie die AWS CloudFormation Konsole und suchen Sie nach einem CloudFormation Stack, der den Namen enthältAwsMailFwdStack.

  2. Vergewissern Sie sich, dass dieser AwsMailFwdStack Stack über die folgenden Ressourcen verfügt:

    • Lambda-Funktionen

    • SESAmazon-Regel und Regelsatz

    • IAM-Rollen und -Richtlinien

    • Amazon S3 S3-Bucket- und Bucket-Richtlinie

    • AWSKMSSchlüssel und wichtige Richtlinie

    • SNSThema und Themenrichtlinie von Amazon

    • DynamoDB-Tabelle

App-Entwickler, AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Stellen Sie sicher, API dass das funktioniert.

In diesem Schritt senden Sie Testdaten an die Lösung API und bestätigen, dass die Lösung die erwartete Ausgabe erzeugt und dass die Backend-Operationen wie erwartet ausgeführt wurden.

Führen Sie die Lambda-Funktion von Vend Email mithilfe der Testeingabe manuell aus. (Ein Beispiel finden Sie in der Datei sample_vend_request.json.) Verwenden Sie für eine gültige E-Mail-AdresseOwnerAddress. Das API sollte einen Kontonamen und eine Konto-E-Mail-Adresse mit den erwarteten Werten zurückgeben.

App-Entwickler, AWS DevOps

Stellen Sie sicher, dass die E-Mail weitergeleitet wird.

In diesem Schritt senden Sie eine Test-E-Mail über das System und überprüfen, ob die E-Mail an den erwarteten Empfänger weitergeleitet wurde.

  1. Rufen Sie die Konto-E-Mail aus dem letzten Schritt ab.

  2. Senden Sie eine E-Mail mit einer Testperson und einem Nachrichtentext an diese Adresse.

  3. Bestätigen Sie, dass Sie die E-Mail an die E-Mail-Adresse des Kontoinhabers erhalten haben.

  4. Vergewissern Sie sich, dass die E-Mail, die Sie erhalten haben, eine FROM Adresse hat, die der ADDRESS_FROM Einstellung unter entsprichtcdk.json.

  5. Vergewissern Sie sich, dass Betreff und Text der empfangenen E-Mail mit der ursprünglich gesendeten Nachricht übereinstimmen.

App-Entwickler, AWS DevOps

Fehlerbehebung

ProblemLösung

Das System leitet E-Mails nicht wie erwartet weiter.

Stellen Sie sicher, dass Ihre Einrichtung korrekt ist:

  1. Sie sollten den SES Amazon-Verifizierungsprozess für Ihre Domain abgeschlossen haben.

  2. Ihre Domain sollte ordnungsgemäß eingerichtet sein, sodass MX-Einträge auf die SES Amazon-Endpunkte in Ihrem AWS Konto und Ihrer Region verweisen. Weitere Informationen finden Sie in der SESAmazon-Dokumentation unter Veröffentlichen eines MX-Eintrags für den SES E-Mail-Empfang von Amazon.

Gehen Sie wie folgt vor, nachdem Sie Ihre Domain-Einrichtung verifiziert haben:

  1. Öffnen Sie die AWS CloudWatch Konsole für das Konto und die Region, in der Sie die Lösung bereitgestellt haben, und navigieren Sie im Navigationsbereich zu CloudWatch Protokollgruppen.

  2. Suchen Sie in der Liste der Protokollgruppen nachSesMailForwardLogGroup.

  3. Untersuchen Sie die Protokolle in dieser Gruppe, um festzustellen, ob beim Verkauf und Weiterleiten von E-Mails Fehler aufgetreten sind.

Wenn Sie versuchen, den AWS CDK Stack bereitzustellen, erhalten Sie eine Fehlermeldung, die der folgenden ähnelt:

„Fehler im Vorlagenformat: Unbekannte Ressourcentypen“

In den meisten Fällen bedeutet diese Fehlermeldung, dass die Region, auf die Sie abzielen, nicht über alle verfügbaren AWS Dienste verfügt. Wenn Sie AWS Cloud9 für die Bereitstellung der Lösung verwenden, zielen Sie möglicherweise auf eine Region ab, die sich von der Region unterscheidet, in der die AWS Cloud9-Instanz ausgeführt wird.

Hinweis: Standardmäßig erfolgt die Bereitstellung in der AWS CDK Region und dem Konto, das Sie in der konfiguriert haben. AWS CLI

Mögliche Lösungen:

  1. Prüfen Sie anhand der Dienste nach Region, ob sich alle für diese Lösung benötigten Dienste (siehe Abschnitt Target-Technologie-Stack weiter oben in diesem Muster) in der AWS Region befinden, auf die Sie abzielen. AWS

  2. Wenn Sie AWS Cloud9 verwenden und auf eine Region abzielen, die sich von der Region unterscheidet, in der Ihre AWS Cloud9-Instanz ausgeführt wird, stellen Sie sicher, dass Sie die AWS_DEFAULT_REGION Umgebungsvariable oder eine Region mit der festlegen, AWS CLI bevor Sie die Lösung bereitstellen. Weitere Informationen finden Sie AWS CLI in der Dokumentation unter Umgebungsvariablen zur Konfiguration von. AWS CLI Alternativ können Sie die app.py Datei im Stammverzeichnis des Repositorys so ändern, dass sie eine fest codierte Konto-ID und Region enthält, indem Sie den Anweisungen in der AWSCDKDokumentation für Umgebungen folgen.

Wenn Sie die Lösung bereitstellen, erhalten Sie die folgende Fehlermeldung:

„Die Bereitstellung ist fehlgeschlagen: Fehler AwsMailFwdStack: Der SSM Parameter /cdk-bootstrap/hnb659fds/version wurde nicht gefunden. Wurde für die Umgebung ein Bootstrapping durchgeführt? Bitte starte 'cdk bootstrap'“

Wenn Sie noch nie AWS CDK Ressourcen für das AWS Konto und die Region bereitgestellt haben, auf die Sie abzielen, müssen Sie zuerst den cdk bootstrap Befehl ausführen, da der Fehler darauf hindeutet. Wenn Sie diesen Fehler weiterhin erhalten, nachdem Sie den Bootstrapping-Befehl ausgeführt haben, versuchen Sie möglicherweise, die Lösung in einer Region bereitzustellen, die sich von der Region unterscheidet, in der Ihre AWS Cloud9-Instance ausgeführt wird.

Um dieses Problem zu lösen, legen Sie die AWS_DEFAULT_REGION Umgebungsvariable oder eine Region mit fest, AWS CLI bevor Sie die Lösung bereitstellen. Alternativ können Sie die app.py Datei im Stammverzeichnis des Repositorys so ändern, dass sie eine fest codierte Konto-ID und Region enthält, indem Sie den Anweisungen in der AWSCDKDokumentation für Umgebungen folgen.

Zugehörige Ressourcen

Zusätzliche Informationen

Kosten

Wenn Sie diese Lösung einsetzen, können dem AWS Kontoinhaber Kosten entstehen, die mit der Nutzung der folgenden Dienste verbunden sind.  Es ist wichtig, dass Sie wissen, wie diese Dienste in Rechnung gestellt werden, damit Sie sich über mögliche Gebühren im Klaren sind. Preisinformationen finden Sie auf den folgenden Seiten: