DKIM (DomainKeys Identified Mail) ist eine wichtige E-Mail-Authentifizierungstechnik, die hilft, E-Mail-Spoofing zu verhindern. Mit DKIM signierst du deine E-Mail-Header digital mit einem privaten Schlussel, und der Empfanger verifiziert diese Signatur mit deinem offentlichen Schlussel, der in den DNS-Eintragen deiner Domain gespeichert ist. Google Workspace (ehemals G Suite) nutzt DKIM, um sicherzustellen, dass die von deiner Domain gesendeten E-Mails als von dir kommend verifiziert werden und nicht von einem Spammer, der vorgibt, du zu sein.

In diesem Artikel tauchen wir ein in die Verwendung von Terraform zur Konfiguration von DKIM fur Google Workspace mit AWS Route 53 fur die DNS-Verwaltung. Dieser Ansatz ist perfekt, wenn du deine Infrastruktur bereits als Code verwaltest und den Prozess der Erstellung von DNS-Eintragen fur DKIM automatisieren mochtest.

1. Uberblick uber den DKIM-Prozess

Bevor wir in den Terraform-Code eintauchen, fassen wir noch einmal zusammen, wie DKIM funktioniert:

  • Signieren ausgehender E-Mails: Google Workspace signiert die Header ausgehender E-Mails mit einem privaten Schlussel. Der Domain-Inhaber konfiguriert den offentlichen Schlussel als DNS-Eintrag.
  • Verifizieren eingehender E-Mails: Der E-Mail-Server des Empfangers ruft den offentlichen Schlussel aus dem DNS ab, um die Signatur zu verifizieren und sicherzustellen, dass die E-Mail wahrend der Ubertragung nicht manipuliert wurde.

2. Terraform-Block-Aufschlusselung

Der bereitgestellte Terraform-Block erstellt einen TXT-Eintrag in AWS Route 53, der fur die Veroffentlichung des DKIM-Offentlichen-Schlussels fur Google Workspace unerlasslich ist.

a. Lokale Variable fur den DKIM-Eintrag

locals {
  dkim_record = "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4FbZGvaSuBW9yDhuswEA6S7QRRZlvvS3Rc6xRK92QJ44+IUoobJf+S3VZGSjdv5Jmpu57JGaq1KsObB5DwObvCW6yhJb6rGd0bgXqTzkfHH7sxnkEbDbNEIyUhxuEbUdWE1KtFz0QMb+GMhxC+j+kntpXtVDWugp9lSa7cnkFVho/gRwVkz47QFD1kQjvP9/QraYZo63M5DObFRFF4rDHvBzNTGl6+FC0OkyA49f19iw1+eFtLWu8BpVIn4HxxZWn04i1KHnm1AX9BztBAoVbJ0ZlF1tEJ5eLMPQg5l0BUcSEYi1RcBKTJU+AJ17fGAJEGr7Ft47SJgHdN9XUPH9NwIDAQAB"
}

b. Erstellen des DKIM-Eintrags in Route 53

resource "aws_route53_record" "google_domainkey_TXT" {
  zone_id = aws_route53_zone.domain_com.zone_id
  name    = "google._domainkey"
  type    = "TXT"
  ttl     = 300
  records = [
    replace(local.dkim_record, "/(.{255})/", "$1\"\"")
  ]
}

c. Aufteilen langer DKIM-Eintrage

Die verwendete replace()-Funktion ist entscheidend:

replace(local.dkim_record, "/(.{255})/", "$1\"\"")

Diese Zeile stellt sicher, dass der DKIM-Eintrag in kleinere Abschnitte von 255 Zeichen aufgeteilt wird, da DNS-Server eine Begrenzung haben, wie lang ein einzelner TXT-Eintrag sein kann.

4. Schritte zur Konfiguration von DKIM fur Google Workspace

  1. Generiere den DKIM-Schlussel in Google Workspace: Gehe zu deiner Google Admin Console, navigiere zu Apps > Google Workspace > Gmail > Authenticate Email. Generiere einen neuen DKIM-Schlussel fur deine Domain und kopiere den bereitgestellten offentlichen Schlussel.
  2. Wende die Terraform-Konfiguration an: Setze die lokale Variable dkim_record auf den von Google Workspace generierten offentlichen Schlussel und fuhre terraform init, terraform plan und terraform apply aus.
  3. Aktiviere DKIM-Signierung in Google Workspace: Nachdem der DNS-Eintrag propagiert wurde, kehre zur Google Admin Console zuruck, gehe zuruck zur Seite Authenticate Email und klicke auf Start Authentication.

Fazit

Die Verwendung von Terraform zur Verwaltung von DKIM-Eintragen fur Google Workspace und AWS Route 53 optimiert den Prozess der Konfiguration und Wartung deiner E-Mail-Authentifizierung. Durch die Automatisierung mit Infrastructure as Code (IaC) profitierst du von Reproduzierbarkeit, Prufbarkeit und einfacher Verwaltung, wahrend du gleichzeitig sicherstellst, dass deine E-Mails vor Spoofing und anderen E-Mail-basierten Angriffen geschutzt sind.

Mit dieser Konfiguration hast du nun ein solides DKIM-Setup, das die Sicherheit deiner E-Mail-Kommunikation verbessert und sicherstellt, dass Empfanger den Nachrichten vertrauen konnen, die du von deiner Domain sendest. Viel Spass beim Terraformen!