Zugriff auf private Dienste konfigurieren

In diesem Dokument wird beschrieben, wie Sie private IP-Verbindungen zu Ihrer Cloud SQL-Instanz mit Zugriff auf private Dienste einrichten.

Hinweis

Cloud SQL erfordert für jedes VPC-Netzwerk, das für private IP-Verbindungen verwendet wird, den Zugriff auf private Dienste.

Erforderliche APIs aktivieren

Aktivieren Sie die Service Networking API (servicenetworking.googleapis.com) und die Compute Engine API (compute.googleapis.com) in dem Projekt, in dem Ihre Cloud SQL-Instanz gehostet wird.

Wenn Sie ein gemeinsam genutztes VPC-Netzwerk verwenden, müssen Sie diese APIs auch im Hostprojekt der freigegebene VPC aktivieren.

Sie können die APIs mit dem folgenden Befehl aktivieren:

gcloud services enable servicenetworking.googleapis.com compute.googleapis.com --project=PROJECT_ID

Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID (oder die ID des freigegebene VPC-Hostprojekts).

Wenn die Service Networking API nicht aktiviert ist, schlägt der Vorgang beim Erstellen der Cloud SQL-Instanz mit einer privaten IP-Adresse mit dem Fehler SERVICE_NETWORKING_NOT_ENABLED fehl.

Erforderliche Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute-Netzwerkadministrator (roles/compute.networkAdmin) für das Projekt zuzuweisen, in dem Ihre Cloud SQL-Instanz gehostet wird, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwalten einer Verbindung für den Zugriff auf private Dienste benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen und Verwalten einer Verbindung für den Zugriff auf private Dienste erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um eine Verbindung für den Zugriff auf private Dienste zu erstellen und zu verwalten:

  • compute.addresses.create
  • compute.addresses.list
  • compute.globalAddresses.create
  • compute.globalAddresses.createInternal
  • compute.globalAddresses.list
  • compute.networks.list
  • compute.networks.use
  • servicenetworking.services.addPeering
  • serviceusage.services.list

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

Wenn Sie ein gemeinsam genutztes VPC-Netzwerk verwenden, müssen Sie dem Nutzer im Hostprojekt der freigegebene VPC auch die Rolle „Compute-Netzwerkadministrator“ (roles/compute.networkAdmin) zuweisen.

Privaten Dienstzugriff für Cloud SQL konfigurieren

Die Konfiguration des Zugriffs auf private Dienste besteht aus zwei Teilen:

  • Wählen Sie einen vorhandenen IP-Adressbereich aus oder weisen Sie einen neuen zu.

    Wenn Sie Ihre Cloud SQL-Instanz in der Google Cloud -Konsole erstellen, haben Sie auch die Möglichkeit, Google einen IP-Adressbereich für Sie zuweisen zu lassen. In diesem Fall weist Google automatisch einen IP-Bereich mit der Präfixlänge /24 zu und verwendet den Namen default-ip-range.

    Wenn Sie Cloud SQL-Instanzen in mehreren Regionen oder für verschiedene Datenbanktypen erstellen möchten, müssen Sie für jede Region oder jeden Datenbanktyp mindestens einen /24-IP-Adressbereich haben. Dies schließt andere Anwendungen wie Filestore oder Memorystore ein. Für eine neue Region oder einen neuen Datenbanktyp muss Cloud SQL einen verfügbaren /24-Bereich haben.

  • Erstellen Sie die Private Service Connect-Verbindung von Ihrem VPC-Netzwerk zum Netzwerk des Diensterstellers.

Informationen zu den Anforderungen an die Netzwerk- und Anwendungsumgebung sowie zu den IAM-Berechtigungen, die für den Zugriff auf private Dienste erforderlich sind, finden Sie unter Anforderungen für private IP-Verbindungen.

IP-Adressbereich zuweisen

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten.
  3. Wählen Sie den Tab Zugriff auf private Dienste aus.
  4. Wählen Sie den Tab Diensten zugewiesene IP-Bereiche aus.
  5. Klicken Sie auf IP-Bereich zuweisen.
  6. Geben Sie als Name des zugewiesenen Bereichs google-managed-services-VPC_NETWORK_NAME an, wobei VPC_NETWORK_NAME der Name des VPC-Netzwerks ist, mit dem Sie eine Verbindung herstellen, beispielsweise google-managed-services-default. Die Beschreibung ist optional.
  7. Wählen Sie die Option Benutzerdefiniert aus und geben Sie dann den IP-Adressbereich, der zugewiesen werden soll, in der CIDR-Notation ein.
  8. Klicken Sie auf Zuweisen, um den zugewiesenen Bereich zu erstellen.

gcloud

Führen Sie einen der folgenden Schritte aus:

  • Legen Sie einen Adressbereich und eine Präfixlänge (Subnetzmaske) mit den Flags addresses und prefix-length fest. Wenn Sie beispielsweise den CIDR-Block 192.168.0.0/16 zuordnen möchten, geben Sie 192.168.0.0 für die Adresse und 16 für die Präfixlänge an.
  •     gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
           --global \
           --purpose=VPC_PEERING \
           --addresses=192.168.0.0 \
           --prefix-length=16 \
           --network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
        
  • Wenn Sie nur eine Präfixlänge (Subnetzmaske) festlegen möchten, verwenden Sie das Flag prefix-length. Wenn Sie den Adressbereich weglassen,wählt Google Cloudautomatisch einen nicht verwendeten Adressbereich in Ihrem VPC-Netzwerk aus. In diesem Beispiel wird ein nicht verwendeter IP-Adressbereich mit einer Präfixlänge von 16 Bit ausgewählt.
  •   gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
      

