Zonales DNS als Standard für neue Projekte festlegen


In diesem Dokument wird beschrieben, wie Sie Ihre interne DNS-Richtlinie so aktualisieren, dass für neue Projekte zonales DNS verwendet wird. Zonales DNS verbessert die Zuverlässigkeit von Anwendungen, indem Ausfälle innerhalb von Zonen isoliert werden, um Unterbrechungen bei kritischen Diensten wie der Instanzerstellung und der automatischen Fehlerbehebung zu vermeiden.

Hinweise

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aufrufen der organisationsweiten internen DNS-Nutzung und zum Aktualisieren der Standardrichtlinie benötigen:

  • Prüfen Sie die Standardrichtlinie für globales DNS: Organization Policy Administrator (roles/orgpolicy.policyAdmin) für den Ordner oder die Organisation
  • Prüfen, ob ein Ordner für die Migration zu zonalem DNS bereit ist: Browser (roles/browser) für den Ordner oder die Organisation

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Aufrufen der organisationsweiten internen DNS-Nutzung und zum Aktualisieren der Standardrichtlinie erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um die organisationsweite interne DNS-Nutzung aufzurufen und die Standardrichtlinie zu aktualisieren:

  • Legen Sie eine Einschränkung für die Organisationsrichtlinie fest: orgpolicy.*
  • Ermitteln, ob ein Ordner für die Migration zu zonalem DNS bereit ist:
    • resourcemanager.folders.get
    • resourcemanager.folders.list
    • resourcemanager.organizations.get
    • resourcemanager.projects.get
    • resourcemanager.projects.list
  • Prüfen Sie, ob globale DNS-Namen und VM-Metadaten vorhanden sind: compute.projects.get

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Konfiguration – Übersicht

Wenn Sie eine Organisationsrichtlinie festlegen, um den internen DNS-Standardtyp zu überschreiben, verwenden neu erstellte Projekte standardmäßig zonales DNS. Die Organisationsrichtlinie wirkt sich nicht auf vorhandene Projekte aus, in denen die Compute Engine API bereits aktiviert ist. Informationen zum Umstellen vorhandener Projekte auf die Verwendung des zonalen DNS finden Sie unter Vorhandene Projekte auf zonales DNS umstellen.

Wir empfehlen, eine zonale DNS-Richtlinie auf Organisationsebene durchzusetzen. So wird sichergestellt, dass alle neuen Projekte, die in Ihrer Organisation erstellt werden, zonales DNS verwenden. Dadurch werden Zuverlässigkeit und Ausfallsicherheit verbessert. Möglicherweise müssen Sie einige Ordner jedoch von dieser organisationsweiten Richtlinie ausnehmen. Ordner müssen ausgenommen werden, wenn neue Projekte in diesen Ordnern von vorhandenen Projekten abhängen, die nicht mit zonalem DNS kompatibel sind.

Das Erzwingen einer zonalen DNS-Richtlinie auf Organisationsebene umfasst die folgenden Schritte:

  1. Liste der Projekte und Ordner erstellen: Erstellen Sie eine Liste aller Projekte und der zugehörigen Ordner in Ihrer Organisation.
  2. Ordner für die Ausnahme festlegen: Suchen Sie die Ordner mit den in Schritt 1 aufgeführten inkompatiblen Projekten. Diese Ordner müssen vorübergehend von der zonalen DNS-Richtlinie ausgenommen werden.
  3. Organisationsrichtlinie festlegen: Die zonale DNS-Richtlinie auf Organisationsebene erzwingen.
  4. Bestimmte Ordner ausnehmen: Wenden Sie Ausnahmen auf die in Schritt 3 identifizierten Ordner an. So können sie weiterhin globales DNS verwenden, während Sie die inkompatiblen Projekte beheben.

So wird sichergestellt, dass neue Projekte zonales DNS für eine verbesserte Zuverlässigkeit nutzen, während gleichzeitig bestehende Abhängigkeiten von älteren Projekten berücksichtigt werden, die möglicherweise nicht sofort migriert werden können.

Beschränkungen

Wenn Sie zonale DNS-Namen für Ihre gesamte Organisation aktivieren, werden die zonalen DNS-Einstellungen auf Instanzen in anderen Diensten angewendet, z. B.:

Prüfen Sie, ob Ihre Anwendungen einen dieser Dienste verwenden, und identifizieren Sie mithilfe der Abfrageanalyse Kompatibilitätsprobleme mit zonalem DNS für die Ordner und Projekte, die mit diesen Anwendungen verknüpft sind.

