Private Service Connect konfigurieren

In diesem Dokument wird beschrieben, wie Sie Private Service Connect für die privaten Netzwerkverbindungen Ihrer Cloud SQL-Instanzen einrichten und konfigurieren.

Nachdem Sie Private Service Connect und die zugehörigen Endpunkte eingerichtet haben, können Sie und Ihre Anwendungsclients eine Verbindung zu einer primären Cloud SQL-Instanz oder zu einem der Lesereplikate aus mehreren VPC-Netzwerken (Virtual Private Cloud) herstellen, die zu verschiedenen Gruppen, Teams, Projekten oder Organisationen gehören. Sie können auch DNS-Namen pro Instanz oder global für DNS-Namen-basierte Clientverbindungen einrichten. Das ist nützlich für Failover- und Notfallwiederherstellungsszenarien.

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Service Networking, Network Connectivity, Cloud DNS APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Make sure that you have the following role or roles on the project: Compute Network Admin, Cloud SQL Admin, Cloud DNS Admin, Cloud SQL Instance User

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.
  6. Installieren Sie die gcloud CLI.

  7. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  8. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the Service Networking, Network Connectivity, Cloud DNS APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  12. Make sure that you have the following role or roles on the project: Compute Network Admin, Cloud SQL Admin, Cloud DNS Admin, Cloud SQL Instance User

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. Click Grant access.
    4. In the New principals field, enter your user identifier. This is typically the email address for a Google Account.

    5. Click Select a role, then search for the role.
    6. To grant additional roles, click Add another role and add each additional role.
    7. Click Save.
  13. Installieren Sie die gcloud CLI.

  14. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  15. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init

Erforderliche Rollen für Private Service Connect

Die folgende Tabelle enthält Informationen zu den Rollen, die für die Konfiguration und Verbindung mit einer Private Service Connect-Verbindung mit einer Cloud SQL-Instanz erforderlich sind.

Rolle Beschreibung
compute.networkAdmin

Vollständige Kontrolle über das VPC-Netzwerk, das eine Verbindung zu einer Cloud SQL-Instanz initiiert. Sie können IP-Adressen, Firewallregeln, Richtlinien für Dienstverbindungen und Private Service Connect-Endpunkte erstellen und verwalten.

Wenn Sie mit Private Service Connect eine Verbindung zu einer Cloud SQL-Instanz von mehreren VPC-Netzwerken aus herstellen, hat jedes Netzwerk einen eigenen Administrator.

dns.admin Vollständige Kontrolle über Cloud DNS-Ressourcen, einschließlich DNS-Zonen und -Einträgen.
cloudsql.admin : Gewährt vollständige Kontrolle über eine Cloud SQL-Instanz und steuert die Instanz über ihren Lebenszyklus.
cloudsql.instanceUser : Gewährt Zugriff auf die Cloud SQL-Instanz. Wenn Sie die Verbindung über den Cloud SQL Auth-Proxyclient herstellen, benötigen Sie die Rolle Cloud SQL-Client. Wenn Sie direkt eine Verbindung herstellen, benötigen Sie keine IAM-Rollen und -Berechtigungen (Identity and Access Management).

Wenn Sie beim Erstellen Ihrer Cloud SQL-Instanz automatisch eine Richtlinie für Dienstverbindungen einrichten möchten, benötigen Sie zusätzliche Rollen und die Möglichkeit, die Rollen dem Cloud SQL-Dienst-Agent zuzuweisen. Weitere Informationen finden Sie unter Richtlinie für Dienstverbindungen erstellen.

Private Service Connect-Endpunkt erstellen

Private Service Connect-Endpunkte sind interne IP-Adressen in einem Nutzer-VPC-Netzwerk, auf die Clients in diesem Netzwerk direkt zugreifen können. Clients können diese Endpunkte verwenden, um eine Verbindung zu Cloud SQL-Instanzen herzustellen.

Sie können Cloud SQL entweder automatisch einen Private Service Connect-Endpunkt in Ihrer VPC erstellen lassen oder den Endpunkt manuell erstellen.

Endpunkt automatisch erstellen

Wenn Cloud SQL den Private Service Connect-Endpunkt automatisch erstellen soll, gehen Sie so vor:

  1. Erstellen Sie eine Richtlinie für Dienstverbindungen in Ihrem VPC-Netzwerk. Mit dieser Richtlinie können Sie Private Service Connect-Endpunkte automatisch bereitstellen.

  2. Cloud SQL-Instanz erstellen, für die Private Service Connect aktiviert ist, und die Instanz so konfigurieren, dass Private Service Connect-Endpunkte automatisch erstellt werden.

  3. Rufen Sie den Endpunkt für die Instanz ab. So können Sie den Endpunkt verwenden, um eine Verbindung zur Instanz herzustellen.

Richtlinie für Dienstverbindungen erstellen

Sie können eine Dienstverbindungsrichtlinie mit der Google Cloud Console, der gcloud CLI oder der API erstellen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbindungsrichtlinien.

  3. Klicken Sie auf Verbindungsrichtlinie erstellen.

  4. Geben Sie einen Namen für die Verbindungsrichtlinie ein.

  5. Geben Sie die Dienstklasse so an:

    1. Wählen Sie für Quell-Dienstklasse die Option Google-Dienste aus.
    2. Wählen Sie im Menü Dienstklasse die Option google-cloud-sql aus, da Cloud SQL der verwaltete Dienst für die Verbindungsrichtlinie ist.
  6. Wählen Sie im Bereich Bereich der Zielendpunkte ein Netzwerk und eine Region aus, für die diese Richtlinie gilt.

  7. Optional: Wenn sich die Richtlinie für Dienstverbindungen und die Cloud SQL-Instanz in verschiedenen Projekten, Ordnern oder Organisationen befinden, konfigurieren Sie den Benutzerdefinierten Dienstinstanzbereich:

    1. Stellen Sie den Schalter Benutzerdefinierter Dienstinstanzbereich auf Ein.
    2. Geben Sie im Feld Bereiche die IDs der Projekte, Ordner oder Organisationen ein, in denen sich die Instanz befindet.
  8. Wählen Sie im Bereich Richtlinie ein oder mehrere Subnetze aus dem Menü Subnetzwerke aus. Die Subnetze werden verwendet, um Endpunkten IP-Adressen zuzuweisen.

  9. Optional: Geben Sie ein Verbindungslimit für die Richtlinie an. Das Limit bestimmt, wie viele Endpunkte über diese Verbindungsrichtlinie erstellt werden können. Wenn Sie kein Verbindungslimit angeben, gibt es kein Limit.

  10. Klicken Sie auf Richtlinie erstellen.

gcloud

Verwenden Sie zum Erstellen einer Dienstverbindungsrichtlinie den Befehl service-connection-policies create.

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --network=NETWORK \
    --project=PROJECT_ID \
    --region=REGION \
    --service-class=SERVICE_CLASS \
    --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
    --psc-connection-limit=LIMIT \
    --description="DESCRIPTION" \
    --producer-instance-location=PRODUCER_INSTANCE_LOCATION \
    --allowed-google-producers-resource-hierarchy-level=RESOURCE_HIERARCHY_LEVEL

Ersetzen Sie Folgendes:

  • POLICY_NAME: der Name Ihrer Dienstverbindungsrichtlinie.
  • NETWORK: das Netzwerk, für das diese Richtlinie gilt.
  • PROJECT_ID: die Projekt-ID oder Nummer des Projekts des VPC-Netzwerks. Für gemeinsam genutzte VPC-Netzwerke müssen Sie Richtlinien für Dienstverbindungen im Hostprojekt bereitstellen, da diese Richtlinien in Dienstprojekten nicht unterstützt werden.
  • REGION: die Region, für die diese Richtlinie gilt. Für jede Region, in der Sie die Dienstverbindung automatisieren möchten, muss dieselbe Richtlinie vorhanden sein.
  • SERVICE_CLASS: vom Ersteller bereitgestellte Ressourcenkennzeichnung der Dienstklasse. Für Cloud SQL ist die Dienstklasse google-cloud-sql.
  • SUBNETS: ein oder mehrere reguläre Nutzersubnetze, die zum Zuweisen von IP-Adressen für Private Service Connect-Endpunkte verwendet werden. Diese IP-Adressen werden automatisch zugewiesen und an den Pool des Subnetzes zurückgegeben, wenn verwaltete Dienstinstanzen erstellt und gelöscht werden. Die Subnetze müssen sich in derselben Region wie die Richtlinie für Dienstverbindungen befinden. Wenn mehrere Verbindungsrichtlinien dieselbe Region verwenden, können Sie dasselbe Subnetzwerk in diesen Richtlinien wiederverwenden. Sie können mehrere Subnetze in einer durch Kommas getrennten Liste angeben.
  • LIMIT: die maximale Anzahl von Endpunkten, die Sie mit dieser Richtlinie erstellen können. Wenn Sie kein Limit angeben, gibt es kein Limit.
  • DESCRIPTION ist eine optionale Beschreibung der Richtlinie für Dienstverbindungen
  • PRODUCER_INSTANCE_LOCATION: Gibt an, ob eine benutzerdefinierte Hierarchie von Standorten für eine Cloud SQL-Instanz autorisiert werden soll. Wenn sich die Instanz in einem anderen Projekt, Ordner oder einer anderen Organisation als die Richtlinie befindet, müssen Sie diesen Wert auf custom-resource-hierarchy-levels festlegen.

  • RESOURCE_HIERARCHY_LEVEL: Eine Liste der Projekte, Ordner oder Organisationen, in denen sich die Instanz befindet. Diese Liste hat eines der folgenden Formate:

    • projects/PROJECT_ID
    • folders/FOLDER_ID
    • organizations/ORGANIZATION_ID.

Mit dem folgenden Befehl wird beispielsweise eine Richtlinie für Dienstverbindungen für die Dienstklasse
google-cloud-sql erstellt, die IP-Adressen aus dem Subnetz managed-services zuweist. Mit dieser Richtlinie können maximal 10 Private Service Connect-Endpunkte erstellt werden. Die Endpunkte müssen in Projekten erstellt werden, die sich in derselben Organisation wie die verwaltete Dienstinstanz befinden. Die Cloud SQL-Instanz befindet sich im Projekt myproject.

