DNS-Autorisierungen verwalten

Mit DNS-Autorisierungen können Sie die Inhaberschaft von Domains für von Google verwaltete Zertifikate nachweisen. Beim Erstellen eines von Google verwalteten Zertifikats können eine oder mehrere DNS-Autorisierungen für die Bereitstellung und Verlängerung angegeben werden.

Auf dieser Seite wird beschrieben, wie Sie DNS-Autorisierungen für die Verwendung mit von Google verwalteten Zertifikaten erstellen und verwalten.

Weitere Informationen finden Sie unter Domainautorisierungen.

DNS-Autorisierung erstellen

Eine DNS-Autorisierung deckt nur einen einzelnen Domainnamen ab. Sie müssen für jeden Domainnamen, den Sie mit dem Zielzertifikat verwenden möchten, eine separate DNS-Autorisierung erstellen.

Wenn Sie eine DNS-Autorisierung für ein Wildcard-Zertifikat wie *.myorg.example.com erstellen, konfigurieren Sie die DNS-Autorisierung für die übergeordnete Domain, z. B. myorg.example.com.

Wenn Sie Zertifikate unabhängig in mehreren Projekten verwalten möchten, können Sie die PER_PROJECT_RECORD-DNS-Autorisierung verwenden. Certificate Manager kann Zertifikate für jedes Projekt unabhängig in Google Cloudausstellen und verwalten. DNS-Autorisierungen und ‑Zertifikate, die Sie in einem Projekt verwenden, sind unabhängig und interagieren nicht mit denen in anderen Projekten.

Console

Sie können beim Erstellen eines Zertifikats eine DNS-Autorisierung erstellen oder eine vorhandene DNS-Autorisierung anhängen. Weitere Informationen finden Sie unter Ein von Google verwaltetes Zertifikat erstellen, das auf die DNS-Autorisierung verweist.

gcloud

Verwenden Sie den Befehl certificate-manager dns-authorizations create, um eine DNS-Autorisierung zu erstellen:

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    [--type=TYPE] \
    [–-location="LOCATION"]

Ersetzen Sie Folgendes:

  • AUTHORIZATION_NAME: der Name der DNS-Autorisierung.
  • DOMAIN_NAME: der Name der Zieldomain, für die Sie diese DNS-Autorisierung erstellen. Der Domainname muss ein voll qualifizierter Domainname sein, z. B. myorg.example.com.
  • TYPE: die Art der DNS-Autorisierung. Sie können FIXED_RECORD oder PER_PROJECT_RECORD angeben. Weitere Informationen finden Sie unter DNS-Autorisierung.
  • LOCATION: der Ziel Google Cloud speicherort, an dem Sie die DNS-Autorisierung erstellen.

Prüfen Sie die DNS-Autorisierung mit dem Befehl certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

Die entsprechende Ausgabe sieht etwa so aus: Suchen Sie in der Ausgabe nach der Zeile dnsResourceRecord und rufen Sie den CNAME-Eintrag (data, name und type) ab, um ihn Ihrer DNS-Konfiguration hinzuzufügen.

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
  data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog.
  name: _acme-challenge.myorg.example.com.
  type: CNAME
domain: myorg.example.com
name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

Terraform

Zum Erstellen einer DNS-Autorisierung können Sie eine google_certificate_manager_dns_authorization-Ressource verwenden.