Ersetzen Sie VPC_NETWORK_NAME durch den Namen Ihres VPC-Netzwerks, beispielsweise mit my-vpc-network.

In diesem Beispiel wird ein IP-Bereich zugewiesen, mit dem Ressourcen im VPC-Netzwerk my-vpc-network über private IP-Adressen eine Verbindung zu Cloud SQL-Instanzen herstellen können.

  gcloud compute addresses create google-managed-services-my-vpc-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --network=projects/myprojectid/global/networks/myvpcnetwork \
    --project=my-project
    

Terraform

Verwenden Sie zum Zuweisen eines IP-Adressbereichs eine Terraform-Ressource.

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

Ä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

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

Private Verbindung erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten.
  3. Wählen Sie den Tab Private Dienstverbindung aus.
  4. Wählen Sie den Tab Private Verbindungen zu Diensten aus.
  5. Klicken Sie auf Verbindung erstellen, um eine private Verbindung zwischen Ihrem Netzwerk und einem Dienstersteller herzustellen.
  6. Wählen Sie für Zugewiesene Bereiche einen oder mehrere vorhandene zugewiesene Bereiche aus, die nicht von anderen Diensterstellern verwendet werden.
  7. Klicken Sie auf Verbinden, um die Verbindung herzustellen.

gcloud

  1. Erstellen Sie eine Verbindung für den Zugriff auf private Dienste für das VPC-Netzwerk in Ihrem Projekt.

    gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-VPC_NETWORK_NAME \
    --network=VPC_NETWORK_NAME \
    --project=PROJECT_ID

    Der Befehl initiiert einen Cloud SQL-Instanzvorgang mit langer Laufzeit und erstellt einen Vorgangs-ID.

  2. Prüfen Sie, ob der Vorgang erfolgreich war.

    gcloud services vpc-peerings operations describe \
    --name=OPERATION_ID

Sie können mehr als einen zugewiesenen Bereich angeben, wenn Sie eine private Verbindung erstellen. Wenn beispielsweise ein Bereich aufgebraucht ist, können Sie zusätzliche zugewiesene Bereiche zuordnen. Der Dienst verwendet IP-Adressen aus allen bereitgestellten Bereichen in der von Ihnen angegebenen Reihenfolge.

Terraform

Verwenden Sie zum Erstellen einer privaten Verbindung eine Terraform-Ressource.

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

Einem Dienstkonto im Format service-HOST_PROJECT_NUMBER@service-networking. wird die Rolle servicenetworking.serviceAgent zugewiesen, während die private Verbindung erstellt wird, da das Konto Just-in-Time bereitgestellt wird.

Wenn ein Fehler bei der Berechtigung compute.globalAddresses.list oder compute.projects.get für das Projekt angezeigt wird, führen Sie den Befehl gcloud aus:

gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \
    --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking. \
    --role=roles/servicenetworking.serviceAgent

Instanz für die Verwendung privater IP-Adressen mit Zugriff auf private Dienste konfigurieren

Sie können den Zugriff auf private Dienste für neue und vorhandene Instanzen konfigurieren.

Private IP-Adresse für eine neue Instanz konfigurieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf Instanz erstellen.
  3. Maximieren Sie im Abschnitt Instanz anpassen die Option Konfigurationsoptionen einblenden.
  4. Maximieren Sie Verbindungen.
  5. Wählen Sie Private IP-Adresse aus.
  6. Wählen Sie Zugriff auf private Dienste aus.

    In einer Drop-down-Liste werden die im Projekt verfügbaren VPC-Netzwerke angezeigt. Wenn Ihr Projekt das Dienstprojekt einer gemeinsam genutzten VPC ist, werden auch VPC-Netzwerke aus dem Hostprojekt angezeigt.

  7. Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten.
  8. Wenn Sie eine Meldung sehen, dass Sie eine Verbindung für privaten Zugriff auf Dienste einrichten müssen, gehen Sie so vor:

    1. Klicken Sie auf Verbindung einrichten.
    2. Wählen Sie im Abschnitt IP-Bereich zuweisen eine der folgenden Optionen aus:
      • Wählen Sie einen oder mehrere vorhandene IP-Bereiche aus oder erstellen Sie einen neuen über das Drop-down-Menü. Das Drop-down-Menü enthält alle zuvor zugewiesenen Bereiche. Sie können auch Neuen IP-Bereich zuweisen auswählen und einen neuen Bereich und Namen eingeben.
      • Verwenden Sie einen automatisch zugewiesenen IP-Bereich in Ihrem Netzwerk.
    3. Klicken Sie auf Weiter.
    4. Klicken Sie auf Verbindung erstellen.
    5. Prüfen Sie, ob die Meldung Private service connection for network VPC_NETWORK_NAME has been successfully created angezeigt wird.
  9. Optional können Sie einen zugewiesenen IP-Bereich für Ihre Instanzen angeben, der für Verbindungen verwendet werden soll.
    1. Maximieren Sie die Option Zugewiesenen IP-Bereich anzeigen.
    2. Wählen Sie einen IP-Bereich aus dem Drop-down-Menü aus.
  10. Schließen Sie die Konfiguration Ihrer Instanz ab.
  11. Klicken Sie auf Instanz erstellen.

