Bereitstellen Ihres eigenen DKIM-Authentifizierungs-Tokens (BYODKIM) in Amazon SES - Amazon Simple Email Service

Bereitstellen Ihres eigenen DKIM-Authentifizierungs-Tokens (BYODKIM) in Amazon SES

Anstatt Easy DKIM zu verwenden, können Sie alternativ auch die DKIM-Authentifizierung konfigurieren, indem Sie Ihr eigenes Schlüsselpaar aus öffentlichem und privatem Schlüssel verwenden. Dieser Prozess wird auch als Bring Your Own DKIM (Verwendung der eigenen DKIM) (BYODKIM) bezeichnet.

Mit BYODKIM können Sie einen einzelnen DNS-Eintrag verwenden, um die DKIM-Authentifizierung für Ihre Domänen zu konfigurieren. Mit Easy DKIM müssen Sie hingegen drei separate DNS-Einträge veröffentlichen. Darüber hinaus können Sie mit BYODKIM die DKIM-Schlüssel für Ihre Domänen beliebig oft rotieren.

Warnung

Wenn Sie derzeit Easy DKIM aktiviert haben und zu BYODKIM wechseln, beachten Sie, dass Amazon SES Easy DKIM nicht zum Signieren Ihrer E-Mails verwendet, während BYODKIM eingerichtet wird und sich Ihr DKIM-Status in einem ausstehenden Zustand befindet. Zwischen dem Moment, in dem Sie den Anruf tätigen, um BYODKIM (entweder über die API oder die Konsole) zu aktivieren, und dem Moment, in dem SES Ihre DNS-Konfiguration bestätigen kann, können Ihre E-Mails von SES ohne DKIM-Signatur gesendet werden. Daher wird empfohlen, einen Zwischenschritt zu verwenden, um von einer DKIM-Signaturmethode zur anderen zu migrieren (z. B. die Verwendung einer Subdomäne Ihrer Domäne mit aktiviertem Easy DKIM und deren Löschung nach Ablauf der BYODKIM-Überprüfung) oder diese Aktivität gegebenenfalls während der Ausfallzeit Ihrer Anwendung durchzuführen.

Schritt 1: Erstellen des Schlüsselpaars

Um die Funktion Bring Your Own DKIM verwenden zu können, müssen Sie zunächst ein RSA-Schlüsselpaar erstellen.

Der von Ihnen generierte private Schlüssel muss mindestens 1024-Bit-RSA-Verschlüsselung und bis zu 2048-Bit verwenden und mit Base64-Codierung (PEM) codiert sein. Für weitere Informationen über die DKIM-Signierung von Schlüssellängen und deren Änderung siehe Länge des DKIM-Schlüssellänge.

Anmerkung

Sie können Anwendungen und Tools von Drittanbietern verwenden, um RSA-Schlüsselpaare zu generieren, solange der private Schlüssel mit mindestens 1024-Bit-RSA-Verschlüsselung und bis zu 2048-Bit generiert wird und mit Base64-Codierung (PEM) codiert ist.

Im folgenden Verfahren verwendet der Beispielcode, der den Befehl openssl genrsa zum Erstellen des Schlüsselpaares nutzt, welcher in die meisten Linux-, macOS- oder Unix-Betriebssysteme integriert ist, automatisch Base64-Codierung (PEM).

So erstellen Sie das Schlüsselpaar über die Befehlszeile von Linux, macOS oder Unix
  1. Geben Sie in der Befehlszeile den folgenden Befehl ein, um den privaten Schlüssel zu generieren, der nnnn mit einer Bitlänge von mindestens 1 024 und bis zu 2 048 ersetzt:

    openssl genrsa -f4 -out private.key nnnn
  2. Geben Sie in der Befehlszeile den folgenden Befehl ein, um den öffentlichen Schlüssel zu generieren:

    openssl rsa -in private.key -outform PEM -pubout -out public.key

Schritt 2: Hinzufügen des Selektors und öffentlichen Schlüssels zur Domänenkonfiguration Ihres DNS-Anbieters

Nachdem Sie nun ein Schlüsselpaar erstellt haben, müssen Sie den öffentlichen Schlüssel als TXT-Datensatz zur DNS-Konfiguration für Ihre Domäne hinzufügen.