resource "google_certificate_manager_dns_authorization" "default" {
  name        = "${local.name}-dnsauth-${random_id.tf_prefix.hex}"
  description = "The default dns auth"
  domain      = local.domain
  labels = {
    "terraform" : true
  }
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

API

Senden Sie zum Erstellen einer DNS-Autorisierung eine POST-Anfrage an die Methode dnsAuthorizations.create:

POST /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME"
{
  "domain": "DOMAIN_NAME",
  "type": "PER_PROJECT_RECORD" //optional
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: ID des Google Cloud-Projekts.
  • LOCATION: der Ziel Google Cloud speicherort, an dem Sie die DNS-Autorisierung erstellen. Verwenden Sie für den globalen Standort global.
  • AUTHORIZATION_NAME: der Name der DNS-Autorisierung.
  • DOMAIN_NAME: der Name der Zieldomain, für die Sie diese DNS-Autorisierung erstellen. Der Domainname muss ein voll qualifizierter Domainname sein, z. B. myorg.example.com.

CNAME-Eintrag zu DNS-Konfiguration hinzufügen

Wenn Sie eine DNS-Lösung eines Drittanbieters zur Verwaltung Ihres DNS verwenden, lesen Sie die zugehörige Dokumentation, um den CNAME-Eintrag der DNS-Konfiguration hinzuzufügen. Wenn SieGoogle Cloud zum Verwalten Ihres DNS verwenden, führen Sie die Schritte in diesem Abschnitt aus.

Console

So erstellen Sie einen Datensatz:

  1. Rufen Sie in der Google Cloud Console die Seite DNS-Zonen auf.

    Cloud DNS-Zonen aufrufen

  2. Klicken Sie auf den Namen der DNS-Zone, der Sie den Eintrag hinzufügen möchten.

  3. Klicken Sie auf der Seite Zonendetails auf Standard hinzufügen.

  4. Geben Sie auf der Seite Eintrag erstellen im Feld DNS-Name die Subdomain der DNS-Zone ein.

    Achten Sie beim Eingeben des Subdomain-Namens darauf, dass der Subdomain-Name, einschließlich des ausgegrauten Texts im Feld DNS-Name, mit dem vollständigen Wert des Felds dnsResourceRecord.name übereinstimmt, wie er in der Ausgabe des Befehls gcloud certificate-manager dns-authorizations describe angezeigt wird.

    Betrachten Sie die folgenden Beispiele:

    • Wenn der Wert des Felds dnsResourceRecord.name _acme-challenge.myorg.example.com. ist und der ausgegraute Text im Feld DNS-Name .example.com. lautet, geben Sie _acme-challenge.myorg ein.

    • Wenn der Wert des Felds dnsResourceRecord.name _acme-challenge.myorg.example.com. ist und der ausgegraute Text im Feld DNS-Name .myorg.example.com. lautet, geben Sie _acme-challenge ein.

    • Wenn der Wert des Felds dnsResourceRecord.name _acme-challenge_ujmmovf2vn55tgye.myorg.example.com. ist und der ausgegraute Text im Feld DNS-Name .myorg.example.com. lautet, geben Sie _acme-challenge_ujmmovf2vn55tgye ein.

  5. Wählen Sie im Feld Ressourceneintragstyp die Option CNAME aus.

  6. Geben Sie im Feld TTL einen positiven numerischen Wert für die Gültigkeitsdauer des Ressourceneintrags ein, also den Zeitraum, den er im Cache gespeichert werden kann.

  7. Wählen Sie in der Liste TTL-Einheit die Zeiteinheit aus, z. B. 30 minutes.

  8. Geben Sie in das Feld Kanonischer Name den vollständigen Wert des Felds dnsResourceRecord.data ein, wie er in der Ausgabe des Befehls gcloud certificate-manager dns-authorizations describe angezeigt wird.

  9. Wenn Sie zusätzliche Informationen eingeben möchten, klicken Sie auf Element hinzufügen.

  10. Klicken Sie auf Erstellen.

gcloud

Wenn Sie eine DNS-Autorisierung erstellen, gibt der gcloud-Befehl den entsprechenden CNAME-Eintrag zurück. So fügen Sie den CNAME-Eintrag Ihrer DNS-Konfiguration in der DNS-Zone der Zieldomain hinzu:

  1. Starten Sie die Transaktion des DNS-Eintrags:

    gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
    

    Ersetzen Sie DNS_ZONE_NAME durch den Namen der Ziel-DNS-Zone.

  2. Fügen Sie den CNAME-Eintrag zur Ziel-DNS-Zone hinzu:

    gcloud dns record-sets transaction add CNAME_RECORD \
        --name="VALIDATION_SUBDOMAIN_NAME.DOMAIN_NAME." \
        --ttl="30" \
        --type="CNAME" \
        --zone="DNS_ZONE_NAME"
    

    Ersetzen Sie Folgendes:

    • CNAME_RECORD: Der vollständige Datenwert des CNAME-Eintrags, der vom Google Cloud CLI-Befehl zurückgegeben wurde, mit dem die entsprechende DNS-Autorisierung erstellt wurde.
    • VALIDATION_SUBDOMAIN_NAME: die Präfix-Subdomain der DNS-Zone, z. B. _acme-challenge. Sie können den Namen aus dem gcloud certificate-manager dns-authorizations describe-Befehlsprotokoll kopieren, wie unter DNS-Autorisierung erstellen beschrieben.
    • DOMAIN_NAME: Der Name der Zieldomain. Der Domainname muss ein voll qualifizierter Domainname sein, z. B. myorg.example.com. Sie dürfen den Punkt am Ende nach dem Zieldomainnamen nicht weglassen.
    • DNS_ZONE_NAME: der Name der Ziel-DNS-Zone.

    Sehen Sie sich folgendes Beispiel an:

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \
        --name="_acme-challenge.myorg.example.com." \
        --ttl="30" \
        --type="CNAME" \
        --zone="myorg-example-com"
    
  3. Führen Sie die Transaktion des DNS-Eintrags aus, um die Änderungen zu speichern:

    gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
    

    Ersetzen Sie DNS_ZONE_NAME durch den Namen der Ziel-DNS-Zone.

Terraform

Sie können eine google_dns_record_set-Ressource verwenden, um den CNAME-Eintrag Ihrer DNS-Konfiguration hinzuzufügen.

resource "google_dns_record_set" "cname" {
  name         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].name
  managed_zone = google_dns_managed_zone.default.name
  type         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].type
  ttl          = 300
  rrdatas      = [google_certificate_manager_dns_authorization.default.dns_resource_record[0].data]
}

