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. Maximieren Sie im Abschnitt Autorisierte Netzwerke die Option Neuer IP-Bereich.
  7. Geben Sie im Feld Name einen Namen für den Neuen IP-Bereich ein.
  8. Geben Sie im Feld IP-Bereich die öffentliche IPv4-Adresse oder den Adressbereich ein, von dem aus Sie Verbindungen zulassen möchten.
    Klicken Sie alternativ auf Meine IP-Adresse verwenden, damit Cloud SQL die IPv4-Adresse des Clientcomputers, von dem aus Sie auf Google Cloudzugreifen, automatisch einfügt.
    Die Option Meine IP-Adresse verwenden ist für Clients mit IPv6-Adressen nicht verfügbar.

    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" "instance" {
  name             = "mysql-instance-with-authorized-network"
  region           = "us-central1"
  database_version = "MYSQL_8_0"
  settings {
    tier = "db-f1-micro"
    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 Standardprojekt Google Cloud 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.
  • Cloud SQL unterstützt keine autorisierten IPv6-Netzwerke. Wenn auf Ihrem Clientcomputer das IPv6-Protokoll verwendet wird, ist die optionale Schaltfläche Meine IP-Adresse verwenden auf dem Tab Netzwerk der Google Cloud -Konsole nicht verfügbar.
  • Wenn Sie ein VPN oder einen Proxyserver verwenden, wird mit der Option Meine IP-Adresse verwenden nicht die tatsächliche IP-Adresse des Clientcomputers angezeigt. Dies geschieht absichtlich.

Nächste Schritte