gcloud

Bevor Sie eine Instanz mit einer privaten IP-Adresse erstellen, müssen Sie Ihr Projekt für den Zugriff auf private Dienste konfigurieren.

Führen Sie die folgenden gcloud CLI-Befehle aus, um das Netzwerk für den privaten Dienstzugriff für Cloud SQL einzurichten:

  1. Aktivieren Sie die erforderlichen APIs:
    gcloud services enable \
        sqladmin.googleapis.com \
        compute.googleapis.com \
        servicenetworking.googleapis.com \
        --project=PROJECT_ID
        
  2. Weisen Sie einen IP-Adressbereich für das VPC-Netzwerk-Peering zu:
    gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
        --project=PROJECT_ID
        
  3. VPC-Netzwerk-Peering-Verbindung einrichten:
    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=google-managed-services-VPC_NETWORK_NAME \
        --network=VPC_NETWORK_NAME \
        --project=PROJECT_ID
        

Ersetzen Sie folgende Werte in den Anfragedaten:

  • INSTANCE_ID: die Instanz-ID
  • PROJECT_ID: die Projekt-ID
  • NETWORK_PROJECT_ID: die Projekt-ID des VPC-Netzwerks

  • VPC_NETWORK_NAME: der Name des VPC-Netzwerks
  • RANGE_NAME: Optional. Legt, wenn angegeben, den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Der Bereichsname muss RFC-1035 entsprechen und zwischen 1 und 63 Zeichen lang sein.
  • REGION_NAME: der Name der Region
Verwenden Sie den Parameter --network, um den Namen Ihres VPC-Netzwerks anzugeben. Verwenden Sie das Flag --no-assign-ip, um öffentliche IP-Adressen zu deaktivieren.

Wenn Sie die Verwendung der neuen Netzwerkarchitektur für die Instanz erzwingen möchten, verwenden Sie das Flag --enforce-new-sql-network-architecture. Achten Sie darauf, dass Sie genügend IP-Adressen zugewiesen haben. Wenn Sie die Erzwingung der neuen Netzwerkarchitektur verwenden, bevor ein Projekt vollständig aktualisiert wurde, kann es zu Fehlern beim Erstellen von Instanzen kommen, wenn nicht genügend IP-Adressraum verfügbar ist. Weitere Informationen finden Sie unter Upgrade einer Instanz auf die neue Netzwerkarchitektur ausführen und IP-Adressbereich zuweisen.

gcloud beta sql instances create INSTANCE_ID \
  --project=PROJECT_ID \
  --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
  --no-assign-ip \
  --allocated-ip-range-name=RANGE_NAME \
  --enforce-new-sql-network-architecture

Terraform

Verwenden Sie die folgenden Terraform-Ressourcen, um eine private IP-Adresse für eine neue Instanz zu konfigurieren:


resource "google_compute_network" "peering_network" {
  name                    = "private-network"
  auto_create_subnetworks = "false"
}

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

resource "google_sql_database_instance" "instance" {
  name             = "private-ip-sql-instance"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"

  depends_on = [google_service_networking_connection.default]

  settings {
    tier = "db-custom-2-7680"
    ip_configuration {
      ipv4_enabled    = "false"
      private_network = google_compute_network.peering_network.id
    }
  }
  # 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
}

resource "google_compute_network_peering_routes_config" "peering_routes" {
  peering              = google_service_networking_connection.default.peering
  network              = google_compute_network.peering_network.name
  import_custom_routes = true
  export_custom_routes = true
}


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.id
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

Ä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

So erstellen Sie eine neue Instanz mit einer privaten IP-Adresse:

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • PROJECT_ID:: die Projekt-ID
  • INSTANCE_ID:: die Instanz-ID
  • VPC_NETWORK_NAME:: Geben Sie den Namen des VPC-Netzwerks (Virtual Private Cloud) an, das Sie für diese Instanz verwenden möchten. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein.
  • RANGE_NAME: Optional. Legt, wenn angegeben, den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Der Bereichsname muss RFC-1035 entsprechen und zwischen 1 und 63 Zeichen lang sein.
  • AUTHORIZED_NETWORKS:: Geben Sie für öffentliche IP-Verbindungen die Verbindungen aus autorisierten Netzwerken an, die eine Verbindung zu Ihrer Instanz herstellen können.

Legen Sie für den Parameter ipv4Enabled den Wert true fest, wenn Sie eine öffentliche IP-Adresse für die Instanz verwenden, oder den Wert false, wenn die Instanz eine private IP-Adresse hat.