gcloud network-connectivity service-connection-policies create cloud-sql-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=google-cloud-sql \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10 \
    --producer-instance-location=custom-resource-hierarchy-levels \
    --allowed-google-producers-resource-hierarchy-level=projects/myproject

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die Projekt-ID.
  • REGION: die Region Ihrer Dienstverbindungsrichtlinie.
  • POLICY_NAME: der Name Ihrer Dienstverbindungsrichtlinie.
  • DESCRIPTION: eine optionale Beschreibung Ihrer Richtlinie für Dienstverbindungen.
  • NETWORK: das Netzwerk Ihrer Dienstverbindungsrichtlinie.
  • LIMIT: die maximale Anzahl von Endpunkten, die Sie mit dieser Richtlinie erstellen können. Wenn Sie kein Limit angeben, gibt es kein Limit.
  • SUBNETS: ein oder mehrere reguläre Nutzersubnetze, die zum Zuweisen von IP-Adressen für Private Service Connect-Endpunkte verwendet werden. Diese IP-Adressen werden automatisch zugewiesen und an den Pool des Subnetzes zurückgegeben, wenn verwaltete Dienstinstanzen erstellt und gelöscht werden. Die Subnetze müssen sich in derselben Region wie die Richtlinie für Dienstverbindungen befinden. Wenn mehrere Verbindungsrichtlinien dieselbe Region verwenden, können Sie dasselbe Subnetzwerk in diesen Richtlinien wiederverwenden. Sie können mehrere Subnetze in einer durch Kommas getrennten Liste angeben.
  • SERVICE_CLASS: vom Ersteller bereitgestellte Ressourcenkennzeichnung der Dienstklasse.

HTTP-Methode und URL:

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME

JSON-Text anfordern:

{
  "description": "DESCRIPTION",
  "network": "projects/PROJECT_ID/global/networks/NETWORK",
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "serviceClass": "SERVICE_CLASS"
}

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

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

{
  "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Richtlinie für Dienstverbindungen automatisch erstellen

Sie können eine Richtlinie für Dienstverbindungen automatisch erstellen lassen, wenn Sie die Cloud SQL-Instanz erstellen. Für diese Option sind jedoch zusätzliche Administratorberechtigungen erforderlich.

Console

Wenn Sie die Google Cloud Konsole verwenden, erstellen Sie die Cloud SQL-Instanz mit aktiviertem Private Service Connect. In der Google Cloud Console wird nach erforderlichen Rollen gesucht und diese werden automatisch konfiguriert. Möglicherweise müssen Sie die Network Connectivity API aktivieren, falls sie für Ihr Projekt noch nicht aktiviert ist.

gcloud oder REST

Wenn Sie die gcloud CLI oder die Cloud SQL Admin API verwenden, müssen Sie dem Cloud SQL-Dienst-Agent zusätzliche Rollen zuweisen, bevor Sie die Instanz erstellen.

  1. Wenn noch kein projektspezifischer Cloud SQL-Dienst-Agent in dem Projekt vorhanden ist, in dem die Cloud SQL-Instanz gehostet wird, erstellen Sie einen.

    Führen Sie den folgenden Befehl aus, um den Dienst-Agent zu erstellen:

    gcloud beta services identity create \
      --service=sqladmin.googleapis.com \
      --project=INSTANCE_PROJECT
    

    Ersetzen Sie Folgendes:

    • INSTANCE_PROJECT: Das Projekt, in dem Sie die Cloud SQL-Instanz erstellen möchten.

    Mit dem Befehl wird ein Dienst-Agent im Format service-INSTANCE_PROJECT_NUMBER@gcp-sa-cloudsql.iam.gserviceaccount.com erstellt.

  2. Gewähren Sie dem Cloud SQL-Dienst-Agent die erforderlichen IAM-Berechtigungen, indem Sie ihm die folgenden Rollen zuweisen:

    • Service Automation Consumer Network Admin (roles/networkconnectivity.consumerNetworkAdmin)
    • Compute-Netzwerkbetrachter (roles/compute.networkViewer)

    Führen Sie die folgenden Befehle aus, um dem Cloud SQL-Dienst-Agent die Rollen hinzuzufügen:

    gcloud projects add-iam-policy-binding CONSUMER_PROJECT \
      --member='serviceAccount:CLOUD_SQL_SERVICE_AGENT' \
      --role='roles/networkconnectivity.consumerNetworkAdmin'
    
    gcloud projects add-iam-policy-binding CONSUMER_PROJECT \
      --member='serviceAccount:CLOUD_SQL_SERVICE_AGENT' \
      --role='roles/compute.networkViewer'
    

    Ersetzen Sie Folgendes:

    • CONSUMER_PROJECT: das Projekt, in dem der Private Service Connect-Endpunkt erstellt wird. Wenn Sie ein freigegebene VPC-Netzwerk verwenden, kann dies entweder das Hostprojekt oder das Dienstprojekt sein.
    • CLOUD_SQL_SERVICE_AGENT: die E-Mail-Adresse des von Ihnen erstellten Cloud SQL-Dienstagentkontos.

Cloud SQL-Instanz erstellen

Sie können eine Instanz mit aktiviertem Private Service Connect für die Instanz erstellen und die Instanz so konfigurieren, dass Endpunkte automatisch erstellt werden. Verwenden Sie dazu die Google Cloud Console, die gcloud CLI oder die API.

Console

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

    Cloud SQL-Instanzen aufrufen

  2. Maximieren Sie im Bereich Instanz anpassen den Abschnitt Verbindungen.
  3. Klicken Sie auf das Kästchen Private IP-Adresse.
  4. Wählen Sie im Abschnitt Methode für private Verbindung auswählen das Kästchen Private Service Connect (PSC) aus.
  5. Klicken Sie im Bereich Endpunkteinrichtung auf Endpunkt hinzufügen.
  6. Führen Sie im Bereich Endpunkteinrichtung die folgenden Schritte aus:
    1. Wählen Sie auf der Karte Neuer Endpunkt im Menü Projekt das Projekt aus, in dem Sie den Endpunkt einrichten möchten.
    2. Wählen Sie im Menü Netzwerk ein Netzwerk für den Endpunkt aus.
    3. Wenn die Network Connectivity API noch nicht aktiviert ist, klicken Sie auf Aktivieren.
  7. Klicken Sie auf Netzwerkeinrichtung bestätigen. Wenn für das ausgewählte Netzwerk eine Richtlinie für Dienstverbindungen erkannt wird, wird eine Erfolgsmeldung angezeigt. Wenn keine Richtlinie für Dienstverbindungen erkannt wird, aber Berechtigungen erfolgreich erteilt wurden, erstellt Google Cloud eine Richtlinie für Dienstverbindungen für Sie.
  8. Optional: Konfigurieren Sie weitere Instanzoptionen.
  9. Klicken Sie auf Instanz erstellen.

gcloud

Verwenden Sie den Befehl gcloud sql instances create, um eine Instanz mit aktiviertem Private Service Connect für die Instanz zu erstellen:

gcloud sql instances create INSTANCE_NAME \
  --project=PROJECT_ID \
  --region=REGION_NAME \
  --cpu=NUMBER_OF_vCPUs \
  --memory=MEMORY_SIZE \
  --root-password=ROOT_PASSWORD \
  --availability-type=AVAILABILITY_TYPE \
  --database-version=DATABASE_VERSION \
  --no-assign-ip \
  --enable-private-service-connect \
  --allowed-psc-projects=ALLOWED_PROJECTS \
  --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT \
  --enable-psc-auto-dns \
  --enable-psc-write-endpoint-dns

Optional. Wenn Sie beim Erstellen der Cloud SQL-Instanz automatisch eine Richtlinie für Dienstverbindungen erstellen oder aktualisieren möchten, fügen Sie dem Befehl den Parameter --enable-psc-auto-connection-policy hinzu. Sie müssen zusätzliche Berechtigungen konfigurieren, um diesen Parameter verwenden zu können. Weitere Informationen finden Sie unter Richtlinie für Dienstverbindungen automatisch erstellen.

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der Instanz.
  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält.
  • REGION_NAME: der Name der Region für die Instanz.
  • NUMBER_OF_vCPUs: die Anzahl der Kerne für die Instanz.
  • MEMORY_SIZE: die Größe des Arbeitsspeichers für die Instanz.
  • ROOT_PASSWORD: das Passwort des Cloud SQL-Nutzers root.
  • AVAILABILITY_TYPE: Hochverfügbarkeit für die Instanz aktivieren Geben Sie für diesen Parameter einen der folgenden Werte an:

    • REGIONAL: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.
    • ZONAL: keine Failover-Funktion bereitstellen Das ist der Standardwert.

    Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.

  • DATABASE_VERSION: die Datenbankversion für die Instanz (z. B. SQLSERVER_2019_STANDARD).

  • ALLOWED_PROJECTS: Eine durch Kommas getrennte Liste der zulässigen Projekt-IDs oder -Nummern, von denen aus Private Service Connect-Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen können.

    Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie im Projekt keine Private Service Connect-Endpunkte erstellen, um eine Verbindung zur Instanz herzustellen.

  • CONSUMER_NETWORK: der Pfad zum VPC-Netzwerk, in dem Private Service Connect-Endpunkte erstellt werden müssen. Beispiel: projects/my-host-project/global/networks/default.

  • CONSUMER_PROJECT: das Projekt, in dem der Private Service Connect-Endpunkt erstellt wird. Wenn Sie ein freigegebene VPC-Netzwerk verwenden, kann dies entweder das Hostprojekt oder das Dienstprojekt sein.

    Alle Projekte, die Sie in den Parametern für die automatische Verbindung angeben, werden automatisch Ihren zulässigen Projekten hinzugefügt. Optional können Sie Projekte, in denen Sie Private Service Connect-Endpunkte manuell erstellen möchten, Ihrer Liste der zulässigen Projekte hinzufügen.

Mit diesen Parametern können Sie Private Service Connect aktivieren und konfigurieren:

  • --enable-private-service-connect: Aktiviert Private Service Connect.
  • --allowed-psc-projects=ALLOWED_PROJECTS: Gibt eine durch Kommas getrennte Liste zulässiger Projekt-IDs oder -Nummern an. Dies sind die Projekte, über die Private Service Connect-Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen können.
  • --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT: Gibt den Pfad zum VPC-Netzwerk an, für das Private Service Connect-Endpunkte erstellt werden müssen.
  • --enable-psc-auto-dns: Gibt an, ob die Private Service Connect-DNS-Automatisierung für diese Instanz aktiviert werden soll. Standardmäßig deaktiviert für neue Instanzen, wenn Private Service Connect mit --enable-private-service-connect aktiviert wird.

    Wenn die DNS-Automatisierung aktiviert ist, stellt Cloud SQL einen DNS-Eintrag pro Instanz in allen Netzwerken bereit, die mit automatischen Private Service Connect-Verbindungen konfiguriert sind.

  • --enable-psc-write-endpoint-dns: Gibt an, ob die DNS-Automatisierung für Private Service Connect-Schreibendpunkte für diese Instanz aktiviert ist. Diese Funktion wird nur für Enterprise Plus-Instanzen unterstützt, in denen auch --enable-psc-auto-dns festgelegt ist. Sie ist standardmäßig deaktiviert, wenn eine neue Instanz erstellt wird.

    Wenn die DNS-Automatisierung für Schreibendpunkte aktiviert ist, stellt Cloud SQL einen globalen DNS-Eintrag als Schreibendpunkt für den Replikationscluster in allen Netzwerken bereit, die mit automatischen Private Service Connect-Verbindungen konfiguriert sind. Dieser globale DNS-Eintrag verweist immer auf die aktuelle primäre Instanz des Replikationsclusters. Dies ermöglicht ein nahtloses Anwendungs-Failover, ohne dass clientseitige Verbindungsstring-Aktualisierungen im Falle eines Replikat-Failover- oder Switchover-Vorgangs erforderlich sind.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • INSTANCE_NAME: Der Name der Cloud SQL-Instanz.
  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält.
  • REGION_NAME: der Name der Region für die Instanz.
  • DATABASE_VERSION: die Datenbankversion für die Instanz (z. B. SQLSERVER_2019_STANDARD).
  • ROOT_PASSWORD: das Passwort des Cloud SQL-Nutzers root.
  • AVAILABILITY_TYPE: Der zonale Verfügbarkeitstyp der Instanz. Mit diesem Parameter können Sie die Hochverfügbarkeit für die Instanz aktivieren oder deaktivieren, indem Sie einen der folgenden Werte angeben:
    • REGIONAL: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.
    • ZONAL: keine Switchover-Funktion bereitstellen Das ist der Standardwert.

    Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.

  • ALLOWED_PROJECTS: Eine durch Kommas getrennte Liste zulässiger Projekt-IDs oder -Nummern, von denen aus Private Service Connect-Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen können.

    Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie in diesem Projekt keine Private Service Connect-Endpunkte erstellen, um eine Verbindung zur Instanz herzustellen.

  • CONSUMER_PROJECT: das Projekt, in dem der Private Service Connect-Endpunkt erstellt wird. Wenn Sie ein freigegebene VPC-Netzwerk verwenden, kann dies entweder das Hostprojekt oder das Dienstprojekt sein.

    Alle Projekte, die Sie in den Parametern für die automatische Verbindung angeben, werden automatisch Ihren zulässigen Projekten hinzugefügt. Optional können Sie Projekte, in denen Sie Private Service Connect-Endpunkte manuell erstellen möchten, Ihrer Liste der zulässigen Projekte hinzufügen.

  • PARENT_PROJECT: Das Projekt, das das Netzwerk CONSUMER_NETWORK enthält. Wenn Sie in CONSUMER_PROJECT kein anderes Projekt angeben, werden Endpunkte automatisch in PARENT_PROJECT erstellt.
  • CONSUMER_PROJECT: Optional. Geben Sie dies nur an, wenn CONSUMER_NETWORK ein freigegebene VPC-Netzwerk ist und Sie die automatische Erstellung von Private Service Connect-Endpunkten in einem Dienstprojekt zulassen möchten.

    Alle Projekte, die Sie in den Parametern für die automatische Verbindung angeben, werden automatisch Ihren zulässigen Projekten hinzugefügt. Optional können Sie Projekte, in denen Sie Private Service Connect-Endpunkte manuell erstellen möchten, Ihrer Liste der zulässigen Projekte hinzufügen.

  • CONSUMER_NETWORK: das VPC-Netzwerk, in dem Sie die automatische Erstellung von Private Service Connect-Endpunkten zulassen möchten. Beispiel:
    projects/my-host-project/global/networks/default.
  • MACHINE_TYPE: ein Enum-Stringwert, der den Maschinentyp für die Instanz darstellt. Beispiel: db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE, wobei NUMBER_OF_vCPUs und MEMORY_SIZE die Anzahl der Kerne und die gewünschte Arbeitsspeichermenge für die Instanz sind.

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "name": "INSTANCE_NAME",
  "project": PROJECT_ID",
  "region": "REGION_NAME",
  "databaseVersion": "SQLSERVER_2019_STANDARD",
  "rootPassword": "ROOT_PASSWORD",
  "kind": "sql#instance",
  "settings": {
    "availabilityType": "AVAILABILITY_TYPE",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscAutoConnections": [
          {
            "consumerProject":"CONSUMER_PROJECT",
            "consumerNetwork":"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK"
          }
        ],
        "pscEnabled": true,
        "pscAutoConnectionPolicyEnabled": true,
        "pscAutoDnsEnabled": true,
        "pscWriteEndpointDnsEnabled": true
      }
    },
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "tier": "MACHINE_TYPE"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Mit diesen Feldern aktivieren Sie die DNS-Automatisierung und einen globalen DNS-Namen für den Schreibendpunkt:

  • psc_auto_dns_enabled: Gibt an, ob die DNS-Automatisierung von Private Service Connect für diese Instanz aktiviert ist. Standardmäßig deaktiviert für neue Instanzen, wenn Private Service Connect mit --enable-private-service-connect aktiviert ist.

    Wenn die DNS-Automatisierung aktiviert ist, stellt Cloud SQL einen universellen DNS-Eintrag für alle Netzwerke bereit, die mit automatischen Private Service Connect-Verbindungen konfiguriert sind.

  • psc_write_endpoint_dns_enabled: Gibt an, ob die DNS-Automatisierung des Private Service Connect-Schreibendpunkts für diese Instanz aktiviert ist. Diese Funktion wird nur für Enterprise Plus-Instanzen unterstützt, in denen auch --enable-psc-auto-dns festgelegt ist. Sie ist standardmäßig deaktiviert, wenn eine neue Instanz erstellt wird.

    Wenn die DNS-Automatisierung des Schreibendpunkts aktiviert ist, stellt Cloud SQL einen globalen DNS-Eintrag als Schreibendpunkt in allen Netzwerken bereit, die mit automatischen Private Service Connect-Verbindungen konfiguriert sind. Dieser globale DNS-Eintrag verweist immer auf die aktuelle primäre Instanz des Replikationsclusters. Dies ermöglicht ein nahtloses Anwendungs-Failover ohne clientseitige Aktualisierungen der Verbindungszeichenfolge im Falle eines Replikat-Failover- oder Switchover-Vorgangs.