Prüfen, ob Ihre Organisation standardmäßig globales DNS verwendet

Die Standard-DNS-Einstellung für Ihre Organisation hängt von zwei Faktoren ab:

  • Das Erstellungsdatum der Organisation:

    • Nach dem 6. September 2018 erstellt: Ihre Organisation verwendet standardmäßig zonales DNS. Sie müssen dann nichts weiter tun.
    • Vor dem 6. September 2018 erstellt: Ihre Organisation verwendet standardmäßig globales DNS. Sie sollten eine Migration zu zonalem DNS in Betracht ziehen.
  • Das Vorhandensein und die Erzwingung einer Einschränkung der Organisationsrichtlinie:

    Auch wenn Ihre Organisation vor dem 6. September 2018 erstellt wurde, hat ein Administrator möglicherweise eine Richtlinie erzwungen, die die Verwendung von zonalem DNS für alle neuen Projekte vorsieht, die innerhalb der Organisation erstellt werden. Mit der Google Cloud Console oder der Google Cloud CLI können Sie prüfen, ob eine solche Richtlinie vorhanden ist.

Console

  1. Gehen Sie zu IAM und Verwaltung> Identität und Organisation in der Console.

    Zu „Identität und Organisation“

  2. Prüfen Sie das Datum der Registrierung der Organisation.

    Ein Screenshot der Seite „Identität und Organisation“ mit dem Datum der Registrierung

  3. Wenn Ihre Organisation vor dem 6. September 2018 erstellt wurde, prüfen Sie, ob eine Organisationsrichtlinieneinschränkung den Standard-DNS-Typ für alle neu erstellten Projekte auf zonales DNS setzt.

    1. Rufen Sie in der Google Cloud Console die Seite IAM & Verwaltung> Organisationsrichtlinien auf.
    2. Geben Sie im Filter constraints/compute.setNewProjectDefaultToZonalDNSOnly ein:
    3. Wenn die Einschränkung konfiguriert ist, klicken Sie auf den Namen Legt die interne DNS-Einstellung für neue Projekte so fest, dass nur zonales DNS verwendet wird.
    4. Prüfen Sie auf der Seite Richtliniendetails den Status.
      • Wenn der Status Erzwungen lautet, ist der interne DNS-Standardtyp für alle neuen Projekte, die in der Organisation erstellt werden, zonales DNS.
      • Andernfalls wird der Standard-DNS-Typ des Projekts weiterhin durch die Erstellungszeit der Organisation bestimmt.
    5. Wenn die Einschränkung nicht für die Organisation konfiguriert wurde, wird der Standard-DNS-Typ für das Projekt anhand des Erstellungsdatums der Organisation bestimmt.

gcloud

Verwenden Sie den Befehl organizations describe und den Befehl resource-manager org-policies list, um den Standard-DNS-Typ für eine Organisation zu ermitteln.

  1. Prüfen Sie den Metadatenwert creationTime der Organisation.

    gcloud organizations describe ORGANIZATION_ID
    

    Ersetzen Sie ORGANIZATION_ID durch die Organisations-ID oder den Domainnamen der Organisation.

  2. Wenn Ihre Organisation vor dem 6. September 2018 erstellt wurde, prüfen Sie, ob eine Organisationsrichtlinieneinschränkung den Standard-DNS-Typ für alle neu erstellten Projekte auf zonales DNS setzt.

    gcloud resource-manager org-policies list --organization=ORGANIZATION_ID \
       --filter="constraints/compute"
    

    Suchen Sie in der Ausgabe nach constraints/compute.setNewProjectDefaultToZonalDNSOnly.

    1. Wenn die Einschränkung vorhanden ist und Status Enforced ist, verwenden alle neu in der Organisation erstellten Projekte standardmäßig zonales DNS.
    2. Wenn die Einschränkung nicht vorhanden oder nicht erzwungen ist, wird der Standard-DNS-Typ durch das Erstellungsdatum der Organisation bestimmt, wie im ersten Schritt beschrieben.

Festlegen, welche Projekte in einem Ordner oder einer Organisation ein globales DNS verwenden.