Mit dem Feld sqlNetworkArchitecture können Sie die Verwendung der neuen Netzwerkarchitektur für die Instanz bei der Erstellung erzwingen, auch wenn das Projekt nicht vollständig aktualisiert wurde. Weitere Informationen zur neuen Netzwerkarchitektur und ihren Auswirkungen finden Sie unter Upgrade einer Instanz auf die neue Netzwerkarchitektur ausführen und IP-Adressbereich zuweisen.

HTTP-Methode und URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

JSON-Text anfordern:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

REST v1beta4

So erstellen Sie eine neue Instanz mit einer privaten IP-Adresse:

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • PROJECT_ID:: die Projekt-ID
  • INSTANCE_ID:: die Instanz-ID
  • VPC_NETWORK_NAME:: Geben Sie den Namen des VPC-Netzwerks (Virtual Private Cloud) an, das Sie für diese Instanz verwenden möchten. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein.
  • RANGE_NAME: Optional. Legt, wenn angegeben, den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Der Bereichsname muss RFC-1035 entsprechen und zwischen 1 und 63 Zeichen lang sein.
  • AUTHORIZED_NETWORKS:: Geben Sie für öffentliche IP-Verbindungen die Verbindungen aus autorisierten Netzwerken an, die eine Verbindung zu Ihrer Instanz herstellen können.

Legen Sie für den Parameter ipv4Enabled den Wert true fest, wenn Sie eine öffentliche IP-Adresse für die Instanz verwenden, oder den Wert false, wenn die Instanz eine private IP-Adresse hat.

Mit dem Feld sqlNetworkArchitecture können Sie die Verwendung der neuen Netzwerkarchitektur für die Instanz beim Erstellen erzwingen, auch wenn das Projekt nicht vollständig aktualisiert wurde. Weitere Informationen zur neuen Netzwerkarchitektur und ihren Auswirkungen finden Sie unter Upgrade einer Instanz auf die neue Netzwerkarchitektur ausführen und IP-Adressbereich zuweisen.

HTTP-Methode und URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

JSON-Text anfordern:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Private IP-Adresse für eine vorhandene Instanz konfigurieren

Wenn Sie eine vorhandene Cloud SQL-Instanz für die Verwendung einer privaten IP-Adresse konfigurieren, wird die Instanz neu gestartet, was zu einer Ausfallzeit führt.

So konfigurieren Sie eine bestehende Instanz für die Verwendung einer privaten IP-Adresse:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Wählen Sie im Cloud SQL-Navigationsmenü die Option Verbindung aus.
  4. Aktivieren Sie auf dem Tab Netzwerk das Kästchen Private IP.

    In einer Drop-down-Liste werden die im Projekt verfügbaren Netzwerke angezeigt.

  5. Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten:
  6. Wenn Private Dienstverbindung erforderlich angezeigt wird:

    1. Klicken Sie auf Verbindung einrichten.
    2. Wählen Sie im Bereich IP-Bereich zuweisen eine der folgenden Optionen aus:
      • Wählen Sie einen oder mehrere vorhandene IP-Bereiche aus oder erstellen Sie einen neuen über das Drop-down-Menü. Das Drop-down-Menü enthält alle zuvor zugewiesenen Bereiche. Sie können auch Neuen IP-Bereich zuweisen auswählen und einen neuen Bereich und Namen eingeben.
      • Verwenden Sie einen automatisch zugewiesenen IP-Bereich in Ihrem Netzwerk.
    3. Klicken Sie auf Weiter.
    4. Klicken Sie auf Verbindung erstellen.
    5. Prüfen Sie, ob der Status Private Dienstverbindung für Netzwerk VPC_NETWORK_NAME wurde erfolgreich erstellt angezeigt wird.
  7. Klicken Sie auf Speichern.

gcloud

Achten Sie darauf, dass das Projekt für den Zugriff auf private Dienste konfiguriert ist.

Aktualisieren Sie Ihre Cloud SQL-Instanz mithilfe des Parameters --network, um den Namen des ausgewählten VPC-Netzwerks anzugeben.

Wenn Sie eine private IP-Netzwerkkonfiguration hinzufügen, verwenden Sie das Flag --enforce-new-sql-network-architecture, um die Verwendung der neuen Netzwerkarchitektur für die Instanz zu erzwingen. Achten Sie darauf, dass Sie in Ihrem IP-Bereich genügend IP-Adressen zugewiesen haben. Wenn Sie die neue Netzwerkarchitektur erzwingen, bevor ein Projekt vollständig aktualisiert wurde, kann es zu Fehlern bei der Instanzerstellung kommen, wenn nicht genügend IP-Adressbereich verfügbar ist.

Weitere Informationen finden Sie unter Upgrade einer Instanz auf die neue Netzwerkarchitektur ausführen und IP-Adressbereich zuweisen.

gcloud beta sql instances patch INSTANCE_ID \
  --project=PROJECT_ID \
  --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
  --no-assign-ip \
  --enforce-new-sql-network-architecture

REST Version 1