So fügen den öffentlichen Schlüssel zur DNS-Konfiguration für Ihre Domäne hinzu
  1. Melden Sie sich bei der Managementkonsole für Ihren DNS- oder Hosting-Anbieter an.

  2. Fügen Sie einen neuen Textdatensatz zur DNS-Konfiguration für Ihre Domäne hinzu. Der Datensatz sollte das folgende Format verwenden:

    Name Typ Value (Wert)

    selector._domainkey.example.com

    TXT

    p=yourPublicKey

    Nehmen Sie im vorherigen Beispiel Sie die folgenden Änderungen vor:

    • Ersetzen Sie selector durch einen eindeutigen Namen, der den Schlüssel identifiziert.

      Anmerkung

      Einige wenige DNS-Anbieter lassen keine Unterstriche (_) in den Namen von Datensätzen zu. Der Unterstrich im DKIM-Datensatznamen ist jedoch erforderlich. Wenn Ihr DNS-Anbieter keine Unterstriche im Datensatznamen zulässt, bitten Sie das Kundensupport-Team des Anbieters um Hilfe.

    • Ersetzen Sie example.com durch Ihre Domäne.

    • Ersetzen Sie yourPublicKey durch den öffentlichen Schlüssel, den Sie zuvor erstellt haben, und schließen Sie das Präfix p= ein, wie in der Spalte Value (Wert) oben gezeigt.

      Anmerkung

      Wenn Sie Ihren öffentlichen Schlüssel an Ihren DNS-Anbieter veröffentlichen (ihm hinzufügen), muss er wie folgt formatiert sein:

      • Sie müssen die erste und letzte Zeile (-----BEGIN PUBLIC KEY----- bzw. -----END PUBLIC KEY-----) des generierten öffentlichen Schlüssels löschen. Darüber hinaus müssen Sie die Zeilenumbrüche im generierten öffentlichen Schlüssel entfernen. Der resultierende Wert ist eine Zeichenfolge ohne Leerzeichen oder Zeilenumbrüche.

      • Sie müssen das Präfix p=, wie in der Spalte Value (Wert) der oben stehenden Tabelle gezeigt, einschließen.

    Verschiedene Anbieter nutzen unterschiedliche Verfahren zum Aktualisieren von DNS-Datensätzen. Die folgende Tabelle enthält Links zur Dokumentation für einige gängige DNS-Anbieter. Diese Liste ist nicht vollständig und stellt keine Empfehlung dar. Wenn Ihr DNS-Anbieter nicht aufgeführt ist, bedeutet dies nicht, dass Sie die Domäne nicht mit Amazon SES verwenden können.

    DNS/Hosting-Anbieter Link zur Dokumentation

    Amazon Route 53

    Weitere Informationen finden Sie unter Bearbeiten von Datensätzen im Entwicklerhandbuch für Amazon Route 53.

    GoDaddy

    Hinzufügen eines TXT-Datensatzes (externer Link)

    DreamHost

    Wie füge ich benutzerdefinierte DNS-Datensätze hinzu? (externer Link)

    Cloudflare

    Verwalten von DNS-Datensätzen in CloudFlare (externer Link)

    HostGator

    Verwalten von DNS-Datensätzen mit/HostGator eNom (externer Link)

    Namecheap

    Wie füge ich TXT/SPF/DKIM/DMARC-Datensätze für meine Domain hinzu? (externer Link)

    Names.co.uk

    Ändern der DNS-Einstellungen Ihrer Domänen (externer Link)

    Wix

    Hinzufügen oder Aktualisieren von TXT-Datensätzen in Ihrem Wix-Konto (externer Link)

Schritt 3: Konfigurieren und Überprüfen einer Domäne zur Verwendung von BYODKIM

Sie können BYODKIM sowohl für neue Domänen (d. h. Domänen, die Sie derzeit nicht zum Senden von E-Mails über Amazon SES verwenden) als auch für vorhandene Domänen (d. h. für Domänen, die Sie bereits für die Verwendung mit Amazon SES eingerichtet haben) einrichten, mithilfe der Konsole oder AWS CLI. Bevor Sie die AWS CLI Verfahren in diesem Abschnitt abschließen, müssen Sie zunächst die AWS CLI installieren und konfigurieren. Weitere Informationen finden Sie im AWS Command Line Interface-Benutzerhandbuch.

Option 1: Erstellen einer neuen Domänenidentität, die BYODKIM verwendet

Dieser Abschnitt enthält Verfahren zum Erstellen einer neuen Domänenidentität, die BYODKIM verwendet. Eine neue Domänenidentität ist eine Domäne, die Sie zuvor nicht zum Senden von E-Mails über Amazon SES eingerichtet haben.

