Mit autorisierten Netzwerken autorisieren

Auf dieser Seite wird gezeigt, wie Sie mithilfe der Einstellungen für autorisierte Netzwerke eine Verbindung zu Cloud SQL-Instanzen herstellen, die IP-Adressen verwenden.

Autorisierte Netzwerke konfigurieren

Die IP-Adresse oder der Adressbereich Ihrer Clientanwendung muss für die folgenden Szenarien als authorized networks konfiguriert sein:

  • Die Clientanwendung stellt über ihre öffentliche IP-Adresse eine direkte Verbindung zu einer Cloud SQL-Instanz her.
  • Ihre Clientanwendung stellt eine direkte Verbindung zu einer Cloud SQL-Instanz über ihre private IP-Adresse her und die IP-Adresse Ihres Clients ist eine Adresse außerhalb des RFC 1918-Bereichs.

Die IP-Adresse kann entweder ein einzelner Endpunkt oder ein Bereich in CIDR-Notation sein.

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
  3. Wählen Sie im SQL-Navigationsmenü die Option Verbindungen aus.
  4. Klicken Sie auf den Tab Netzwerk.
  5. Wählen Sie das Kästchen Öffentliche IP-Adressen aus.
  6. Klicken Sie auf Netzwerk hinzufügen.
  7. Geben Sie im Feld Name einen Namen für Neues Netzwerk ein.
  8. Geben Sie im Feld Netzwerk die öffentliche IPv4-Adresse oder den Adressbereich ein, von dem aus Sie Verbindungen zulassen möchten.

    Für den Adressbereich müssen Sie eine gültige CIDR-Notation verwenden (z. B. 10.10.10.0/24).

  9. Klicken Sie auf Fertig.
  10. Klicken Sie auf Speichern.

gcloud

Die Konfiguration autorisierter Netzwerke ersetzt die vorhandene Liste autorisierter Netzwerke.

gcloud sql instances patch INSTANCE_ID \
--authorized-networks=NETWORK_RANGE_1,NETWORK_RANGE_2...
    

Terraform

Verwenden Sie eine Terraform-Ressource, um autorisierte Netzwerke zu konfigurieren.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance-with-authorized-network"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
    ip_configuration {
      authorized_networks {
        name            = "Network Name"
        value           = "192.0.2.0/24"
        expiration_time = "3021-11-15T16:19:00.094Z"
      }
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Änderungen anwenden

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.

Cloud Shell vorbereiten

  1. Rufen Sie Cloud Shell auf.
  2. Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.

    Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.

Verzeichnis vorbereiten

Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).

  1. Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung .tf haben, z. B. main.tf. In dieser Anleitung wird die Datei als main.tf bezeichnet.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.

    Kopieren Sie den Beispielcode in das neu erstellte main.tf.

    Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.

  3. Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
  4. Speichern Sie die Änderungen.
  5. Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
    terraform init

    Fügen Sie optional die Option -upgrade ein, um die neueste Google-Anbieterversion zu verwenden:

    terraform init -upgrade

Änderungen anwenden

  1. Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
    terraform plan

    Korrigieren Sie die Konfiguration nach Bedarf.

  2. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply

    Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.

  3. Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

Änderungen löschen

So löschen Sie das Projekt:

  1. Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument deletion_protection auf false.
    deletion_protection =  "false"
  2. Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply
  1. Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und yes an der Eingabeaufforderung eingeben:

    terraform destroy

REST Version 1

Die Konfiguration autorisierter Netzwerke ersetzt die vorhandene Liste autorisierter Netzwerke.

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID
  • network_range_1: eine autorisierte IP-Adresse oder ein autorisierter IP-Bereich
  • network_range_2: eine weitere autorisierte IP-Adresse oder ein weiterer autorisierter IP-Bereich

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON-Text anfordern:

{
  "settings":
  {
    "ipConfiguration":
    {
      "authorizedNetworks":
        [{"value": "network_range_1"}, {"value": "network_range_2"}]
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

REST v1beta4

Die Konfiguration autorisierter Netzwerke ersetzt die vorhandene Liste autorisierter Netzwerke.

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID
  • network_range_1: eine autorisierte IP-Adresse oder ein autorisierter IP-Bereich
  • network_range_2: eine weitere autorisierte IP-Adresse oder ein weiterer autorisierter IP-Bereich

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON-Text anfordern:

{
  "settings":
  {
    "ipConfiguration":
    {
      "authorizedNetworks":
        [{"value": "network_range_1"}, {"value": "network_range_2"}]
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

Beschränkungen

Einige IP-Adressbereiche können nicht als autorisierte Netzwerke hinzugefügt werden.

Adressbereich Hinweise
10.0.0.0/8 RFC 1918-Adressbereich. Diese Adressen werden von Cloud SQL automatisch und implizit in die autorisierten Netzwerke aufgenommen.
172.16.0.0/12 RFC 1918-Adressbereich. Diese Adressen werden von Cloud SQL automatisch und implizit in die autorisierten Netzwerke aufgenommen.
192.168.0.0/16 RFC 1918-Adressbereich. Diese Adressen werden von Cloud SQL automatisch und implizit in die autorisierten Netzwerke aufgenommen.

Nächste Schritte