So erstellen Sie eine neue Instanz mit einer privaten IP-Adresse:

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • PROJECT_ID:: die Projekt-ID
  • INSTANCE_ID:: die Instanz-ID
  • VPC_NETWORK_NAME:: Geben Sie den Namen des VPC-Netzwerks (Virtual Private Cloud) an, das Sie für diese Instanz verwenden möchten. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein.
  • RANGE_NAME: Optional. Legt, wenn angegeben, den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Der Bereichsname muss RFC-1035 entsprechen und zwischen 1 und 63 Zeichen lang sein.
  • AUTHORIZED_NETWORKS:: Geben Sie für öffentliche IP-Verbindungen die Verbindungen aus autorisierten Netzwerken an, die eine Verbindung zu Ihrer Instanz herstellen können.

Legen Sie für den Parameter ipv4Enabled den Wert true fest, wenn Sie eine öffentliche IP-Adresse für die Instanz verwenden, oder den Wert false, wenn die Instanz eine private IP-Adresse hat.

Mit dem Feld sqlNetworkArchitecture können Sie die Verwendung der neuen Netzwerkarchitektur für die Instanz bei der Erstellung erzwingen, auch wenn das Projekt nicht vollständig aktualisiert wurde. Weitere Informationen zur neuen Netzwerkarchitektur und ihren Auswirkungen finden Sie unter Upgrade einer Instanz auf die neue Netzwerkarchitektur ausführen und IP-Adressbereich zuweisen.

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

JSON-Text anfordern:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

REST v1beta4

So erstellen Sie eine neue Instanz mit einer privaten IP-Adresse:

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • PROJECT_ID:: die Projekt-ID
  • INSTANCE_ID:: die Instanz-ID
  • VPC_NETWORK_NAME:: Geben Sie den Namen des VPC-Netzwerks (Virtual Private Cloud) an, das Sie für diese Instanz verwenden möchten. Der Zugriff auf private Dienste muss bereits für das Netzwerk konfiguriert sein.
  • RANGE_NAME: Optional. Legt, wenn angegeben, den Namen eines Bereichs fest, dem ein IP-Bereich zugewiesen wird. Der Bereichsname muss RFC-1035 entsprechen und zwischen 1 und 63 Zeichen lang sein.
  • AUTHORIZED_NETWORKS: Geben Sie für öffentliche IP-Verbindungen die Verbindungen aus autorisierten Netzwerken an, die eine Verbindung zu Ihrer Instanz herstellen können.

Legen Sie für den Parameter ipv4Enabled den Wert true fest, wenn Sie eine öffentliche IP-Adresse für die Instanz verwenden, oder den Wert false, wenn die Instanz eine private IP-Adresse hat.

Mit dem Feld sqlNetworkArchitecture können Sie die Verwendung der neuen Netzwerkarchitektur für die Instanz beim Erstellen erzwingen, auch wenn das Projekt nicht vollständig aktualisiert wurde. Weitere Informationen zur neuen Netzwerkarchitektur und ihren Auswirkungen finden Sie unter Upgrade einer Instanz auf die neue Netzwerkarchitektur ausführen und IP-Adressbereich zuweisen.

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

JSON-Text anfordern:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

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

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Konfiguration für den Zugriff auf private Dienste ändern

Sie können den zugewiesenen Adressbereich einer privaten Dienstverbindung anpassen, ohne vorhandene Cloud SQL-Instanzen zu ändern. Mit den folgenden Schritten lässt sich die private IP-Adresse einer vorhandenen Cloud SQL-Instanz ändern.

So ändern Sie den zugewiesenen Adressbereich:

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten.
  3. Wählen Sie den Tab Private Dienstverbindung aus.
  4. Wählen Sie den Tab Diensten zugewiesene IP-Bereiche aus.
  5. Wählen Sie den Namen des Bereichs aus, den Sie löschen möchten.

  6. Klicken Sie auf Freigeben.

  7. Klicken Sie auf IP-Bereich zuweisen.

  8. Erstellen Sie einen neuen Bereich mit dem gleichen Namen und einen ganz neuen Bereich.

    Der Name ist wichtig, da die private Verbindung bereits über diesen Adressnamen hergestellt wurde.

gcloud services vpc-peerings update \
--network=VPC_NETWORK_NAME \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force

Private IP-Adresse einer vorhandenen Cloud SQL-Instanz ändern

Wenn Sie die private IP-Adresse einer vorhandenen Cloud SQL-Instanz ändern möchten, verschieben Sie die Instanz aus dem ursprünglichen Netzwerk in ein temporäres VPC-Netzwerk. Ändern Sie dann die Konfiguration des ursprünglichen Netzwerks der Instanz für den Zugriff auf private Dienste und verschieben Sie die Cloud SQL-Instanz zurück in das ursprüngliche Netzwerk.

Wenn Sie in ein anderes VPC-Netzwerk wechseln möchten, folgen Sie den Schritten im folgenden Verfahren mit Ausnahme des letzten (Zurückverschieben der Instanz). In diesem Fall ist TEMPORARY_VPC_NETWORK_NAME das neue VPC-Netzwerk. Löschen Sie außerdem die alte private Verbindung. Es kann einige Tage dauern, bis die gelöschte private Verbindung in derGoogle Cloud Console nicht mehr angezeigt wird.