Wenn Sie herausfinden möchten, welche Projekte das globale DNS verwenden, empfehlen wir, in BigQuery eine Tabelle mit den zugehörigen Projekten für Ihre Organisation und ihren Metadaten zu erstellen. Sie können dann mit dieser Tabelle eine Abfrage ausführen.

  1. Erstellen Sie ein BigQuery-Dataset.
  2. Exportieren Sie die Asset-Metadaten für Ihre Organisation in eine BigQuery-Tabelle.

    1. Prüfen Sie, ob die Cloud Asset Inventory API aktiviert ist.
    2. Konfigurieren Sie die Berechtigungen, die für die Verwendung der Cloud Asset Inventory API erforderlich sind.
    3. Verwenden Sie den folgenden gcloud-Befehl, um das compute.googleapis.com/Project-Asset zu exportieren:

      gcloud asset export \
         --content-type resource \
         --organization 'ORGANIZATION_ID' \
         --bigquery-table 'projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME' \
         --asset-types='compute.googleapis.com/Project' \
         --output-bigquery-force
      

      Ersetzen Sie Folgendes:

      • ORGANIZATION_ID: die Organisations-ID
      • PROJECT_ID: die Projekt-ID
      • DATASET_ID: den Namen des BigQuery-Datasets
      • TABLE_NAME: die Tabelle, in die Sie Ihre Metadaten exportieren. Wenn die Tabelle nicht vorhanden ist, wird sie in BigQuery erstellt.
  3. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

  4. Klicken Sie auf Neue Abfrage erstellen.

  5. Geben Sie im Textfeld des Abfrageeditors die folgende GoogleSQL-Abfrage ein und klicken Sie auf  Ausführen.

    SELECT
      JSON_VALUE(SAFE.PARSE_JSON(resource.data).vmDnsSetting) AS vmDnsSetting,
      count(*) as project_count
    FROM PROJECT_ID.DATASET_ID.TABLE_NAME
    GROUP BY 1
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID
    • DATASET_ID: den Namen des BigQuery-Datasets
    • TABLE_NAME: die Tabelle, die die exportierten Metadaten enthält, aus Schritt 2.

    Bei Projekten mit dem Wert ZONAL_ONLY für vmDnsSetting ist ein zonales DNS konfiguriert. Andernfalls wird für die Projekte standardmäßig globales DNS verwendet.

  6. Optional: Wenn Sie eine detaillierte Ansicht der vmDnsSetting für jedes Projekt aufrufen möchten, geben Sie die folgende GoogleSQL-Abfrage ein und klicken Sie dann auf  Ausführen.

    SELECT
      SUBSTR(name,35) as project_id,
      JSON_VALUE(SAFE.PARSE_JSON(resource.data).vmDnsSetting) AS vmDnsSetting
    FROM PROJECT_ID.DATASET_ID.TABLE_NAME
    

Migrationsbereitschaft eines Ordners ermitteln

In diesem Schritt werden ein bash-Script und die im vorherigen Abschnitt erstellte BigQuery-Tabelle verwendet, um die Migrationsbereitschaft des Ordners zu ermitteln.

  • Der Ordner ist bereit, wenn in den letzten 30 Tagen keine Abfragen für alle Projekte ausgeführt wurden, die nicht mit zonalem DNS kompatibel sind.
  • Wenn ein Ordner nicht für die Migration bereit ist, antwortet das Script mit den Projekt-IDs in dem Ordner, die verhindern, dass der Ordner für die Migration bereit ist. Die Projekte in dieser Ergebnisliste sind noch nicht mit zonalem DNS kompatibel und erfordern weitere Maßnahmen.

Gehen Sie folgendermaßen vor:

  1. Rufen Sie die Ordner-ID ab. Wenn Sie die Ordner-ID nicht kennen, gehen Sie so vor:
    1. Rufen Sie in der Google Cloud Console die Seite Verwaltete Ressourcen auf.
    2. Wenden Sie den Filter Name:FOLDER_NAME an, um die Ordner-ID abzurufen.
  2. Stellen Sie eine Abfrage an die BigQuery-Tabelle mit den exportierten compute.Project assets-Daten.

    Eine Anleitung zum Erstellen der BigQuery-Tabelle finden Sie unter Festlegen, welche Projekte in einem Ordner oder einer Organisation ein globales DNS verwenden.

    Geben Sie die folgende GoogleSQL-Abfrage ein und klicken Sie auf  Ausführen:

    SELECT
      SUBSTR(name,35) AS project_id,
    FROM PROJECT_ID.DATASET_ID.TABLE_NAME
    WHERE CONTAINS_SUBSTR(ancestors, 'FOLDER_NUMBER')
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID
    • DATASET_ID: den Namen des BigQuery-Datasets
    • TABLE_NAME: die Tabelle mit den exportierten Metadaten.
    • FOLDER_NUMBER: die Ordner-ID
  3. Kopieren Sie die Liste der Projekt-IDs und speichern Sie sie in einer Datei.

  4. Führen Sie das folgende Script bash aus: Das Script durchläuft die Projekt-IDs in der gespeicherten Datei, um festzustellen, ob ein Ordner für die Migration bereit ist.