Wenn Sie beim Erstellen der Instanz automatisch eine Richtlinie für Dienstverbindungen erstellen möchten, aktivieren Sie das folgende Feld:

  • psc_auto_connection_policy_enabled: Gibt an, obGoogle Cloud beim Erstellen der Cloud SQL-Instanz eine Dienstverbindungsrichtlinie erstellen oder aktualisieren soll. Sie müssen zusätzliche Berechtigungen konfigurieren, um diese Option verwenden zu können. Weitere Informationen finden Sie unter Dienstverbindungsrichtlinie automatisch erstellen.

Terraform

Verwenden Sie zum Erstellen der Instanz eine Terraform-Ressource mit dem Feld psc_config:

resource "google_sql_database_instance" "INSTANCE_NAME"
{
  name = "INSTANCE_NAME"
  database_version = "DATABASE_VERSION"
  settings
  {
    tier = "MACHINE_TYPE"
    ip_configuration
    {
      psc_config
      {
        psc_enabled = true
        psc_auto_dns_enabled = true
        psc_write_endpoint_dns_enabled = true
        allowed_consumer_projects = ["ALLOWED_PROJECTS"]
        psc_auto_connections
        {
          consumer_network = "CONSUMER_NETWORK"
          consumer_service_project_id = "CONSUMER_PROJECT"
        }
      }
      ipv4_enabled = false
    }
  }
}

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der Instanz.
  • DATABASE_VERSION: die Datenbankversion für die Instanz (z. B. SQLSERVER_2019_STANDARD).
  • MACHINE_TYPE: der gewünschte Maschinentyp für die Instanz.
  • ALLOWED_PROJECTS: Eine durch Kommas getrennte Liste der zulässigen Projekt-IDs oder -Nummern, von denen aus Private Service Connect-Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen können.

    Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie im Projekt keine Private Service Connect-Endpunkte erstellen, um eine Verbindung zur Instanz herzustellen.

  • CONSUMER_NETWORK: der Pfad zum VPC-Netzwerk, in dem Private Service Connect-Endpunkte erstellt werden müssen. Beispiel: projects/my-host-project/global/networks/default.

  • CONSUMER_PROJECT: das Projekt, in dem der Private Service Connect-Endpunkt erstellt wird. Wenn Sie ein freigegebene VPC-Netzwerk verwenden, kann dies entweder das Hostprojekt oder das Dienstprojekt sein.

Mit diesen Feldern können Sie die DNS-Automatisierung und einen globalen DNS-Namen für den Schreibendpunkt aktivieren:

  • psc_auto_dns_enabled: Gibt an, ob die DNS-Automatisierung von Private Service Connect für diese Instanz aktiviert ist. Standardmäßig deaktiviert für neue Instanzen, wenn Private Service Connect mit --enable-private-service-connect aktiviert ist.

    Wenn die DNS-Automatisierung aktiviert ist, stellt Cloud SQL einen universellen DNS-Eintrag für alle Netzwerke bereit, die mit automatischen Private Service Connect-Verbindungen konfiguriert sind.

  • psc_write_endpoint_dns_enabled: Gibt an, ob die DNS-Automatisierung des Private Service Connect-Schreibendpunkts für diese Instanz aktiviert ist. Diese Funktion wird nur für Enterprise Plus-Instanzen unterstützt, in denen auch --enable-psc-auto-dns festgelegt ist. Sie ist standardmäßig deaktiviert, wenn eine neue Instanz erstellt wird.

    Wenn die DNS-Automatisierung des Schreibendpunkts aktiviert ist, stellt Cloud SQL einen globalen DNS-Eintrag als Schreibendpunkt in allen Netzwerken bereit, die mit automatischen Private Service Connect-Verbindungen konfiguriert sind. Dieser globale DNS-Eintrag verweist immer auf die aktuelle primäre Instanz des Replikationsclusters. Dies ermöglicht ein nahtloses Anwendungs-Failover ohne clientseitige Aktualisierungen der Verbindungszeichenfolge im Falle eines Replikat-Failover- oder Switchover-Vorgangs.