Wenn die Cloud SQL-Instanz in einem freigegebene VPC-Netzwerk gehostet wird, müssen die in der folgenden Anleitung verwendeten VPC_NETWORK_NAME-Variablen die VPC-Netzwerknamen des Hostprojekts sein. Verwenden Sie die vollständige URL des Netzwerks, um ein Netzwerk mit einem freigegebene VPC-Netzwerk anzugeben, z. B. projects/HOST_PROJECT/global/networks/NETWORK_NAME.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Erstellen Sie ein temporäres VPC-Netzwerk.
  3. Erstellen Sie eine IP-Zuordnung im temporären VPC-Netzwerk.
  4. Erstellen Sie eine private Verbindung im temporären VPC-Netzwerk.
  5. Verschieben Sie die Cloud SQL-Instanz in das temporäre VPC-Netzwerk.

    gcloud beta sql instances patch INSTANCE_ID \
      --project=PROJECT_ID \
      --network=projects/PROJECT_ID/global/networks/TEMPORARY_VPC_NETWORK_NAME \
      --no-assign-ip
  6. Ändern Sie die Konfiguration für den Zugriff auf private Dienste im ursprünglichen Netzwerk, um einen neuen zugewiesenen Bereich hinzuzufügen oder vorhandene zu löschen.

  7. Verschieben Sie die Cloud SQL-Instanz zurück in das ursprüngliche VPC-Netzwerk.

    gcloud beta sql instances patch INSTANCE_ID \
      --project=PROJECT_ID \
      --network=projects/PROJECT_ID/global/networks/ORIGINAL_VPC_NETWORK_NAME \
      --no-assign-ip

Verbindung zu einer Instanz über ihre private IP-Adresse herstellen

Verwenden Sie den Zugriff auf private Dienste zum Herstellen einer Verbindung zu Cloud SQL-Instanzen von Compute Engine- oder Google Kubernetes Engine-Instanzen im selben VPC-Netzwerk (hier als interne Quellen definiert) oder von außerhalb des Netzwerks (eine externe Quelle).

Verbindung von einer internen Quelle herstellen

Zum Herstellen einer Verbindung von einer Quelle, die sich im selben Google Cloud -Projekt wie die Cloud SQL-Instanz befindet, z. B. vom Cloud SQL Auth-Proxy, der auf einer Compute Engine-Ressource ausgeführt wird, muss sich diese Ressource im selben VPC-Netzwerk befinden. Dabei wurde für die Cloud SQL-Instanz der Zugriff auf private Dienste eingerichtet.

Bei Verbindungen von einer serverlosen Quelle wie der App Engine-Standardumgebung, Cloud Run oder Cloud Run Functions wird Ihre Anwendung oder Funktion direkt über den serverlosen VPC-Zugriff ohne den Cloud SQL-Auth-Proxy mit der Instanz verbunden.

Verbindung von einer externen Quelle herstellen

Wenn ein externes Netzwerk (z. B. ein lokales Netzwerk oder ein VPC-Netzwerk) mit dem VPC-Netzwerk verbunden ist, mit dem Ihre Cloud SQL-Instanz verbunden ist, können Sie Cloud VPN oder Cloud Interconnect verwenden, um von einem Client im externen Netzwerk eine Verbindung zur Instanz herzustellen.

So lassen Sie Verbindungen von einem externen Netzwerk zu:

  1. Stellen Sie sicher, dass Ihr VPC-Netzwerk über einen Cloud-VPN-Tunnel oder einen VLAN-Anhang für Dedicated Interconnect oder Partner Interconnect mit dem externen Netzwerk verbunden ist.
  2. Achten Sie darauf, dass die BGP-Sitzungen (Border Gateway Protocol) auf den Cloud Routern, die Ihre Cloud VPN-Tunnel und Cloud Interconnect-Anhänge (VLANs) verwalten, von Ihrem lokalen Netzwerk bestimmte Präfixe (Ziele) erhalten haben.

    Standardrouten (Ziel 0.0.0.0/0) können nicht in das Cloud SQL-VPC-Netzwerk importiert werden, da das Netzwerk eine eigene lokale Standardroute hat. Lokale Routen für ein Ziel werden verwendet, auch wenn das Cloud SQL-Peering so konfiguriert ist, dass benutzerdefinierte Routen aus Ihrem VPC-Netzwerk importiert werden.

  3. Identifizieren Sie die Peering-Verbindungen, die über die private Dienstverbindung erzeugt werden. Je nach Dienst werden durch die Private Service Connect-Verbindung möglicherweise eine oder mehrere der folgenden Peering-Verbindungen erstellt, aber nicht unbedingt alle:
    • cloudsql-mysql-googleapis-com
    • cloudsql-postgres-googleapis-com
    • servicenetworking-googleapis-com
  4. Aktualisieren Sie alle Peering-Verbindungen, um den Export benutzerdefinierter Routen zu aktivieren.
  5. Identifizieren Sie den zugewiesenen Bereich, der von der Private Service Connect-Verbindung verwendet wird.
  6. <ph type="x-smartling-placeholder"></ph> Konfigurieren Sie den benutzerdefinierten Advertising-Modus von Cloud Router für die zugewiesene Bereich auf den Cloud Routern, die BGP-Sitzungen für Ihre Cloud VPN-Tunnel oder Cloud Interconnect-Anhänge (VLANs) verwalten.

Von Cloud Shell aus verbinden