#!/bin/bash
inaccessible_projects=()
unready_projects=()

for project in $(cat ~/FILENAME | tr '\n' ' '); do
  echo -e "Checking project $project..."
  ERROR=`curl -s --request POST "https://monitoring.googleapis.com/v3/projects/$project/timeSeries:query"   -H "Authorization: Bearer $(gcloud auth print-access-token)"   -H "Accept: application/json"   -H "Content-Type: application/json"   --data '{"query":"fetch compute.googleapis.com/Location | metric '"'"'compute.googleapis.com/global_dns/request_count'"'"' | filter metric.zonal_dns_readiness = '"'"'zonal_dns_risky'"'"' | every 30d | within 30d"}'   --compressed | jq --raw-output '.error'`
  if ! [[ "$ERROR" -eq "null" ]]; then
    inaccessible_projects+=($project)
    continue
  fi
  QUERY_COUNT=`curl -s --request POST "https://monitoring.googleapis.com/v3/projects/$project/timeSeries:query"   -H "Authorization: Bearer $(gcloud auth print-access-token)"   -H "Accept: application/json"   -H "Content-Type: application/json"   --data '{"query":"fetch compute.googleapis.com/Location | metric '"'"'compute.googleapis.com/global_dns/request_count'"'"' | filter metric.zonal_dns_readiness = '"'"'zonal_dns_risky'"'"' | every 30d | within 30d"}'   --compressed | jq --raw-output '.timeSeriesData[0].pointData[0].values[0].int64Value'`
  if [[ "$QUERY_COUNT" -ne "null" ]] && [[ "$QUERY_COUNT" -ne "0" ]]; then
    unready_projects+=($project)
  fi
done

error_len=${#inaccessible_projects[@]}
unready_len=${#unready_projects[@]}

echo -e "$error_len projects were inaccessible"
echo -e "$unready_len projects were not ready for migration"

if [ $error_len -ne 0 ]; then
  echo "Unable to access the following projects:"
  for project in "${inaccessible_projects[@]}"; do
    echo "$project"
  done
fi
if [ $unready_len -ne 0 ]; then
  echo "The following projects are not ready for migration:"
  for project in "${unready_projects[@]}"; do
    echo "$project"
  done
fi

if (( $error_len + $unready_len > 0 )); then
  echo "This folder is NOT ready for gDNS -> zDNS migration."
else
  echo "This folder is ready for gDNS -> zDNS migration."
fi

Ersetzen Sie FILENAME durch den Namen der Datei, in der Sie die Liste der Projekt-IDs gespeichert haben.

Teilen Sie die Ergebnisse der Migrationsbereitschaftsanalyse mit den Projektinhabern:

Ausgenommene Ordner, die nicht zu zonalem DNS migriert werden können

Wenn Sie einen Ordner von der Organisationsrichtlinie ausnehmen möchten, führen Sie die folgenden Schritte aus, um die Erzwingungsoption für die Richtlinie auf Ordnerebene auf Off festzulegen.

  1. Melden Sie sich in der Google Cloud Console als Super Admin für Google Workspace oder Cloud Identity an.
  2. Wechseln Sie in der Konsole zur Seite Organisationsrichtlinien.

    Zu den Organisationsrichtlinien

  3. Klicken Sie auf Auswählen und wählen Sie die Ordner aus, die von der Organisationsrichtlinie ausgenommen werden sollen.

    In der Google Cloud Console wird auf einer oder mehreren Seiten eine Liste der Einschränkungen für Organisationsrichtlinien für diesen Ordner angezeigt.

  4. So ermitteln Sie die Einschränkung der Organisationsrichtlinie, die das zonale DNS erzwingt:

    1. Klicken Sie auf Filtern.
    2. Name auswählen.
    3. Legen Sie den Filternamen auf Legt die interne DNS-Einstellung für neue Projekte so fest, dass nur zonales DNS verwendet wird fest.
  5. Klicken Sie auf den Namen der Einschränkung der Organisationsrichtlinie, um die Seite Richtliniendetails zu öffnen.

  6. Klicken Sie auf Bearbeiten.

  7. Wählen Sie auf der Seite Bearbeiten die Option Anpassen aus.

  8. Wählen Sie unter Erzwingung die Option Aus aus, um die Erzwingung der Einschränkung zu deaktivieren. Das bedeutet, dass der interne DNS-Standardtyp für alle Projekte im Ordner durch das Erstellungsdatum der Organisation bestimmt wird.

  9. Klicken Sie auf Speichern.

Weitere Informationen zum Anpassen von Einschränkungen für Organisationsrichtlinien finden Sie in der Resource Manager-Dokumentation unter Richtlinien für boolesche Einschränkungen anpassen.

Zonales DNS standardmäßig für neue Projekte erzwingen

Gehen Sie so vor, um die Organisationsrichtlinie für einen Ordner oder eine Organisation festzulegen:

  1. Melden Sie sich in der Google Cloud Console als Super Admin für Google Workspace oder Cloud Identity an.

  2. Wechseln Sie in der Konsole zur Seite Organisationsrichtlinien.

    Zu den Organisationsrichtlinien

  3. Wählen Sie den Ordner oder die Organisation aus, für die Sie Organisationsrichtlinien aufrufen möchten. In der Google Cloud Console wird eine Liste der verfügbaren Einschränkungen für Organisationsrichtlinien angezeigt. Die Liste kann mehrere Seiten umfassen.

  4. Um die Richtlinie zum Erzwingen des zonalen DNS zu ermitteln, klicken Sie auf Filter und wählen Sie Name aus. Setzen Sie dann den Filternamen auf Legt die interne DNS-Einstellung für neue Projekte so fest, dass nur zonales DNS verwendet wird.

  5. Klicken Sie auf den Richtliniennamen, um die Details aufzurufen.

    Auf der Seite „Richtliniendetails“ finden Sie Informationen zur Einschränkung und zur aktuellen Anwendung der Einschränkung.

    Standardmäßig ist die Erzwingung für einen Ordner oder eine Organisation nicht definiert. Wenn jedoch ein übergeordneter Ordner eine definierte Erzwingung hat, wird die Erzwingung vom nächstgelegenen übergeordneten Ordner übernommen, der eine definierte Erzwingung hat. Weitere Informationen finden Sie unter Informationen zu Evaluierungen der Hierarchie.

  6. Klicken Sie auf Bearbeiten, um die Organisationsrichtlinie anzupassen.

  7. Wählen Sie auf der Bearbeitungsseite Anpassen aus.

  8. Wählen Sie unter Erzwingung die Option An aus.

    Dadurch wird der interne DNS-Standardtyp für alle neuen Projekte in der Organisation auf zonales DNS festgelegt.

  9. Klicken Sie auf Speichern.

Wenn Sie die Änderung der Organisationsrichtlinie validieren möchten, können Sie ein neues Projekt in dem Ordner oder der Organisation erstellen, dann eine VM-Instanz erstellen und starten sowie prüfen, ob Ihre VM für zonales DNS aktiviert ist.

Wenn das interne globale DNS erforderlich ist, um eine in Ihrer Arbeitslast integrierte DNS-Namensabfrage aufzulösen, können Sie diese Änderung auf Organisations- oder Ordnerebene rückgängig machen, indem Sie die Erzwingung deaktivieren.

Zur Verwendung des globalen DNS für eine Organisation oder einen Ordner zurückkehren

Wenn Sie für eine Organisation oder einen Ordner wieder das globale DNS verwenden möchten, beenden Sie die Erzwingung der Organisationsrichtlinie für zonales DNS. Gehen Sie folgendermaßen vor:

  1. Deaktivieren Sie die Organisationsrichtlinieconstraints/compute.setNewProjectDefaultToZonalDNSOnly auf Organisations- oder Ordnerebene. Eine Anleitung zum Ändern dieser Richtlinie finden Sie unter Zonales DNS standardmäßig für neue Projekte erzwingen.

    Legen Sie die Erzwingung der Richtlinie Legt die interne DNS-Einstellung für neue Projekte so fest, dass nur zonales DNS verwendet wird auf Aus fest.

  2. Wenn Sie für die gesamte Organisation wieder zum globalen DNS zurückkehren möchten, prüfen Sie, ob für keinen der Ordner in der Organisation die Organisationsrichtlinie constraints/compute.setNewProjectDefaultToZonalDNSOnly erzwungen wird.

  3. Wie Sie prüfen, ob globales DNS für Ihre Projekte und Instanzen konfiguriert ist, erfahren Sie unter Festlegen, welche Projekte in einem Ordner oder einer Organisation ein globales DNS verwenden.

Nächste Schritte