Wenn Sie eine vorhandene Domäne für die Verwendung von BYODKIM konfigurieren möchten, führen Sie stattdessen das unter Option 2: Konfigurieren einer vorhandenen Domänenidentität beschriebene Verfahren aus.

So erstellen Sie mit BYODKIM eine Identität aus der Konsole
So erstellen Sie mit BYODKIM eine Identität aus AWS CLI

Verwenden Sie die Operation CreateEmailIdentity in der Amazon-SES-API, um eine neue Domäne einzurichten.

  1. Fügen Sie folgenden Code in einen Texteditor ein:

    { "EmailIdentity":"example.com", "DkimSigningAttributes":{ "DomainSigningPrivateKey":"privateKey", "DomainSigningSelector":"selector" } }

    Nehmen Sie im vorherigen Beispiel Sie die folgenden Änderungen vor:

    • Ersetzen Sie example.com durch die Domäne, die Sie erstellen möchten.

    • Ersetzen Sie privateKey durch Ihren privaten Schlüssel.

      Anmerkung

      Sie müssen die erste und letzte Zeile (-----BEGIN PRIVATE KEY----- bzw. -----END PRIVATE KEY-----) des generierten privaten Schlüssels löschen. Darüber hinaus müssen Sie die Zeilenumbrüche im generierten privaten Schlüssel entfernen. Der resultierende Wert ist eine Zeichenfolge ohne Leerzeichen oder Zeilenumbrüche.

    • Ersetzen Sie selector durch den eindeutigen Selektor, den Sie beim Erstellen des TXT-Datensatzes in der DNS-Konfiguration für Ihre Domäne angegeben haben.

    Wenn Sie fertig sind, speichern Sie die Datei unter create-identity.json.

  2. Geben Sie in der Befehlszeile folgenden Befehl ein:

    aws sesv2 create-email-identity --cli-input-json file://path/to/create-identity.json

    Ersetzen Sie im voranstehenden Befehl path/to/create-identity.json durch den vollständigen Pfad zur Datei, die Sie im vorherigen Schritt erstellt haben.

Option 2: Konfigurieren einer vorhandenen Domänenidentität

Dieser Abschnitt enthält Verfahren zum Aktualisieren einer vorhandenen Domänenidentität für die Verwendung von BYODKIM. Eine vorhandene Domänenidentität ist eine Domäne, die Sie bereits zum Senden von E-Mails über Amazon SES eingerichtet haben.

So aktualisieren Sie eine Domänenidentität mit BYODKIM aus der Konsole
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-SES-Konsole unter https://console.aws.amazon.com/ses/.

  2. Klicken Sie im Navigationsbereich unter Configuration (Konfiguration), wählen Sie Verified identities (Verifizierte Identitäten) aus.

  3. Wählen Sie in der Liste der Identitäten eine Identität aus, in der Identity type (Identitätstyp) Domain (Domäne) ist.

    Anmerkung

    Informationen zum Erstellen oder Überprüfen einer Domäne finden Sie unter Erstellen einer Domänenidentität aus.

  4. Wählen Sie auf der Registerkarte Authentication (Authentifizierung) im Feld DomainKeys Identified Mail (DKIM) die Option Edit (Bearbeiten) aus.

  5. Wählen Sie im Bereich Advanced DKIM settings (Erweiterte DKIM-Einstellungen) die Schaltfläche Provide DKIM authentication token (BYODKIM) (DKIM-Authentifizierungstoken bereitstellen (BYODKIM)) im Feld Identity type (Identitätstyp) aus.

  6. Fügen Sie im Feld Private Key (Privater Schlüssel) den privaten Schlüssel ein, den Sie zuvor generiert haben.

    Anmerkung

    Sie müssen die erste und letzte Zeile (-----BEGIN PRIVATE KEY----- bzw. -----END PRIVATE KEY-----) des generierten privaten Schlüssels löschen. Darüber hinaus müssen Sie die Zeilenumbrüche im generierten privaten Schlüssel entfernen. Der resultierende Wert ist eine Zeichenfolge ohne Leerzeichen oder Zeilenumbrüche.

  7. Geben Sie für Selector name (Name des Selektors) den Namen des Selektors ein, den Sie in den DNS-Einstellungen Ihrer Domäne angegeben haben.

  8. Im Feld DKIM signatures (DKIM-Unterschriften) aktivieren Sie das Kontrollkästchen Enabled (Aktiviert).

  9. Wählen Sie Save Changes (Änderungen speichern).