Verwenden Sie das folgende Feld, um Private Service Connect zu aktivieren und automatisch eine Richtlinie für Dienstverbindungen zu erstellen:

  • psc_auto_connection_policy_enabled: Gibt an, obGoogle Cloud beim Erstellen der Cloud SQL-Instanz eine Dienstverbindungsrichtlinie erstellen oder aktualisieren soll. Sie müssen zusätzliche Berechtigungen konfigurieren, um diese Option verwenden zu können. Weitere Informationen finden Sie unter Dienstverbindungsrichtlinie automatisch erstellen.

Ä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

Endpunkt abrufen

Wenn Sie die interne IP-Adresse abrufen, die der Private Service Connect-Endpunkt für eine Instanz ist, können Sie diesen Endpunkt verwenden, um eine Verbindung zur Instanz herzustellen.

gcloud

Verwenden Sie den Befehl gcloud sql instances describe, um Informationen zu einer Instanz aufzurufen, einschließlich der IP-Adresse, die der Private Service Connect-Endpunkt für die Instanz ist:

gcloud sql instances describe INSTANCE_NAME \
--project=PROJECT_ID \
--format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'

Ersetzen Sie die folgenden Werte:

Notieren Sie sich in der Antwort den Wert, der neben dem Feld pscConfig:pscAutoConnections:ipAddress angezeigt wird. Dieser Wert ist die interne IP-Adresse, die auch der Private Service Connect-Endpunkt für die Instanz ist.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "SQLSERVER_2019_STANDARD",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
      "pscAutoConnections": {
        consumerNetwork:"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK",
        consumerNetworkStatus:"CONSUMER_NETWORK_STATUS",
        consumerProject:"CONSUMER_PROJECT",
        ipAddress:"IP_ADDRESS",
        status:"STATUS"
        },
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
}

Die folgenden Felder sind für Instanzen vorhanden, für die Private Service Connect aktiviert ist:

  • allowedConsumerProjects: eine Liste der zulässigen Projekte für die Instanz. Sie können Private Service Connect-Endpunkte aus allen VPC-Netzwerken in diesen Projekten für den Dienstanhang der Instanz erstellen.
  • pscAutoConnections: das zulässige VPC-Netzwerk, der Status der Dienstverbindungsrichtlinie und der Status der IP-Adresse, die der Endpunkt für die Instanz ist.
  • pscEnabled: Gibt an, ob für eine Instanz Private Service Connect aktiviert ist.

Informationen zum Erstellen der zugrunde liegenden REST API-Anfrage für diese Aufgabe finden Sie auf der Seite instances:get.

Endpunkt manuell erstellen

So erstellen Sie den Private Service Connect-Endpunkt manuell:

  1. Cloud SQL-Instanz erstellen, für die Private Service Connect aktiviert ist.

  2. URI des Dienstanhangs abrufen Sie verwenden diesen URI, um den Private Service Connect-Endpunkt zu erstellen.

  3. Reservieren Sie eine interne IP-Adresse für den Private Service Connect-Endpunkt und erstellen Sie einen Endpunkt mit dieser Adresse.

Cloud SQL-Instanz erstellen

Sie können eine Instanz mit aktiviertem Private Service Connect für die Instanz erstellen, indem Sie gcloud CLI, Terraform oder die API verwenden.

gcloud

Verwenden Sie den Befehl gcloud sql instances create, um eine Instanz mit aktiviertem Private Service Connect für die Instanz zu erstellen:

gcloud sql instances create INSTANCE_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--enable-private-service-connect \
--allowed-psc-projects=ALLOWED_PROJECTS \
--availability-type=AVAILABILITY_TYPE \
--no-assign-ip \
--database-version=DATABASE_VERSION
--cpu=NUMBER_OF_vCPUs \
--memory=MEMORY_SIZE \
--root-password=ROOT_PASSWORD

Ersetzen Sie die folgenden Werte:

  • INSTANCE_NAME: der Name der Instanz.
  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält.
  • REGION_NAME: der Name der Region für die Instanz.
  • ALLOWED_PROJECTS: Eine durch Kommas getrennte Liste zulässiger Projekt-IDs oder -Nummern, von denen aus Private Service Connect-Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen können.

    Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie im Projekt keine Private Service Connect-Endpunkte erstellen, um eine Verbindung zur Instanz herzustellen.

  • AVAILABILITY_TYPE: Hochverfügbarkeit für die hochgestufte Instanz aktivieren Geben Sie für diesen Parameter einen der folgenden Werte an:
    • REGIONAL: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.
    • ZONAL: keine Failover-Funktion bereitstellen Dies ist der Standardwert.

    Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.

  • DATABASE_VERSION: die Datenbankversion für die Instanz (z. B. SQLSERVER_2019_STANDARD).
  • NUMBER_OF_vCPUs: die Anzahl der Kerne für die Instanz.
  • MEMORY_SIZE: die Größe des Arbeitsspeichers für die Instanz.
  • ROOT_PASSWORD: das Passwort des Cloud SQL-Nutzers root.

Terraform

Verwenden Sie die google_sql_database_instanceTerraform-Ressource, um eine Instanz mit aktiviertem Private Service Connect für die Instanz zu erstellen.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_ENTERPRISE"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier              = "db-custom-2-7680"
    availability_type = "REGIONAL"
    backup_configuration {
      enabled    = true
      start_time = "20:55"
    }
    ip_configuration {
      psc_config {
        psc_enabled               = true
        allowed_consumer_projects = [] # Add consumer project IDs here.
      }
      ipv4_enabled = false
    }
  }
}

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.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält.
  • INSTANCE_NAME: der Name der Instanz.
  • REGION_NAME: der Name der Region für die Instanz.
  • ROOT_PASSWORD: das Passwort des Cloud SQL-Nutzers root.
  • AVAILABILITY_TYPE: Aktiviert die Hochverfügbarkeit für die Instanz. Geben Sie für diesen Parameter einen der folgenden Werte an:
    • REGIONAL: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.
    • ZONAL: keine Failover-Funktion bereitstellen Dies ist der Standardwert.

    Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.

  • ALLOWED_PROJECTS: Eine durch Kommas getrennte Liste zulässiger Projekt-IDs oder -Nummern, von denen aus Private Service Connect-Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen können.

    Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie im Projekt keine Private Service Connect-Endpunkte erstellen, um eine Verbindung zur Instanz herzustellen.

  • MACHINE_TYPE: ein Enum-Stringwert, der den Maschinentyp für die Instanz darstellt. Beispiel: db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE, wobei NUMBER_OF_vCPUs und MEMORY_SIZE die Anzahl der Kerne und die gewünschte Arbeitsspeichermenge für die Instanz sind.

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "name": "INSTANCE_NAME",
  "project": PROJECT_ID",
  "region": "REGION_NAME",
  "databaseVersion": "SQLSERVER_2019_STANDARD",
  "rootPassword": "ROOT_PASSWORD",
  "kind": "sql#instance",
  "settings": {
    "availabilityType": "AVAILABILITY_TYPE",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscEnabled": true
      }
    },
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "tier": "MACHINE_TYPE"
  }
}

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Dienstanhang abrufen

Nachdem Sie eine Cloud SQL-Instanz mit aktiviertem Private Service Connect erstellt haben, rufen Sie den URI des Dienstanhangs ab und verwenden Sie ihn, um den Private Service Connect-Endpunkt zu erstellen.

gcloud

Verwenden Sie den Befehl gcloud sql instances describe, um zusammenfassende Informationen zu einer Instanz mit aktiviertem Private Service Connect aufzurufen, z. B. das Feld pscServiceAttachmentLink, das den URI anzeigt, der auf den Dienstanhang der Instanz verweist:

gcloud sql instances describe INSTANCE_NAME \
--project=PROJECT_ID

Ersetzen Sie die folgenden Werte:

  • INSTANCE_NAME: der Name der Cloud SQL-Instanz, zu der Private Service Connect-Endpunkte in VPC-Netzwerken eine Verbindung herstellen können
  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält

Das folgende Beispiel zeigt eine Beispielausgabe für diesen Befehl.

gcloud sql instances describe myinstance \
--project=12345

...
pscServiceAttachmentLink: projects/45678/regions/myregion/serviceAttachments/myserviceattachment

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält
  • INSTANCE_NAME den Namen der Instanz

HTTP-Methode und URL:

GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  ...
  pscServiceAttachmentLink: "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"
}

Das Feld pscServiceAttachmentLink zeigt den URI an, der auf den Dienstanhang der Instanz verweist.

Private Service Connect-Endpunkt erstellen

Sie können eine interne IP-Adresse für den Private Service Connect-Endpunkt reservieren und einen Endpunkt mit dieser Adresse erstellen. Zum Erstellen des Endpunkts benötigen Sie den URI des Dienstanhangs und die Projekte, die für die Instanz zulässig sind.

gcloud

  1. Verwenden Sie den Befehl
    gcloud compute addresses create, um eine interne IP-Adresse für den Private Service Connect-Endpunkt zu reservieren:

    gcloud compute addresses create ADDRESS_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --subnet=SUBNET_URI \
    --addresses=INTERNAL_IP_ADDRESS

    Ersetzen Sie die folgenden Werte:

    • ADDRESS_NAME: der Name der internen IP-Adresse.
    • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts für den Endpunkt.
    • REGION_NAME: der Name der Region für den Endpunkt.
    • SUBNET_URI: der Subnetzname für die IP-Adresse. Das Format ist: projects/SUBNET_PROJECT_ID/regions/REGION_NAME/subnetworks/SUBNET_NAME. Wenn sich das Subnetz in einem freigegebene VPC-Netzwerk befindet, empfehlen wir, dass SUBNET_PROJECT_ID das Hostprojekt ist.
    • INTERNAL_IP_ADDRESS: Die zu reservierende IP-Adresse. Diese IP-Adresse muss sich innerhalb des primären IP-Bereichs des Subnetzes befinden. Die IP-Adresse kann eine RFC 1918-Adresse oder ein Subnetz mit Nicht-RFC-Bereichen sein. Wenn Sie die IP-Adresse nicht angeben möchten, weil Sie eine verfügbare IP-Adresse im Subnetz reservieren möchten, lassen Sie dieses Flag weg. Google Cloud
  2. Prüfen Sie mit dem Befehl gcloud compute addresses list, ob die IP-Adresse reserviert ist:

    gcloud compute addresses list ADDRESS_NAME \
    --project=PROJECT_ID

    Prüfen Sie in der Antwort, ob für die IP-Adresse der Status RESERVED angezeigt wird.

  3. Verwenden Sie den Befehl gcloud compute forwarding-rules create, um den Private Service Connect-Endpunkt zu erstellen und auf den Cloud SQL-Dienstanhang zu verweisen:

    gcloud compute forwarding-rules create ENDPOINT_NAME \
    --address=ADDRESS_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --network=NETWORK_URI \
    --target-service-attachment=SERVICE_ATTACHMENT_URI \
    --allow-psc-global-access

    Ersetzen Sie die folgenden Werte:

    • ENDPOINT_NAME: der Name des Endpunkts.
    • NETWORK_URI: der URI des VPC-Netzwerk für den Endpunkt. Das Format ist: projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME. Wenn Sie ein freigegebene VPC-Netzwerk verwenden möchten, geben Sie das Hostprojekt als NETWORK_PROJECT_ID an.
    • SERVICE_ATTACHMENT_URI ist der URI des Dienstanhangs.
  4. Prüfen Sie mit dem Befehl
    gcloud compute forwarding-rules describe, ob der Dienstanhang den Endpunkt akzeptiert:

    gcloud compute forwarding-rules describe ENDPOINT_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME

    Prüfen Sie in der Antwort, ob für das Feld pscConnectionStatus der Status ACCEPTED angezeigt wird. Der Endpunkt kann eine Verbindung zum Dienstanhang herstellen.

