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 entkoppeln können, die mit einer verknüpft ist. AWS-Konto AWS-Konten erfordern, dass bei der Kontoerstellung eine eindeutige E-Mail-Adresse angegeben wird. In einigen Organisationen AWS-Konten muss das verwaltende Team die Last der Verwaltung vieler eindeutiger E-Mail-Adressen mit seinem Messaging-Team übernehmen. Dies kann für große Organisationen, die viele verwalten, schwierig sein AWS-Konten. Wenn Ihr E-Mail-System die Plus- oder Unteradressierung nicht zulässt, wie sie in Sieve Email Filtering: Subaddress Extension (RFC5233) definiert sind — indem Sie beispielsweise ein Pluszeichen (+) und eine Kennung am Ende des lokalen Teils der E-Mail-Adresse hinzufügen, kann admin+123456789123@example.com dieses Muster helfen, diese Einschränkung zu umgehen.

Dieses Muster bietet eine einzigartige Lösung für den Verkauf von E-Mail-Adressen, mit der AWS-Konto Eigentümer eine E-Mail-Adresse mehreren zuordnen können. AWS-Konten Die echten E-Mail-Adressen der AWS-Konto Eigentümer 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

  • Administrativer Zugriff auf ein AWS-Konto.

  • Zugriff auf eine Entwicklungsumgebung.

  • (Optional) Wenn Sie mit AWS Cloud Development Kit (AWS CDK) Workflows 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 AWS Organizations APIReferenz.

Versionen der Produkte

  • Node.js Version 12.7.0 oder höher

  • Python 3.9 oder höher

  • Python-Pakete pip und virtualenv

  • AWS CDK Version 2.23.0 oder höher

  • Docker 20.10.x oder höher

Architektur

Zieltechnologie-Stack

  • AWS CloudFormation stapeln

  • AWS Lambda Funktionen

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

  • AWS Identity and Access Management (IAM) Rollen und Richtlinien

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

  • AWS Key Management Service (AWS KMS) Schlüssel und wichtige Richtlinie

  • 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 eine neue zu erstellen AWS-Konto (normalerweise mithilfe von). AWS Organizations

  • Ablauf der E-Mail-Weiterleitung: Dieser Ablauf ist im oberen Abschnitt des vorherigen Diagramms dargestellt. Wenn ein mithilfe der Konto-E-Mail erstellt AWS-Konto wird, die aus dem E-Mail-Verkaufsablauf 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 Konto AWS-Konto bei Amazon soSES, dass Sie E-Mails für die gesamte Domain erhalten. 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 AWS CDK , 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 in der Lambda-Dokumentation unter Grundlegendes zur Lambda-Funktionsskalierung.

Tools

AWSDienste

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

  • AWS Command Line Interface (AWS CLI) 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.

  • AWS Identity 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.

  • AWS Key Management Service (AWS KMS) hilft Ihnen dabei, kryptografische Schlüssel zu erstellen und zu kontrollieren, um Ihre Daten zu schützen.

  • AWS Lambdaist 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

Code

Der Code für dieses Muster ist im GitHub AWS-Konto werkseitigen E-Mail-Repository verfügbar.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Identifizieren oder erstellen Sie eine 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. Richten Sie Ihre Entwicklungsumgebung mit den im Abschnitt Tools aufgeführten Tools ein.

  2. Klonen Sie die GitHub AWS-Konto werkseitige E-Mail-Repository-Codebasis mit dem folgenden Befehl in Ihre Entwicklungsumgebung:

    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 aws-cdk-lib== beginnt, so, AWS CDK dass sie der Version entspricht, 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 in dem Land verfügbar sein, in AWS-Konto 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 Ihrer Region 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 incdk.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 in der aktuellen Version AWS-Konto oder Region bereitstellen, führen Sie ein Bootstrapping für die Umgebung durch. Weitere Informationen finden Sie in der Dokumentation unter AWS CDK 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

    • AWS KMS Schlü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.

Vergewissern Sie sich, dass Ihre Einrichtung korrekt ist:

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

  2. Ihre Domain sollte ordnungsgemäß eingerichtet sein, sodass MX-Einträge auf die SES Amazon-Endpunkte in Ihrer Region AWS-Konto und in 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 CloudWatch Amazon-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 eine EC2 Amazon-Instance 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 Instance ausgeführt wird.

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

Mögliche Lösungen:

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

  2. Wenn Sie eine EC2 Instanz verwenden und auf eine Region abzielen, die sich von der Region unterscheidet, in der Ihre 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 AWS CLI Dokumentation unter Konfiguration von Umgebungsvariablen für. 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 AWS CDK Dokumentation für Umgebungen folgen.

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

„Die Bereitstellung ist fehlgeschlagen: Fehler AwsMailFwdStack:: SSM parameter /cdk-bootstrap/hnb659fds/version nicht gefunden. Wurde für die Umgebung ein Bootstrapping durchgeführt? Bitte führe 'cdk bootstrap' aus

Wenn Sie noch nie AWS CDK Ressourcen für die AWS-Konto Zielregion bereitgestellt haben, müssen Sie zuerst den cdk bootstrap Befehl ausführen, wie der Fehler darauf hinweist. 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 Entwicklungsumgebung 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 AWS CDK Dokumentation für Umgebungen folgen.

Zugehörige Ressourcen

Zusätzliche Informationen

Kosten

Wenn Sie diese Lösung einsetzen, können dem AWS-Konto Inhaber 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: