Private IP-Adresse konfigurieren

Auf dieser Seite wird beschrieben, wie Sie eine Cloud SQL-Instanz für die Verwendung von privaten IP-Adressen konfigurieren.

Informationen zur Funktionsweise privater IP-Adressen sowie zu den Anforderungen an Umgebung und Verwaltung finden Sie unter Private IP-Adressen.

Vorbereitung

API- und IAM-Anforderungen

  • Sie müssen die Service Networking API für Ihr Projekt aktivieren.
  • Wenn Sie ein freigegebenes VPC-Netzwerk verwenden, müssen Sie diese API auch für das Hostprojekt aktivieren.

  • Um eine Zugriffsverbindung für private Dienste zu verwalten, sollte der Nutzer die folgenden IAM-Berechtigungen haben. Wenn Sie nicht die erforderlichen Berechtigungen haben, können Fehler auftreten.
    • compute.networks.list
    • compute.addresses.create
    • compute.addresses.list
    • servicenetworking.services.addPeering

    Wenn Sie ein freigegebenes VPC-Netzwerk verwenden, müssen Sie den Nutzer auch dem Hostprojekt hinzufügen und ihm dort dieselbe Berechtigung zuweisen.

Zugriff auf private Dienste

Wenn Sie in Ihrem Projekt ein neues VPC-Netzwerk erstellen, müssen Sie den Zugriff auf private Dienste konfigurieren, um einen IP-Adressbereich zuzuweisen und eine private Dienstverbindung zu erstellen. So können Ressourcen im VPC-Netzwerk eine Verbindung zu Cloud SQL-Instanzen herstellen. Die Konsole bietet einen Assistenten, der Sie bei der Einrichtung dieser Konfiguration unterstützt.

Instanz für die Verwendung privater IP-Adressen konfigurieren

Sie können eine Cloud SQL-Instanz so konfigurieren, dass beim Erstellen der Instanz oder bei einer vorhandenen Instanz eine private IP-Adresse verwendet wird.

Private IP-Adresse für eine neue Instanz konfigurieren

So konfigurieren Sie eine Cloud SQL-Instanz für die Verwendung privater IP-Adressen, wenn Sie eine Instanz erstellen:

Console

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

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf Instanz erstellen.
  3. Maximieren Sie Konfigurationsoptionen einblenden.
  4. Maximieren Sie Verbindungen.
  5. Wählen Sie Private IP-Adresse aus.

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

  6. Wählen Sie das VPC-Netzwerk aus, das Sie verwenden möchten.
  7. Wenn Sie darauf hingewiesen werden, dass Sie eine private Dienstverbindung einrichten müssen, gehen Sie so vor:

    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 IP-Bereiche aus oder erstellen Sie einen neuen aus dem Drop-down-Menü. Das Drop-down-Menü enthält die zuvor zugewiesenen Bereiche (sofern vorhanden). 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 VPN_NAME has been successfully created angezeigt wird.
  8. 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.
  9. Schließen Sie die Konfiguration Ihrer Instanz ab.
  10. Klicken Sie auf Instanz erstellen.

gcloud

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

Erstellen Sie die Cloud SQL-Instanz. Verwenden Sie dabei den Parameter --network, um den Namen des ausgewählten VPC-Netzwerks anzugeben, und das Flag --no-assign-ip, um öffentliche IP-Adressen zu deaktivieren.

Der Wert des Parameters „--network“ hat das folgende Format: projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME. PROJECT_ID ist die Projekt-ID des VPC-Netzwerks. Wenn das VPC-Netzwerk eine freigegebene VPC ist, sollte es die ID des Hostprojekts der freigegebenen VPC sein.

Optional können Sie den Namen eines privaten Adressbereichs mit dem Parameter --allocated-ip-range-name angeben. Dann wird ein zugewiesener Bereichsname festgelegt und für die primäre Instanz wird ein privater Adressbereich erstellt. Beispiel: google-managed-services-default. Der Bereichsname muss RFC-1035 entsprechen und zwischen 1 und 63 Zeichen lang sein. (gcloud alpha sql instances create).

Wenn das VPC-Netzwerk eine freigegebene VPC ist, sollte im folgenden gcloud-Befehl PROJECT_ID die ID für das Dienstprojekt der freigegebenen VPC sein.

gcloud beta sql instances create INSTANCE_ID \
--project=PROJECT_ID \
--network=VPC_NETWORK_NAME \
--no-assign-ip \
--allocated-ip-range-name=RANGE_NAME

REST Version 1

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

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID
  • vpc-name: der Name des VPC-Netzwerks, das für die Instanz verwendet werden soll
  • allocated-ip-range: Optional. Legt 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.

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "vpc-name",
      "allocatedIpRange": "allocated-ip-range"
    }
}

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

REST v1beta4

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

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID
  • vpc-name: der Name des VPC-Netzwerks, das für die Instanz verwendet werden soll
  • allocated-ip-range: Optional. Legt 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.

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": "vpc-name",
      "allocatedIpRange": "allocated-ip-range"
    }
  }
}

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

Sie sollten in etwa folgende JSON-Antwort 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. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die entsprechende Übersicht zu öffnen.
  3. Wählen Sie im SQL-Navigationsmenü die Option Verbindungen aus.
  4. Klicken Sie auf das Kästchen Private IP-Adresse.

    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 IP-Bereiche aus oder erstellen Sie einen neuen aus dem Drop-down-Menü. Das Drop-down-Menü enthält die zuvor zugewiesenen Bereiche (sofern vorhanden). 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.

gcloud beta sql instances patch INSTANCE_ID \
--project=PROJECT_ID \
--network=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 wie die Cloud SQL-Instanz befinden.

Bei Verbindungen von einer serverlosen Quelle wie der App Engine-Standardumgebung, Cloud Run oder Cloud 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

Sie können eine Verbindung von einem Client in einem externen Netzwerk (lokales Netzwerk oder VPC-Netzwerk) herstellen, wenn das externe Netzwerk mit dem VPC-Netzwerk verbunden ist, mit dem Ihre Cloud SQL-Instanz verbunden ist. 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 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 immer 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 kann die private Dienstverbindung eine oder mehrere der folgenden Peering-Verbindungen erstellen, 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 Verbindung für private Dienste verwendet wird.
  6. Erstellen Sie ein benutzerdefiniertes Cloud Router Route Advertisement für den zugewiesenen Bereich auf den Cloud Routern, die BGP-Sitzungen für Ihre Cloud VPN-Tunnel oder Cloud Interconnect-Anhänge (VLANs) verwalten.

Verbindung über Cloud Shell herstellen

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

Verbindung von 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.

Adressen außerhalb des RFC 1918-Adressbereichs müssen als autorisierte Netzwerke konfiguriert werden.

Wenn Sie eine Verbindung über eine 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-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 Ihrer VPC. 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 cloudsql-postgres-googleapis-com \
--network=NETWORK \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID
  • cloudsql-postgres-googleapis-com ist der Name einer privaten Dienstverbindung von Ihrer VPC-Netzwerkseite.

    Wählen Sie Ihr Netzwerk aus und suchen Sie den Abschnitt Private Dienstverbindung.

  • NETWORK ist der Name Ihres VPC-Netzwerks.
  • PROJECT_ID ist die ID des Projekts des VPC-Netzwerks. Verwenden Sie die Hostprojekt-ID, wenn Sie eine freigegebene VPC verwenden.

Fehlerbehebung

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

Nächste Schritte