Terraform

Verwenden Sie die google_sql_database_instanceTerraform-Ressource, um einen Private Service Connect-Endpunkt zu erstellen.

Verwenden Sie das folgende Beispiel, um einen IPv4 Private Service Connect-Endpunkt zu erstellen.

resource "google_compute_address" "default" {
  name         = "psc-compute-address-${google_sql_database_instance.default.name}"
  region       = "us-central1"
  address_type = "INTERNAL"
  subnetwork   = "default"     # Replace value with the name of the subnet here.
  address      = "10.128.0.44" # Replace value with the IP address to reserve.
}

data "google_sql_database_instance" "default" {
  name = resource.google_sql_database_instance.default.name
}

resource "google_compute_forwarding_rule" "default" {
  name                    = "psc-forwarding-rule-${google_sql_database_instance.default.name}"
  region                  = "us-central1"
  network                 = "default"
  ip_address              = google_compute_address.default.self_link
  load_balancing_scheme   = ""
  target                  = data.google_sql_database_instance.default.psc_service_attachment_link
  allow_psc_global_access = true
}

Verwenden Sie das folgende Beispiel, um einen IPv6 Private Service Connect-Endpunkt zu erstellen.

resource "google_compute_network" "ipv6_default" {
  name                     = "net-ipv6"
  auto_create_subnetworks  = false
  enable_ula_internal_ipv6 = true
}

resource "google_compute_subnetwork" "ipv6_default" {
  name             = "subnet-internal-ipv6"
  ip_cidr_range    = "10.0.0.0/16"
  region           = "us-central1"
  stack_type       = "IPV4_IPV6"
  ipv6_access_type = "INTERNAL"
  network          = google_compute_network.ipv6_default.id
}

resource "google_compute_address" "ipv6_default" {
  name         = "psc-compute-ipv6-address-${google_sql_database_instance.default.name}"
  region       = "us-central1"
  address_type = "INTERNAL"
  subnetwork   = google_compute_subnetwork.ipv6_default.name
  ip_version   = "IPV6"
}

resource "google_compute_forwarding_rule" "ipv6_ilb_example" {
  name   = "ipv6-psc-forwarding-rule-${google_sql_database_instance.default.name}"
  region = "us-central1"

  load_balancing_scheme   = ""
  target                  = data.google_sql_database_instance.default.psc_service_attachment_link
  network                 = google_compute_network.ipv6_default.name
  subnetwork              = google_compute_subnetwork.ipv6_default.name
  ip_address              = google_compute_address.ipv6_default.id
  allow_psc_global_access = true
}

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.

REST

  1. Reservieren Sie eine interne IP-Adresse für den Private Service Connect-Endpunkt.

  2. Prüfen Sie, ob die IP-Adresse reserviert ist.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das den Private Service Connect-Endpunkt enthält
    • REGION_NAME: der Name der Region
    • ADDRESS_NAME ist der Name der IP-Adresse.

    HTTP-Methode und URL:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME

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

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
      "kind": "compute#address",
      "id": "ADDRESS_ID",
      "creationTimestamp": "2024-05-09T11:20:50.114-07:00",
      "name": "ADDRESS_NAME",
      "description": "This is the name of the internal IP address.",
      "address": "IP_ADDRESS",
      "status": "RESERVED",
      "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME",
      "networkTier": "PREMIUM",
      "labelFingerprint": "LABEL_FINGERPRINT_ID",
      "addressType": "EXTERNAL"
    }
    

    Prüfen Sie in der Antwort, ob für die IP-Adresse der Status RESERVED angezeigt wird.

  3. Erstellen Sie den Private Service Connect-Endpunkt und verweisen Sie auf den Cloud SQL-Dienstanhang.

  4. Prüfen Sie, ob der Dienstanhang den Endpunkt akzeptiert.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das den Private Service Connect-Endpunkt enthält
    • REGION_NAME: der Name der Region
    • ENDPOINT_NAME: der Name des Endpunkts.

    HTTP-Methode und URL:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME

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

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
      "kind": "compute#forwardingRule",
      "id": "ENDPOINT_ID",
      "creationTimestamp": "2024-05-09T12:03:21.383-07:00",
      "name": "ENDPOINT_NAME",
      "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
      "IPAddress": "IP_ADDRESS",
      "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME",
      "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default",
      "serviceDirectoryRegistrations": [
        {
          "namespace": "goog-psc-default"
        }
      ],
      "networkTier": "PREMIUM",
      "labelFingerprint": "LABEL_FINGERPRINT_ID",
      "fingerprint": "FINGERPRINT_ID",
      "pscConnectionId": "CONNECTION_ID",
      "pscConnectionStatus": "ACCEPTED",
      "allowPscGlobalAccess": true
    }
    

    Prüfen Sie in der Antwort, ob für das Feld pscConnectionStatus der Status ACCEPTED angezeigt wird. Der Endpunkt kann eine Verbindung zum Dienstanhang herstellen.

Verbindung mit einer Cloud SQL-Instanz herstellen

Sie können eine Verbindung zu einer Cloud SQL-Instanz mit aktiviertem Private Service Connect über eine interne IP-Adresse, einen DNS-Eintrag, den Cloud SQL Auth-Proxy, die Cloud SQL Language Connectors oder andereGoogle Cloud -Anwendungen herstellen.

Verbindung über einen DNS-Eintrag herstellen

DNS ist die empfohlene Methode, um eine Verbindung zu Instanzen mit aktiviertem Private Service Connect herzustellen. Über einen DNS-Namen können verschiedene Netzwerke eine Verbindung zur selben Instanz herstellen, wobei Private Service Connect-Endpunkte in jedem Netzwerk unterschiedliche IP-Adressen haben können. Außerdem benötigt der Cloud SQL Auth-Proxy DNS-Namen, um eine Verbindung zu diesen Instanzen herzustellen. Informationen zum Einrichten von DNS finden Sie unter DNS für Private Service Connect konfigurieren.

Führen Sie die folgenden Schritte aus, bevor Sie mithilfe eines DNS-Eintrags eine Verbindung zu einer Cloud SQL-Instanz herstellen:

  1. Private Service Connect-Endpunkt erstellen
  2. Prüfen Sie, ob der Dienstanhang der Instanz den Endpunkt akzeptiert. Prüfen Sie den Status, um festzustellen, ob der Status des Endpunkts ACCEPTED lautet.
  3. Konfigurieren Sie eine verwaltete DNS-Zone und einen DNS-Eintrag.

Wenn Sie diese Bedingungen erfüllen, stellen Sie mit dem DNS-Eintrag eine Verbindung zur Instanz von jedem VPC-Netzwerk aus, in dem Sie den Endpunkt erstellt haben, her.

sqlcmd -S DNS_RECORD -d DATABASE_NAME -U USERNAME

Ersetzen Sie die folgenden Werte:

  • DNS_RECORD: der DNS-Eintrag des Endpunkts
  • DATABASE_NAME: der Name der Cloud SQL for SQL Server-Datenbank, die in der Instanz enthalten ist
  • USERNAME ist der Name des Nutzers, der eine Verbindung zur Instanz herstellt.

Direkte Verbindung über eine interne IP-Adresse

Führen Sie die folgenden Aktionen aus, bevor Sie eine Verbindung zu einer Cloud SQL-Instanz mit aktiviertem Private Service Connect herstellen:

  1. Private Service Connect-Endpunkt erstellen
  2. Prüfen Sie, ob der Dienstanhang der Instanz den Endpunkt akzeptiert. Prüfen Sie den Status, um festzustellen, ob der Status des Endpunkts ACCEPTED lautet.

