Blog

Wie Sie die Überprüfung von Google-Seiten mit terraform automatisieren

Mark van Holsteijn

Mark van Holsteijn

Aktualisiert Oktober 21, 2025
4 Minuten

Für eine Reihe von Diensten der Google Cloud-Plattform muss ich eine Google-Site-Verifizierung durchführen, um zu beweisen, dass ich tatsächlich Eigentümer einer Domain bin. Leider bietet der Google Terraform-Anbieter dafür keine Unterstützung. In diesem Blog zeige ich Ihnen, wie Sie dies mit einem eigenen Terraform-Anbieter automatisieren können.
Obwohl Google die API für die Website-Verifizierung zur Verfügung stellt, um den Prozess zu automatisieren
, unterstützt der Google Terraform-Anbieter dies nicht. Glücklicherweise hat Hector Jusforgues einen Terraform-Anbieter speziell für diesen Zweck entwickelt.
Es gibt eine Reihe von Möglichkeiten, wie ich nachweisen kann, dass ich die Domain besitze: durch Meta-Tags, HTML-Dateien, Google Analytics Tracking-Code, Google Tag Manager Container-Code oder DNS-Einträge. Der Anbieter implementiert die DNS-TXT-Methode.

Wie kann man automatisieren?

Ich automatisiere die Überprüfung des Besitzes der Domäne in den folgenden Schritten:

  1. Installieren Sie das terraform Google Site Verification Plugin
  2. Aktivieren Sie die Google Site Verification API
  3. eine von Cloud DNS gehostete Zone für Ihre Domain erstellen
  4. die NS-Einträge bei der übergeordneten Domäne registrieren
  5. den TXT-Eintrag in die von Cloud DNS gehostete Zone einfügen
  6. beantragen Sie eine Website-Überprüfung bei Google.

das Plugin installieren

Um das Plugin zu installieren, folgen Sie den Installationsanweisungen von terraform-provider-googlesiteverification.

terraform {
  required_providers {
    googlesiteverification = {
      source = "hectorj/googlesiteverification"
      version = "0.4.2"
    }
  }
}

Aktivieren Sie die Google Site Verification API

Das folgende Terraform-Snippet aktiviert die API zur Standortüberprüfung:

resource google_project_service siteverification {
  service = "siteverification.googleapis.com"
}

Erstellen Sie die gehostete Zone in Cloud DNS

Das folgende Terraform-Snippet erstellt die gehostete Zone in Cloud DNS:

resource "google_dns_managed_zone" "domain" {
  name     = replace(var.domain_name, ".", "-")
  dns_name = "${var.domain_name}."
}

Ich verwende eine separate gehostete Zone, da ich so die gesamte gehostete Zone innerhalb von Google über Terraform verwalten kann.

NS-Einträge in der übergeordneten Domäne registrieren

Das folgende Terraform-Snippet registriert die NS-Einträge in der übergeordneten Domain:

data "aws_route53_zone" "parent" {
  name = "${local.parent_domain_name}."
}

resource "aws_route53_record" "domain_ns_records" {
  zone_id = data.aws_route53_zone.parent.zone_id
  name    = "${var.domain_name}."
  type    = "NS"
  ttl     = "60"
  records = google_dns_managed_zone.domain.name_servers
}

In meinem Fall ist die übergeordnete Domain in AWS registriert.

den Validierungseintrag in Cloud DNS einfügen

Das folgende Terraform-Snippet fordert das erforderliche Token und
an und fügt den Validierungseintrag in Cloud DNS ein:

data "googlesiteverification_dns_token" "domain" {
  domain     = var.domain_name
  depends_on = [google_project_service.siteverification]
}

resource "google_dns_record_set" "domain" {
  managed_zone = google_dns_managed_zone.domain.name
  name         = "${data.googlesiteverification_dns_token.domain.record_name}."
  rrdatas      = [data.googlesiteverification_dns_token.domain.record_value]
  type         = data.googlesiteverification_dns_token.domain.record_type
  ttl          = 60
}

beantragen Sie eine Website-Überprüfung bei Google.