Cloud Shell verwendet eine virtuelle Compute Engine-Maschine, die von Google Cloud verwaltet wird und sich außerhalb Ihres VPC-Netzwerk befindet. Daher gibt es keinen Verbindungspfad zwischen Cloud Shell und dem privaten IP-Adressbereich Ihres VPC-Netzwerks.

Daher unterstützt Cloud Shell nicht das Herstellen einer Verbindung zu einer Cloud SQL-Instanz, die nur eine private IP-Adresse hat.

Informationen zum Herstellen einer Verbindung zu Cloud SQL-Instanzen von einem externen Netzwerk über eine private IP-Verbindung finden Sie unter Verbindung zu einer Cloud SQL-Instanz von außerhalb ihrer VPC herstellen.

Verbindung von IP-Adressen außerhalb von RFC 1918 herstellen

RFC 1918 gibt IP-Adressen an, die intern, also innerhalb einer Organisation, zugewiesen und nicht ins Internet weitergeleitet werden. Dazu zählen insbesondere Folgende:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Verbindungen zu einer Cloud SQL-Instanz mit einer privaten IP-Adresse werden für RFC 1918-Adressbereiche automatisch autorisiert. Auf diese Weise können alle privaten Clients ohne Umleitung über den Proxy auf die Datenbank zugreifen.

Wenn Sie eine Verbindung über eine IP-Adresse außerhalb des RFC 1918-Bereichs herstellen möchten, müssen Sie eine instanzspezifische IP-Autorisierung einrichten, um Traffic aus anderen als RFC 1918-IP-Adressbereichen zuzulassen.

Verwenden Sie beispielsweise den folgenden gcloud-Befehl:

gcloud sql instances patch INSTANCE_NAME \
--authorized-networks=192.88.99.0/24,11.0.0.0/24

Cloud SQL lernt standardmäßig keine Subnetzrouten außerhalb des RFC 1918-Bereichs von Ihrem VPC-Netzwerk. Sie müssen deshalb das Netzwerk-Peering auf Cloud SQL aktualisieren, um Routen außerhalb des RFC 1918-Bereichs exportieren zu können.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Ersetzen Sie Folgendes:

  • PEERING_CONNECTION ist der Name der Peering-Verbindung, die über die private Dienstverbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers hergestellt wird.
  • VPC_NETWORK_NAME ist der Name Ihres VPC-Netzwerks.
  • PROJECT_ID ist die ID des Projekts des VPC-Netzwerks. Wenn Sie eine gemeinsam genutzte VPC verwenden, verwenden Sie die Hostprojekt-ID.

Um die Ausschöpfung von IP-Adressen zu minimieren, können Sie privat verwendete öffentlichen IP-Adressen nutzen.

Verbindung über privat verwendete öffentliche IP-Adressen herstellen

Wenn Sie die Instanz in einem privat genutzten öffentlichen IP-Adressbereich konfigurieren möchten, aktivieren Sie export-subnet-routes-with-public-ip für das Netzwerk-Peering zwischen Ihrem Netzwerk und dem Cloud SQL-Netzwerk.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Ersetzen Sie Folgendes:

  • PEERING_CONNECTION ist der Name der Peering-Verbindung, die über die private Dienstverbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers hergestellt wird. Den Namen der Peering-Verbindung finden Sie auf der Seite VPC-Netzwerk-Peering.
  • VPC_NETWORK_NAME ist der Name Ihres VPC-Netzwerks.
  • PROJECT_ID ist die ID des Projekts des VPC-Netzwerks. Wenn Sie eine gemeinsam genutzte VPC verwenden, verwenden Sie die Hostprojekt-ID.

Verbindung zu einer Instanz herstellen, die mit privat genutzten öffentlichen IP-Adressen konfiguriert ist

Wenn Ihre Instanz in einem privat genutzten öffentlichen IP-Adressbereich konfiguriert ist und Sie eine Verbindung zu ihr herstellen möchten, aktivieren Sie import-subnet-routes-with-public-ip im Netzwerk-Peering zwischen Ihrem Netzwerk und dem Cloud SQL-Netzwerk.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--import-subnet-routes-with-public-ip \
--project=PROJECT_ID

Ersetzen Sie Folgendes:

  • PEERING_CONNECTION ist der Name der Peering-Verbindung, die über die private Dienstverbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers hergestellt wird. Den Namen der Peering-Verbindung finden Sie auf der Seite VPC-Netzwerk-Peering.
  • VPC_NETWORK_NAME ist der Name Ihres VPC-Netzwerks.
  • PROJECT_ID ist die ID des Projekts des VPC-Netzwerk. Verwenden Sie die Hostprojekt-ID, wenn Sie eine gemeinsam genutzte VPC verwenden.

Verbindung über einen Endpunkt für Schreibvorgänge herstellen

Zusätzlich zu einer privaten IP-Adresse können Sie einen Schreibendpunkt in einem SQL-Verbindungsstring verwenden. Ein Schreibendpunkt ist ein globaler Domainname-Service (DNS)-Name, der automatisch in die IP-Adresse der aktuellen primären Instanz aufgelöst wird. Wenn Sie einen Schreibendpunkt verwenden, müssen Sie bei einem Regionsausfall keine Änderungen an der Anwendungsverbindung vornehmen.