Wenn diese Bedingungen erfüllt sind, verwenden Sie die IP-Adresse des Endpunkts, um von jedem VPC-Netzwerk, in dem Sie den Endpunkt erstellt haben, auf die Instanz zuzugreifen.

  1. Rufen Sie die interne IP-Adresse des Private Service Connect-Endpunkts anhand des Namens der IP-Adresse des Endpunkts ab.

    gcloud

    Verwenden Sie den Befehl gcloud compute addresses describe, um die IP-Adresse abzurufen:

    gcloud compute addresses describe ADDRESS_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME

    Ersetzen Sie die folgenden Werte:

    • ADDRESS_NAME: der Name der IP-Adresse des Endpunkts
    • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das den Endpunkt enthält
    • REGION_NAME: der Name der Region für den Endpunkt.

    Prüfen Sie in der Antwort, ob für das Feld address eine IP-Adresse angezeigt wird. Dies ist die interne IP-Adresse.

    REST

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das den Endpunkt enthält
    • REGION_NAME: der Name der Region für den Endpunkt.
    • ADDRESS_NAME: der Name der IP-Adresse des Endpunkts

    HTTP-Methode und URL:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME

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

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
      "kind": "compute#address",
      "id": "ADDRESS_ID",
      "creationTimestamp": "2024-05-09T11:20:50.114-07:00",
      "name": "ADDRESS_NAME",
      "description": "This is the name of the internal IP address.",
      "address": "IP_ADDRESS",
      "status": "RESERVED",
      "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME",
      "networkTier": "PREMIUM",
      "labelFingerprint": "LABEL_FINGERPRINT_ID",
      "addressType": "EXTERNAL"
    }
    

    Die interne IP-Adresse ist der Wert, der dem Feld address zugeordnet ist.

  2. Alternativ können Sie die interne IP-Adresse des Private Service Connect-Endpunkts über den Dienstanhang der Cloud SQL-Instanz abrufen.

    gcloud

    Verwenden Sie den Befehl gcloud compute forwarding-rules list, um die IP-Adresse abzurufen:

    gcloud compute forwarding-rules list \
    --filter="TARGET:REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" \
    --project=PROJECT_ID

    Ersetzen Sie die folgenden Werte:

    • REGION_NAME: der Name der Region für den Endpunkt.
    • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das den Endpunkt enthält
    • SERVICE_ATTACHMENT_NAME: der Name der Dienstanhänge für die Cloud SQL-Instanz

    Prüfen Sie in der Antwort, ob eine IP-Adresse angezeigt wird. Dies ist die interne IP-Adresse.

    Hier ist eine Beispielantwort:

    NAME REGION IP_ADDRESS TARGET
    myInstance us-central1 10.10.10.10 us-central1/serviceAttachments/a-123456789e0a-psc-service-attachment-abc123d4e5f67gh8

    REST

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das den Endpunkt enthält
    • REGION_NAME: der Name der Region für den Endpunkt.
    • SERVICE_ATTACHMENT_PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das den Dienstanhang enthält
    • SERVICE_ATTACHMENT_NAME: der Name der Dienstanhänge für die Cloud SQL-Instanz

    HTTP-Methode und URL:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules?target="https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"

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

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
      "kind": "compute#forwardingRuleList",
      "id": "projects/PROJECT_ID/regions/REGION_NAME/forwardingRules",
      "items": [
        {
          "kind": "compute#forwardingRule",
          "id": "FORWARDING_RULE_ID",
          "creationTimestamp": "2023-10-31T13:04:37.168-07:00",
          "name": "FORWARDING_RULE_NAME",
          "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
          "IPAddress": "IP_ADDRESS",
          "target": "https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME",
          "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/FORWARDING_RULE_NAME",
          "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
          "serviceDirectoryRegistrations": [
            {
              "namespace": "goog-psc-default"
            }
          ],
          "networkTier": "PREMIUM",
          "labelFingerprint": "LABEL_FINGERPRINT_ID",
          "fingerprint": "FINGERPRINT_ID",
          "pscConnectionId": "PSC_CONNECTION_ID",
          "pscConnectionStatus": "CLOSED",
          "allowPscGlobalAccess": true
        }
      ],
      "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules"
    }
    

    Die interne IP-Adresse ist der Wert, der dem Feld IPAddress zugeordnet ist.

  3. Verwenden Sie die interne IP-Adresse, um eine Verbindung zur Cloud SQL-Instanz herzustellen.

    sqlcmd -S IP_ADDRESS -d DATABASE_NAME -U USERNAME

    Ersetzen Sie die folgenden Werte:

    • IP_ADDRESS: IP-Adresse des Endpunkts
    • DATABASE_NAME: der Name der Cloud SQL for SQL Server-Datenbank, die in der Instanz enthalten ist
    • USERNAME ist der Name des Nutzers, der eine Verbindung zur Instanz herstellt.

Verbindung über den Cloud SQL Auth-Proxy herstellen

Der Cloud SQL Auth-Proxy ist ein Connector, der einen sicheren Zugriff auf eine Instanz mit aktiviertem Private Service Connect ermöglicht, ohne dass autorisierte Netzwerke erforderlich sind oder SSL konfiguriert werden muss.

Konfigurieren Sie den Cloud SQL Auth-Proxy mit dem Private Service Connect-DNS-Namen Ihrer Instanz. Ein DNS-Name identifiziert einen DNS-Eintrag, der eine DNS-Ressource einem Domainnamen zuordnet. Weitere Informationen zum Aktivieren von DNS für Ihr Projekt finden Sie unter DNS in Private Service Connect konfigurieren. Informationen zum Suchen vorhandener DNS-Namen für Ihre Instanz finden Sie unter DNS-Namen suchen.

Sie können den Cloud SQL Auth Proxy auch so konfigurieren, dass er den DNS-Namen des Private Service Connect-Schreibendpunkts eines erweiterten Failover-Clusters verwendet, sofern ein solcher aktiviert ist. Wenn der Name des Private Service Connect-DNS-Schreibendpunkts für Ihren Cluster beispielsweise abcdef123456.987654321fedcb.global.sql-psc.goog ist, starten Sie den Auth-Proxy so:

./cloud-sql-proxy abcdef123456.987654321fedcb.global.sql-psc.goog

Wenn Sie die Verbindung über Private Service Connect herstellen, ist Cloud SQL Auth-Proxy-Version v2.5.0 oder höher erforderlich.

Cloud SQL Auth-Proxy herunterladen und installieren

Wenn Sie eine Verbindung zu Instanzen mit aktiviertem Private Service Connect herstellen möchten, müssen Sie die Binärdatei für den Cloud SQL Auth-Proxy herunterladen und installieren. Welches Binärprogramm Sie herunterladen müssen, hängt davon ab, welches Betriebssystem Sie nutzen und ob darin ein 32-Bit- oder ein 64-Bit-Kernel verwendet wird. Auf neuerer Hardware wird meistens ein 64-Bit-Kernel verwendet.

Wenn Sie sich nicht sicher sind, ob auf Ihrem Computer ein 32-Bit- oder 64-Bit-Kernel ausgeführt wird, verwenden Sie den Befehl uname -a für Linux oder macOS. Für Windows finden Sie entsprechende Informationen in der Windows-Dokumentation.

Cloud SQL Auth-Proxy starten

Der Cloud SQL Auth-Proxy unterstützt Verbindungen zu Instanzen, auf denen Private Service Connect aktiviert ist. Weitere Informationen finden Sie unter Cloud SQL Auth-Proxy starten.

  1. Zusammenfassende Informationen zu einer Cloud SQL-Instanz einschließlich des Verbindungsnamens der Instanz anzeigen.

    gcloud

    Verwenden Sie den Befehl
    gcloud sql instances describe, um zusammenfassende Informationen zu einer Cloud SQL-Instanz aufzurufen.

      gcloud sql instances describe INSTANCE_NAME \
        --project=PROJECT_ID \
        --format='value(connectionName)'

    Ersetzen Sie die folgenden Werte:

    • INSTANCE_NAME: Der Name der Cloud SQL-Instanz.
    • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält

    Der Verbindungsname hat das Format PROJECT_ID:REGION_NAME:INSTANCE_NAME.

    REST

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält
    • INSTANCE_NAME den Namen der Instanz

    HTTP-Methode und URL:

    GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

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

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

    {
      ...
      "connectionName": "PROJECT_ID:REGION_NAME:INSTANCE_NAME"
    }
    

    Der Verbindungsname hat das Format PROJECT_ID:REGION_NAME:INSTANCE_NAME.

  2. Kopieren Sie den Namen der Instanzverbindung.
  3. Starten Sie den Cloud SQL Auth-Proxy:

      ./cloud-sql-proxy INSTANCE_CONNECTION_NAME --psc

    Ersetzen Sie INSTANCE_CONNECTION_NAME durch den Namen der Instanzverbindung, den Sie im vorherigen Schritt kopiert haben.

Verbindung über die Cloud SQL Language Connectors herstellen

Die Cloud SQL Language Connectors sind Bibliotheken, die einen sicheren Zugriff auf eine Cloud SQL-Instanz mit aktiviertem Private Service Connect ermöglichen, ohne dass autorisierte Netzwerke erforderlich sind oder SSL konfiguriert werden muss.

Konfigurieren Sie den Cloud SQL Auth-Proxy mit dem Private Service Connect-DNS-Namen Ihrer Instanz und dem Private Service Connect-DNS-Namen des Schreibendpunkts eines erweiterten Failover-Clusters, falls Sie einen aktiviert haben. Ein DNS-Name identifiziert einen DNS-Eintrag, der eine DNS-Ressource einem Domainnamen zuordnet. Weitere Informationen zum Aktivieren von DNS für Ihr Projekt finden Sie unter DNS in Private Service Connect konfigurieren. Informationen zum Suchen vorhandener DNS-Namen für Ihre Instanz finden Sie unter DNS-Namen suchen.

Die Cloud SQL Language Connectors unterstützen Private Service Connect-Verbindungen über den IP-Typ PSC in den entsprechenden Bibliotheken. Die Dokumentation für die einzelnen Connectors finden Sie in der öffentlichen Dokumentation auf GitHub zur erweiterten Notfallwiederherstellung (Disaster Recovery, DR):

Verbindung über App Engine Standard, Cloud Run oder Cloud Run-Funktionen herstellen

Um eine Verbindung zu Cloud SQL-Instanzen mit aktiviertem Private Service Connect herzustellen, können Sie App Engine Standard oder Cloud Run verwenden.

In diesen unterstützten serverlosen Umgebungen werden sowohl die Cloud SQL Language Connectors als auch direkte TCP-Verbindungen über eine IP-Adresse und eine Portnummer unterstützt. Bei direkten TCP-Verbindungen ist dies die IP-Adresse, die Sie beim Erstellen des Private Service Connect-Endpunkts reservieren. Sie können die IP-Adresse als Adresse für den Datenbankhost angeben.

Wenn Sie für den Endpunkt einen DNS-Eintrag erstellen, können Sie diesen Eintrag für den Host angeben.

Von BigQuery aus verbinden

Verwenden Sie den Parameter
--enable-google-private-path, um auf Daten in Cloud SQL zuzugreifen und diese über eine interne IP-Verbindung abzufragen . Dieser Parameter ist nur in folgenden Fällen gültig:

  • Sie verwenden den Parameter --no-assign-ip.
  • Sie geben mit dem Parameter --network den Namen des VPC-Netzwerks an, das Sie zum Erstellen einer internen Verbindung verwenden möchten.

Ausgehende Verbindungen für Ihre Cloud SQL-Instanz konfigurieren

Sie können Ihre Cloud SQL-Instanz mit aktiviertem Private Service Connect so konfigurieren, dass sie über eine Private Service Connect-Schnittstelle und einen Netzwerkanhang eine ausgehende Verbindung zu Ihrem Netzwerk herstellt. Weitere Informationen zur Funktionsweise der ausgehenden Private Service Connect-Verbindung und zu ihren Einschränkungen finden Sie unter Übersicht über die ausgehende Private Service Connect-Verbindung.