So aktualisieren Sie eine Domänenidentität mit BYODKIM aus AWS CLI

Verwenden Sie die Operation PutEmailIdentityDkimSigningAttributes in der Amazon-SES-API, um eine neue Domäne einzurichten.

  1. Fügen Sie folgenden Code in einen Texteditor ein:

    { "SigningAttributes":{ "DomainSigningPrivateKey":"privateKey", "DomainSigningSelector":"selector" }, "SigningAttributesOrigin":"EXTERNAL" }

    Nehmen Sie im vorherigen Beispiel Sie die folgenden Änderungen vor:

    • Ersetzen Sie privateKey durch Ihren privaten Schlüssel.

      Anmerkung

      Sie müssen die erste und letzte Zeile (-----BEGIN PRIVATE KEY----- bzw. -----END PRIVATE KEY-----) des generierten privaten Schlüssels löschen. Darüber hinaus müssen Sie die Zeilenumbrüche im generierten privaten Schlüssel entfernen. Der resultierende Wert ist eine Zeichenfolge ohne Leerzeichen oder Zeilenumbrüche.

    • Ersetzen Sie selector durch den eindeutigen Selektor, den Sie beim Erstellen des TXT-Datensatzes in der DNS-Konfiguration für Ihre Domäne angegeben haben.

    Wenn Sie fertig sind, speichern Sie die Datei unter update-identity.json.

  2. Geben Sie in der Befehlszeile folgenden Befehl ein:

    aws sesv2 put-email-identity-dkim-signing-attributes --email-identity example.com --cli-input-json file://path/to/update-identity.json

    Nehmen Sie im vorherigen Befehl die folgenden Änderungen vor:

    • Ersetzen Sie path/to/update-identity.json durch den vollständigen Pfad zu der Datei, die Sie im vorherigen Schritt erstellt haben.

    • Ersetzen Sie example.com durch die Domäne, die aktualisiert werden soll.

Überprüfen des DKIM-Status für eine Domäne, die BYODKIM verwendet

So überprüfen Sie den DKIM-Status einer Domäne über die Konsole

Nachdem Sie eine Domäne für die Verwendung von BYODKIM konfiguriert haben, können Sie mithilfe der SES-Konsole überprüfen, ob DKIM ordnungsgemäß konfiguriert wurde.

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-SES-Konsole unter https://console.aws.amazon.com/ses/.

  2. Klicken Sie im Navigationsbereich unter Configuration (Konfiguration), wählen Sie Verified identities (Verifizierte Identitäten) aus.

  3. Wählen Sie in der Liste der Identitäten die Identität aus, deren DKIM-Status Sie überprüfen möchten.

  4. Es kann bis zu 72 Stunden dauern, bis Änderungen an den DNS-Einstellungen weitergegeben werden. Sobald Amazon SES alle dieser DKIM-Einträge in der DNS-Konfiguration Ihrer Domäne erkennt, ist der Überprüfungsprozess abgeschlossen. Wenn alles richtig konfiguriert wurde, wird im Feld DKIM configuration (DKIM-Konfiguration) Ihrer Domäne Successful (Erfolgreich) im Bereich DomainKeys Identified Mail (DKIM) angezeigt und im Feld Identity status (Identitätsstatus) erscheint Verified (Bestätigt) im Bereich Summary (Übersicht).

So überprüfen Sie den DKIM-Status einer Domäne mit der AWS CLI

Nachdem Sie eine Domäne für die Verwendung von BYODKIM konfiguriert haben, können Sie mithilfe der Operation GetEmailIdentity überprüfen, ob DKIM ordnungsgemäß konfiguriert wurde.

  • Geben Sie in der Befehlszeile folgenden Befehl ein:

    aws sesv2 get-email-identity --email-identity example.com

    Ersetzen Sie im voranstehenden Befehl example.com durch Ihre Domäne.

    Dieser Befehl gibt ein JSON-Objekt zurück, das einen Abschnitt enthält, der dem folgenden Beispiel ähnelt.

    { ... "DkimAttributes": { "SigningAttributesOrigin": "EXTERNAL", "SigningEnabled": true, "Status": "SUCCESS", "Tokens": [ ] }, ... }

    Wenn alle der folgenden Bedingungen zutreffen, ist BYODKIM für die Domäne richtig konfiguriert:

    • Der Wert der Eigenschaft SigningAttributesOrigin lautet EXTERNAL.

    • Der Wert von SigningEnabled ist true.

    • Der Wert von Status ist SUCCESS.