DNS-Autorisierung aktualisieren

Wenn Sie eine DNS-Autorisierung aktualisieren, haben Sie folgende Möglichkeiten:

  • Neue Labels angeben
  • Geben Sie eine neue Beschreibung an.

gcloud

Verwenden Sie den Befehl certificate-manager dns-authorizations update, um eine DNS-Autorisierung zu aktualisieren:

gcloud certificate-manager dns-authorizations update AUTHORIZATION_NAME \
    [--update-labels="LABELS"] \
    [--description="DESCRIPTION"] \
    [--location="LOCATION"]

Ersetzen Sie Folgendes:

  • AUTHORIZATION_NAME: der Name der DNS-Autorisierung.
  • LABELS: Labels für diese DNS-Autorisierung. Dieses Flag ist optional.
  • DESCRIPTION: Beschreibung dieser DNS-Autorisierung. Dieses Flag ist optional.
  • LOCATION: den Ziel Google Cloud standort. Der Standardspeicherort ist global.

API

Aktualisieren Sie eine DNS-Autorisierung, indem Sie eine PATCH-Anfrage an die Methode dnsAuthorizations.patch stellen:

PATCH /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations/AUTHORIZATION_NAME?updateMask=labels,description"
{
    description: "DESCRIPTION",
    labels: { "LABEL_KEY": "LABEL_VALUE" }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: ID des Google Cloud-Projekts.
  • LOCATION: den Ziel Google Cloud standort. Der Standardspeicherort ist global.
  • AUTHORIZATION_NAME: der Name der DNS-Autorisierung.
  • DESCRIPTION: Ein optionales Feld, das die Beschreibung für diese DNS-Autorisierung angibt.
  • LABEL_KEY: Ein Labelschlüssel, der auf diese DNS-Autorisierung angewendet wird.
  • LABEL_VALUE: ein Labelwert, der auf diese DNS-Autorisierung angewendet wird.

DNS-Autorisierungen auflisten

Sie sehen alle DNS-Autorisierungen Ihres Projekts und die zugehörigen Details.

gcloud

Verwenden Sie den Befehl certificate-manager dns-authorizations list, um DNS-Autorisierungen aufzulisten:

gcloud certificate-manager dns-authorizations list \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY" \
    [--location="LOCATION"]

Ersetzen Sie Folgendes:

  • FILTER: Ein Ausdruck, der die zurückgegebenen Ergebnisse auf bestimmte Werte beschränkt.

    Sie können Ergebnisse beispielsweise nach folgenden Kriterien filtern:

    • Domain: --filter='domain=myorg.example.com'
    • Labels und Erstellungszeit: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Weitere Beispiele für Filter, die Sie mit Certificate Manager verwenden können, finden Sie in der Cloud Key Management Service-Dokumentation unter Listenergebnisse sortieren und filtern.

  • PAGE_SIZE: Die Anzahl der pro Seite zurückzugebenden Ergebnisse.

  • LIMIT: Die maximale Anzahl der zurückzugebenden Ergebnisse.

  • SORT_BY: eine durch Kommas getrennte Liste von name-Feldern, nach denen die zurückgegebenen Ergebnisse sortiert werden. Die Standardsortierreihenfolge ist aufsteigend. Um in absteigender Reihenfolge zu sortieren, müssen Sie dem Feld eine Tilde (~) voranstellen.

  • LOCATION: den Ziel Google Cloud standort. Der Standardspeicherort ist global.

API

So rufen Sie eine Liste aller konfigurierten DNS-Autorisierungen ab:GETdnsAuthorizations.list

GET /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

Ersetzen Sie Folgendes:

  • PROJECT_ID: ID des Google Cloud-Projekts.
  • LOCATION: den Ziel Google Cloud standort. Der Standardspeicherort ist global.
  • FILTER: Ein Ausdruck, der die zurückgegebenen Ergebnisse auf bestimmte Werte beschränkt.

    Sie können Ergebnisse beispielsweise nach folgenden Kriterien filtern:

    • Domain: --filter='domain=myorg.example.com'
    • Labels und Erstellungszeit: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
  • PAGE_SIZE: Die Anzahl der pro Seite zurückzugebenden Ergebnisse.

  • SORT_BY: Eine durch Kommas getrennte Liste von name-Feldern, nach denen die zurückgegebenen Ergebnisse sortiert werden. Die Standardsortierreihenfolge ist aufsteigend. Um in absteigender Reihenfolge zu sortieren, müssen Sie dem Feld eine Tilde (~) voranstellen.

DNS-Autorisierung löschen

Wenn Sie eine DNS-Autorisierung löschen möchten, die von Google verwalteten Zertifikaten zugewiesen ist, löschen Sie zuerst die Zertifikate.

gcloud

Verwenden Sie den Befehl certificate-manager dns-authorizations delete, um eine DNS-Autorisierung zu löschen:

gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME \
    [--location="LOCATION"]

Ersetzen Sie Folgendes:

  • AUTHORIZATION_NAME: der Name der DNS-Autorisierung.
  • LOCATION: den Ziel Google Cloud standort. Der Standardspeicherort ist global.

API

So löschen Sie eine DNS-Autorisierung: Senden Sie eine DELETE-Anfrage an die Methode dnsAuthorizations.delete:

DELETE /v1/projects/PROJECT_ID/locations/LOCATION>/dnsAuthorizations/AUTHORIZATION_NAME

Ersetzen Sie Folgendes:

  • PROJECT_ID: ID des Google Cloud-Projekts.
  • LOCATION: den Ziel Google Cloud standort. Der Standardspeicherort ist global.
  • AUTHORIZATION_NAME: der Name der DNS-Autorisierung.

Nächste Schritte