Wenn Sie ausgehende Verbindungen mit Ihrer Cloud SQL-Instanz verwenden möchten, müssen Sie Folgendes tun:

  1. Netzwerkverbindung erstellen oder aktualisieren. Dieser Netzwerk-Anhang wird von der Cloud SQL-Instanz verwendet, um eine Verbindung zur Private Service Connect-Schnittstelle Ihres Netzwerks herzustellen.

    1. Der Netzwerkanhang muss sich in derselben Region wie Ihre Cloud SQL-Instanz befinden und so eingerichtet sein, dass Verbindungen automatisch akzeptiert werden. Dazu wird eine Liste von Private Service Connect-Schnittstellen verwendet.

    2. Rufen Sie die Cloud SQL-Mandantenprojekt-ID ab. Verwenden Sie den Befehl gcloud sql instances describe, um Details zur Instanz abzurufen. Die Mandantenprojekt-ID finden Sie in der Dienstanhang-URL, die in der Ausgabe angezeigt wird:

        ADMIN_PROJECT=PROJECT_ID
        INSTANCE_NAME=INSTANCE_NAME
      
        TENANT_PROJECT_ID=$(gcloud --project=$ADMIN_PROJECT sql instances describe $INSTANCE_NAME | grep pscServiceAttachmentLink | cut -f 2 -d "/")
      

      Ersetzen Sie Folgendes:

      • PROJECT_ID: Die Projekt-ID für das Google Cloud-Projekt, das Sie verwenden.
      • INSTANCE_NAME: Der Name der Cloud SQL-Instanz mit aktiviertem Private Service Connect, die Sie für ausgehende Verbindungen einrichten möchten.

      Speichern Sie den Wert für die Mandantenprojekt-ID, um ihn später in die Liste der angenommenen Projekt-IDs aufzunehmen. Dies ist erforderlich, wenn Sie einen Netzwerkanhang in Ihrem Google Cloud -Projekt erstellen oder aktualisieren.

  2. Identifizieren Sie das Netzwerk, aus dem Cloud SQL-Ausgangsverbindungen empfangen werden sollen, und prüfen Sie, ob es eine Private Service Connect-Schnittstelle hat.

  3. Ausgehende Verbindungen zu Ihrer Cloud SQL-Instanz über die Netzwerkanbindung aktivieren.

Sie können die Ausgangsverbindungen auch jederzeit deaktivieren, wenn Sie keine Ausgangsverbindungen zu Ihrer Instanz mehr benötigen.

Weitere Informationen zu ausgehenden Private Service Connect-Verbindungen finden Sie unter Ausgehende Private Service Connect-Verbindungen.

Ausgehende Verbindungen für Ihre Cloud SQL-Instanz aktivieren

Wenn Sie die ausgehende Konnektivität für Ihre Cloud SQL-Instanz aktivieren möchten, müssen Sie zuerst eine Netzwerkverbindung in Ihrem Google Cloud -Projekt erstellen oder aktualisieren.

gcloud

Führen Sie den folgenden Befehl aus, um ausgehende Verbindungen zu aktivieren:

gcloud beta sql instances patch INSTANCE_NAME \
  --psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
  --project=PROJECT_ID

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der Private Service Connect-fähigen Cloud SQL-Instanz, die Sie für die ausgehende Konnektivität einrichten möchten.
  • NETWORK_ATTACHMENT_URI: der URI des Netzwerkanhangs in Ihrem Google Cloud -Projekt, den Sie verwenden möchten, um eine Verbindung zur Private Service Connect-Schnittstelle Ihres Netzwerks herzustellen.
  • PROJECT_ID: Die Projekt-ID für das Google Cloud-Projekt, das Sie verwenden.

Sie können bestätigen, dass ausgehende Private Service Connect-Verbindungen erfolgreich aktiviert wurden, indem Sie gcloud sql instances describe ausführen. Wenn in der Ausgabe psc-network-attachment-uri angezeigt wird, wurde die ausgehende Private Service Connect-Verbindung erfolgreich aktiviert.

REST Version 1

Führen Sie den folgenden Befehl aus, um ausgehende Verbindungen zu aktivieren:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die Projekt-ID.
  • NETWORK_ATTACHMENT_URI: der URI des Netzwerk-Anhangs in Ihrem Projekt.
  • INSTANCE_ID: Der Name Ihrer Cloud SQL-Instanz.

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "settings": {
    "ipConfiguration": {
      "pscConfig: {
        "networkAttachmentUri": "NETWORK_ATTACHMENT_URI"
        "kind": "sql#settings"
      }
    },
  }
}

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": USER,
  "insertTime": "2025-05-13T20:44:23.064Z",
  "operationType": "UPDATE",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID","
}

REST v1beta4

Führen Sie den folgenden Befehl aus, um ausgehende Verbindungen zu aktivieren:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die Projekt-ID.
  • NETWORK_ATTACHMENT_URI: der URI des Netzwerk-Anhangs in Ihrem Projekt.
  • INSTANCE_ID: Der Name Ihrer Cloud SQL-Instanz.

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "settings": {
    "ipConfiguration": {
      "pscConfig: {
        "networkAttachmentUri": "NETWORK_ATTACHMENT_URI"
      }
    },
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": USER,
  "insertTime": "2025-05-13T20:44:23.064Z",
  "operationType": "UPDATE",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID","
}

Informationen zur Fehlerbehebung bei ausgehenden Verbindungen über Private Service Connect finden Sie unter Fehlerbehebung bei Private Service Connect.

Ausgehende Verbindungen für Ihre Cloud SQL-Instanz deaktivieren

gcloud

Führen Sie den folgenden Befehl aus, um die ausgehende Verbindung zu deaktivieren:

gcloud beta sql instances patch INSTANCE_NAME \
  --clear-psc-network-attachment-uri \
  --project=PROJECT_ID

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der Private Service Connect-fähigen Cloud SQL-Instanz, die Sie für die ausgehende Konnektivität einrichten möchten.
  • PROJECT_ID: Die Projekt-ID für das Google Cloud-Projekt, das Sie verwenden.

REST Version 1

Führen Sie den folgenden Befehl aus, um die ausgehende Verbindung zu deaktivieren:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die Projekt-ID.
  • NETWORK_ATTACHMENT_URI: der URI des Netzwerk-Anhangs in Ihrem Projekt. Setzen Sie den Wert auf null, um sie zu deaktivieren.
  • INSTANCE_ID: Der Name Ihrer Cloud SQL-Instanz.

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "settings": {
    "ipConfiguration": {
      "pscConfig: {
        "networkAttachmentUri": null,
        "kind": "sql#settings"
      }
    },
  }
}

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": USER,
  "insertTime": "2025-05-13T20:44:23.064Z",
  "operationType": "UPDATE",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID","
}

REST v1beta4

Führen Sie den folgenden Befehl aus, um die ausgehende Verbindung zu deaktivieren:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die Projekt-ID.
  • NETWORK_ATTACHMENT_URI: der URI des Netzwerk-Anhangs in Ihrem Projekt. Setzen Sie den Wert auf null, um sie zu deaktivieren.
  • INSTANCE_ID: Der Name Ihrer Cloud SQL-Instanz.

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "settings": {
    "ipConfiguration": {
      "pscConfig: {
        "networkAttachmentUri": null,
        "kind": "sql#settings"
      }
    },
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": USER,
  "insertTime": "2025-05-13T20:44:23.064Z",
  "operationType": "UPDATE",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID","
}

Verbindung testen

Legen Sie die IP-Adresse des Private Service Connect-Endpunkts als Ziel-IP-Adresse fest, um die eingehende Verbindung zu einer Cloud SQL-Instanz mit aktiviertem Private Service Connect zu testen.

gcloud

Verwenden Sie den gcloud network-management connectivity-tests create, um einen Konnektivitätstest für eine Cloud SQL-Instanz mit aktiviertem Private Service Connect zu erstellen:

gcloud network-management connectivity-tests create CONNECTIVITY_TEST_NAME \
--source-instance=SOURCE_INSTANCE \
--destination-cloud-sql-instance=DESTINATION_CLOUD_SQL_INSTANCE \
--destination-network=DESTINATION_NETWORK \
--destination-port=DESTINATION_PORT \
--protocol=tcp

Ersetzen Sie die folgenden Werte:

  • CONNECTIVITY_TEST_NAME: der Name des Konnektivitätstests.
  • SOURCE_INSTANCE: der URI für die Compute Engine-Instanz, in der sich die Quell-IP-Adresse befindet, z. B. projects/myproject/zones/myzone/instances/myinstance.
  • DESTINATION_CLOUD_SQL_INSTANCE: die URL für die Cloud SQL-Instanz, z. B. projects/myproject/instances/myinstance.
  • DESTINATION_NETWORK: der URI für das VPC-Netzwerk, in dem sich die Ziel-IP-Adresse befindet, z. B. projects/myproject/global/networks/mynetwork.
  • DESTINATION_PORT: die Portnummer, die für die Instanz reserviert ist. Für Cloud SQL for SQL Server-Instanzen lautet die Portnummer 1433.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält.
  • CONNECTIVITY_TEST_NAME: der Name des Konnektivitätstests.
  • SOURCE_IP_ADDRESS: die IP-Adresse der Compute Engine-Quellinstanz.
  • SOURCE_INSTANCE: der URI für die Compute Engine-Instanz, in der sich die Quell-IP-Adresse befindet, z. B. projects/myproject/zones/myzone/instances/myinstance.
  • SOURCE_NETWORK: der URI für das VPC-Netzwerk, in dem sich die Quell-IP-Adresse befindet, z. B. projects/myproject/global/networks/mynetwork
  • DESTINATION_IP_ADDRESS: die IP-Adresse der Cloud SQL-Zielinstanz.
  • DESTINATION_PORT: die Portnummer, die für die Instanz reserviert ist. Für Cloud SQL for SQL Server-Instanzen lautet die Portnummer 1433.
  • DESTINATION_NETWORK: der URI für das VPC-Netzwerk, in dem sich die Ziel-IP-Adresse befindet, z. B. projects/myproject/global/networks/mynetwork.

HTTP-Methode und URL:

POST https://networkmanagement.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/connectivityTests?testId=CONNECTIVITY_TEST_NAME

JSON-Text anfordern:

{
  "source": {
    "ipAddress": "SOURCE_IP_ADDRESS",
    "instance": "SOURCE_INSTANCE",
    "network": "SOURCE_NETWORK"
  },
  "destination": {
    "ipAddress": "DESTINATION_IP_ADDRESS",
    "port": DESTINATION_PORT,
    "network": "DESTINATION_NETWORK",
    "projectId": "PROJECT_ID"
  },
  "protocol": "TCP"
}

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

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_ID/locations/global/operations/operation-OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkmanagement.v1.OperationMetadata",
    "createTime": "2024-05-23T16:43:49.313981473Z",
    "target": "projects/PROJECT_ID/locations/global/connectivityTests/CONNECTIVITY_TEST_NAME",
    "verb": "create",
    "cancelRequested": false,
    "apiVersion": "v1"
  },
  "done": false
}