Wenn ein Failover oder Switchover eines Replikats erfolgt, kann der Schreibendpunkt helfen, private IP-Adressen von Instanzen zu verwalten. Verwenden Sie in diesem Fall den Schreibendpunkt, um eine Verbindung zur Instanz herzustellen, die als primäre Instanz fungiert.

So erstellt Cloud SQL einen Schreibendpunkt

Wenn Sie die Cloud DNS API für Ihr Google Cloud -Projekt aktivieren und anschließend eine primäre Cloud SQL Enterprise Plus-Instanz erstellen, das Replikat für die Instanz hochstufen oder ein Upgrade der Instanz von Cloud SQL Enterprise ausführen, generiert Cloud SQL automatisch einen Schreibendpunkt und weist ihn der Instanz zu.

Weitere Informationen finden Sie unter Schreibendpunkt ansehen.

Einer Instanz einen Schreibendpunkt zuweisen

Wenn Sie die Cloud DNS API für Ihr Google Cloud -Projekt nicht aktivieren und dann Ihre Instanz erstellen, hochstufen oder aktualisieren, weist Cloud SQL der Instanz den Schreibendpunkt nicht automatisch zu.

Informationen dazu, wie Sie einen Schreibendpunkt von Cloud SQL generieren und der Instanz zuweisen lassen, finden Sie unter Schreibendpunkt generieren.

Einschränkungen bei Managed Service for Microsoft Active Directory

Wenn die Region der ursprünglichen primären Instanz nicht mehr verfügbar ist und Managed Service for Microsoft Active Directory aktiviert ist, kann der Schreibendpunkt der neu hochgestuften primären Instanz nach einem Failover nicht mit der Managed Microsoft AD-Authentifizierung verwendet werden, um eine Verbindung herzustellen.

Unterstützung für Cloud SQL Enterprise Plus-Schreibendpunkte über forstübergreifende Vertrauensstellungen hinweg

Eine lokal verbundene VM verwendet für die Authentifizierung das Namenssuffix-Routing. Die von Cloud SQL verwalteten Schreibendpunkte einer Cloud SQL Enterprise Plus-Instanz verwenden ein anderes Hostnamenformat, z. B. *.sql-psa.goog.

Wenn der Schreibendpunkt, der Ihrer Cloud SQL Enterprise Plus-Instanz zugeordnet ist, von einer Domain aus betrieben wird, die über eine Vertrauensstellung verbunden ist, kann dieses Verbindungsformat verhindern, dass die lokale Domain die autoritative Domain für den Dienstprinzipalnamen automatisch findet.

Um dieses Problem zu beheben, müssen Sie das entsprechende von Cloud SQL verwaltete Domainsuffix (z. B. goog oder sql-psa.goog) als alternatives UPN-Suffix hinzufügen. Sie müssen dieses Suffix auf der Gesamtstruktur-Ebene im Active Directory der verwalteten Domain mit dem setupadmin-Konto hinzufügen:

  1. Führen Sie in Ihrem verwalteten Active Directory die folgenden Schritte aus:
    1. Wählen Sie im Fenster Server-Manager die Option Tools aus. Wählen Sie dann Active Directory-Domänen und -Vertrauensstellungen aus.
    2. Klicken Sie im Bereich mit der rechten Maustaste auf Active Directory-Domänen und -Vertrauensstellungen (Stammknoten).
    3. Wählen Sie dann Eigenschaften aus.
    4. Geben Sie auf dem Tab UPN-Suffixe das alternative UPN-Suffix ein (z. B. sql-psa.goog).
    5. Klicken Sie auf Hinzufügen.
    6. Klicken Sie auf Übernehmen.
    7. Klicken Sie auf OK.
  2. Führen Sie in Ihrem lokalen Active Directory die folgenden Schritte aus:
    1. Wählen Sie im Fenster Server-Manager die Option Tools und dann Active Directory-Domänen und -Vertrauensstellungen aus.
    2. Klicken Sie im Bereich mit der rechten Maustaste auf den Namen Ihrer verwalteten AD-Domain und auf die Vertrauensstellungen. Dies ist die spezifische verwaltete Domain, die Ihrer lokalen Domain vertraut.
    3. Wählen Sie Eigenschaften und dann den Tab Trusts aus.
    4. Wählen Sie im Abschnitt Domains, denen diese Domain vertraut (ausgehende Vertrauensstellungen) oder Domains, die dieser Domain vertrauen (eingehende Vertrauensstellungen) den Eintrag für den Domainnamen Ihrer verwalteten Domain aus und klicken Sie dann auf Eigenschaften.
    5. Rufen Sie den Tab Name Suffix Routing (Routing für Namensuffix) auf und klicken Sie auf Aktualisieren.
    6. Suchen Sie das neu hinzugefügte Namenssuffix, z. B. sql-psa.goog, und wählen Sie es aus. Klicken Sie dann auf Aktivieren.
    7. Klicken Sie in allen verbleibenden Dialogfeldern auf Übernehmen und OK.

Fehlerbehebung

Informationen zu bekannten Verbindungsproblemen finden Sie unter Fehlerbehebung. Informationen zur Selbstdiagnose finden Sie unter Verbindungsprobleme beheben.