Das folgende Terraform-Snippet fordert die Überprüfung der Website bei Google an:

resource "googlesiteverification_dns" "domain" {
  domain     = var.domain_name
  token      = data.googlesiteverification_dns_token.domain.record_value
  depends_on = [aws_route53_record.domain_ns_records]
}

Anwendung der Änderungen

Zum Bewerben tippen Sie:

$ terraform apply --auto-approve
data.aws_route53_zone.parent: Refreshing state...
google_project_service.siteverification: Creating...
google_dns_managed_zone.domain: Creating...
google_dns_managed_zone.domain: Creation complete after 1s [id=projects/binx-demo/managedZones/google-binx-dev]
aws_route53_record.domain_ns_records: Creating...
google_project_service.siteverification: Creation complete after 4s [id=binx-demo/siteverification.googleapis.com]
data.google-site-verifier_dns_token.domain: Refreshing state...
google_dns_record_set.domain: Creating...
aws_route53_record.domain_ns_records: Still creating... [10s elapsed]
google_dns_record_set.domain: Creation complete after 4s [id=google-binx-dev/google.binx.dev./TXT]
aws_route53_record.domain_ns_records: Still creating... [20s elapsed]
aws_route53_record.domain_ns_records: Still creating... [30s elapsed]
aws_route53_record.domain_ns_records: Creation complete after 40s [id=XXXXXXXXXXXX_google.binx.dev._NS]
google-site-verifier_dns.domain: Creating...
google-site-verifier_dns.domain: Still creating... [10s elapsed]
google-site-verifier_dns.domain: Still creating... [20s elapsed]
google-site-verifier_dns.domain: Still creating... [30s elapsed]
google-site-verifier_dns.domain: Still creating... [40s elapsed]
google-site-verifier_dns.domain: Creation complete after 42s [id=google.binx.dev.]

Apply complete! Resources: 5 added, 0 changed, 0 destroyed.

das Ergebnis ansehen

Wenn Sie die Website zur Überprüfung der Website aufrufen, können Sie das Ergebnis sehen. Es sollte in etwa so aussehen
:

Verifizierungsversuche

| Datum | E-Mail | Ergebnis | Methode |
| - | - | - | - |
| 2 minutes ago
9/25/20 7:33:07 PM UTC | google-site-verifier@binx-demo.iam.gserviceaccount.com | Verifizierung erfolgreich. | DNS TXT record |
| 2 minutes ago
9/25/20 7:32:56 PM UTC | google-site-verifier@binx-demo.iam.gserviceaccount.com | Verification failed. | DNS TXT record |
| 2 minutes ago
9/25/20 7:32:45 PM UTC | google-site-verifier@binx-demo.iam.gserviceaccount.com | Verifizierung fehlgeschlagen. | DNS TXT record |
| 2 minutes ago
9/25/20 7:32:36 PM UTC | google-site-verifier@binx-demo.iam.gserviceaccount.com | Verification failed. | DNS TXT record |
| 2 minutes ago
9/25/20 7:32:32 PM UTC | google-site-verifier@binx-demo.iam.gserviceaccount.com | Verification failed. | DNS TXT record |
| 2 minutes ago
9/25/20 7:32:29 PM UTC | google-site-verifier@binx-demo.iam.gserviceaccount.com | Verification failed. | DNS TXT record |
| 2 minutes ago
9/25/20 7:32:27 PM UTC | google-site-verifier@binx-demo.iam.gserviceaccount.com | Verifizierung fehlgeschlagen. | DNS TXT-Eintrag |

Fazit

Mit dem Terraform-Provider für die Google Site Verification
habe ich die Validierung des Domainbesitzes gegenüber Google automatisiert. Es wäre schön, wenn diese Funktion Teil des Standard-Google-Providers wäre. Wenn Sie das auch so sehen, bewerten Sie bitte Ressourcen zur Validierung einer Domain hinzufügen #5698.
Den vollständigen Quellcode finden Sie im Github-Repository.
Foto von CDC auf Unsplash

Verfasst von

Mark van Holsteijn

Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.

Contact

Let’s discuss how we can support your journey.