Beschränkungen

  • Sie können bis zu 20 Private Service Connect-Endpunkte einrichten, die eine Verbindung zum Dienstanhang einer Cloud SQL-Instanz herstellen, auf der Private Service Connect aktiviert ist.

    Wenn Sie eine Verbindung von mehreren VPC-Netzwerken aus herstellen müssen, verwenden Sie die Weitergabe von Private Service Connect-Endpunkten über NCC. Weitere Informationen finden Sie unter Private Service Connect-Endpunktweitergabe.

  • Sie können mit Private Service Connect bis zu 64.512 gleichzeitige Verbindungen zu einer Cloud SQL-Instanz haben.

  • Die folgenden Flags sind ungültig oder beeinträchtigt:

    • --no-assign-ip: verwenden dieses Flag, da Instanzen mit aktiviertem Private Service Connect keine anderen Verbindungstypen wie externe IP-Verbindungen verwenden können
    • --authorized-networks: Sie können dieses Flag nicht verwenden, um autorisierte Netzwerke hinzuzufügen.
    • --network: Sie können dieses Flag nicht verwenden, da es dem Zugriff auf private Dienste zugeordnet ist.
    • --allocated-ip-range-name: Sie können dieses Flag nicht verwenden, da zulässige IP-Bereichsnamen nicht unterstützt werden
  • Sie können eine Instanz, für die Private Service Connect aktiviert ist, nicht für die Verwendung des Zugriffs auf private Dienste oder für externe IP-Verbindungen konfigurieren.

    • Sie können keine externen IP-Verbindungen für eine Instanz mit aktiviertem Private Service Connect aktivieren.
    • Sie können keinen Zugriff auf private Dienste aktivieren und der Instanz keine autorisierten Netzwerke hinzufügen.
    • Sie können den Verbindungstyp der Instanz nicht ändern.
    • Sie können den Befehl gcloud sql connect, Cloud Shell, Cloud Build, Database Migration Service oder Datastream nicht verwenden, um eine Verbindung zu Cloud SQL-Instanzen mit aktiviertem Private Service Connect herzustellen.

    • Beim Testen der Verbindung zu einer Cloud SQL-Instanz mit aktiviertem Private Service Connect können Sie die folgenden Elemente nicht festlegen:

      • Die interne IP-Adresse oder der DNS-Name der Instanz direkt als Ziel
      • Die Instanz als Quelle
      • Die IP-Adresse des Private Service Connect-Endpunkts als Quelle
    • IP-basierte Zulassungslisten mithilfe autorisierter Netzwerke werden nicht unterstützt.

    • IP-basierte Zulassungslisten, die durch den kontextsensitiven Zugriff erzwungen werden, werden nicht unterstützt.

    • Bei Cloud SQL-Instanzen mit aktiviertem Private Service Connect wird Managed Service for Microsoft Active Directory (auch Managed Microsoft AD genannt) nicht unterstützt.

    Fehlerbehebung

    Dieser Abschnitt enthält Informationen zu Problemen im Zusammenhang mit Cloud SQL-Instanzen mit aktiviertem Private Service Connect sowie Schritte zur Fehlerbehebung.

    Problem Fehlerbehebung
    Der Dienstanhang der Instanz akzeptiert den Private Service Connect-Endpunkt nicht.
    1. Prüfen Sie den Status des Endpunkts.

      gcloud

      Verwenden Sie zum Prüfen des Status den Befehl
      gcloud compute forwarding-rules describe.

      gcloud compute forwarding-rules describe ENDPOINT_NAME \
      --project=PROJECT_ID \
      --region=REGION_NAME \
      | grep pscConnectionStatus

      Ersetzen Sie die folgenden Werte:

      • ENDPOINT_NAME: der Name des Endpunkts.
      • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das den Endpunkt enthält
      • REGION_NAME: der Name der Region für den Endpunkt.

      REST

      Ersetzen Sie diese Werte in den folgenden Anfragedaten:

      • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das den Private Service Connect-Endpunkt enthält
      • REGION_NAME: der Name der Region
      • ENDPOINT_NAME: der Name des Endpunkts.

      HTTP-Methode und URL:

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME

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

      Sie sollten in etwa folgende JSON-Antwort erhalten:

      {
        "kind": "compute#forwardingRule",
        "id": "ENDPOINT_ID",
        "creationTimestamp": "2024-05-09T12:03:21.383-07:00",
        "name": "ENDPOINT_NAME",
        "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME",
        "IPAddress": "IP_ADDRESS",
        "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME",
        "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME",
        "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default",
        "serviceDirectoryRegistrations": [
          {
            "namespace": "goog-psc-default"
          }
        ],
        "networkTier": "PREMIUM",
        "labelFingerprint": "LABEL_FINGERPRINT_ID",
        "fingerprint": "FINGERPRINT_ID",
        "pscConnectionId": "CONNECTION_ID",
        "pscConnectionStatus": "ACCEPTED",
        "allowPscGlobalAccess": true
      }
      
    2. Prüfen Sie, ob der Status des Endpunkts ACCEPTED lautet. Wenn der Status PENDING lautet, lässt die Instanz das Google Cloud -Projekt, das den Endpunkt enthält, nicht zu. Achten Sie darauf, dass das Netzwerkprojekt, in dem der Endpunkt erstellt wird, zugelassen wird. Weitere Informationen finden Sie unter Instanz mit aktiviertem Private Service Connect bearbeiten.
    ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: The resource 'projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME' was not found Diese Fehlermeldung kann auftreten, wenn Sie eine statische interne IP-Adresse für den Private Service Connect-Endpunkt reservieren. Prüfen Sie, ob das angegebene Subnetz im Projekt vorhanden ist, das durch den URI angegeben wird. Wenn Sie einen Endpunkt in einem Dienstprojekt erstellen, aber ein Subnetz aus einem freigegebene VPC-Netzwerk verwenden möchten, müssen Sie das Subnetz über seinen URI angeben und die Projekt-ID des Hostprojekts im URI verwenden. Weitere Informationen finden Sie unter Endpunkt manuell erstellen.
    ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: - The resource 'projects/PROJECT_ID/global/networks/NETWORK_NAME' was not found Diese Fehlermeldung kann auftreten, wenn Sie einen Private Service Connect-Endpunkt manuell erstellen. Achten Sie darauf, dass das angegebene Netzwerk im Projekt vorhanden ist, das durch den URI angegeben wird. Wenn Sie einen Endpunkt in einem Dienstprojekt erstellen, aber ein freigegebene VPC-Netzwerk verwenden möchten, müssen Sie das Netzwerk anhand seines URI angeben und die Projekt-ID des Hostprojekts im URI verwenden. Weitere Informationen finden Sie unter Endpunkt manuell erstellen.
    Invalid consumer network status for PSC auto connection.

    Das Netzwerk des Nutzers ist entweder nicht richtig oder gar nicht konfiguriert. Daher ist kein Endpunkt verfügbar, mit dem eine Verbindung hergestellt werden kann. Um eine Verbindung zum Endpunkt herzustellen, müssen Sie den Status des Endpunkts prüfen und den Fehler beheben, bevor Sie es noch einmal versuchen.
    Informationen zum Prüfen des Status eines Endpunkts finden Sie unter Endpunkt abrufen. Der Status des Endpunkts kann einer der folgenden sein:

    • CONNECTION_POLICY_MISSING: Im Nutzernetzwerk ist keine passende Richtlinie für Dienstverbindungen vorhanden. Richtlinien für Dienstverbindungen werden nach Netzwerk und Region konfiguriert. Informationen zum Neukonfigurieren des Netzwerks finden Sie unter Dienstverbindungsrichtlinie aktualisieren.
    • CONSUMER_INSTANCE_PROJECT_NOT_ALLOWLISTED: Es ist eine passende Dienstverbindungsrichtlinie vorhanden, aber das Feld Service instance scope (Bereich der Dienstinstanz) in der Richtlinie ist nicht so konfiguriert, dass eine Verbindung zu dieser Cloud SQL-Instanz zugelassen wird. Aktualisieren Sie die Richtlinie, um den Wert des Felds Service instance scope (--producer-instance-location) mit dem Projekt, Ordner oder der Organisation zu konfigurieren, in dem sich die Cloud SQL-Instanz befindet. Informationen zum Neukonfigurieren der Richtlinie für Dienstverbindungen finden Sie unter Dienstverbindungsrichtlinie aktualisieren.
    • POLICY_LIMIT_REACHED: Die Richtlinie für Dienstverbindungen hat das Endpunktlimit erreicht. Um das Problem zu beheben, müssen Sie das Endpunktlimit erhöhen, indem Sie die Richtlinie für Dienstverbindungen aktualisieren.

    No permission to create a service connection policy.

    Sie haben nicht die erforderlichen Berechtigungen zum Erstellen einer Richtlinie für Dienstverbindungen. Zum Erstellen einer Richtlinie für Dienstverbindungen benötigen Sie die Rolle Compute Network Admin IAM. Weitere Informationen finden Sie unter Rollen und Berechtigungen.

    Der Netzwerkanhang kann keine Verbindungen von der Private Service Connect-Schnittstelle akzeptieren, wenn ausgehende Private Service Connect-Verbindungen verwendet werden.

    Wenn Ihr externes Netzwerk keine Verbindungen von der Private Service Connect-Schnittstelle akzeptieren kann, sind die Verbindungsrichtlinien für Ihren Netzwerkanhang möglicherweise nicht richtig konfiguriert.

    Netzwerkanhänge müssen so konfiguriert werden, dass entweder alle Verbindungen automatisch akzeptiert werden oder dass sie manuell mit einer Liste akzeptierter Verbindungen konfiguriert werden. Weitere Informationen finden Sie unter Verbindungsrichtlinien.

    Verwenden Sie den folgenden Befehl, um die akzeptierten Verbindungen in Ihrer Netzwerkverbindung zu prüfen:

          gcloud compute network-attachments describe default
          --region=REGION_ID
    Wenn die Private Service Connect-Schnittstelle nicht in der Zulassungsliste enthalten ist, aktualisieren Sie den Netzwerkanhang. Weitere Informationen finden Sie unter Netzwerkanhänge verwalten.

    Nächste Schritte