Verbindung zu einer Cloud SQL-Instanz von außerhalb ihrer VPC herstellen

Auf dieser Seite wird beschrieben, wie Sie eine Verbindung zu einer Cloud SQL-Instanz von außerhalb der konfigurierten Virtual Private Cloud (VPC) herstellen.

Hinweise

Führen Sie zuerst die folgenden Aktionen aus:

  1. Sie erstellen eine Cloud SQL-Instanz.
  2. Konfigurieren Sie die Instanz so, dass statt einer externen IP-Adresse eine interne IP-Adresse verwendet wird.

Externe Verbindungen

Ihre Cloud SQL-Instanz besteht aus mehreren Knoten in einer von Google verwalteten VPC. Beim Erstellen einer Instanz konfigurieren Sie auch den Zugriff auf private Dienste oder Private Service Connect zwischen einer Ihrer VPCs und der von Google verwalteten VPC mit Ihrer neuen ausgeführt werden. Über diese Peering-Verbindung können Sie über interne IP-Adressen auf Ressourcen in der VPC der Instanz zugreifen, als ob sie Teil Ihrer eigenen VPC wären.

Stellen Sie in folgenden Situationen eine Verbindung zu Ihrer Instanz von außerhalb einer verbundenen VPC her:

  • Ihre Anwendung wird außerhalb der VPC ausgeführt, mit der Sie eine Verbindung zu Ihrer Instanz über den Zugriff auf private Dienste oder Private Service Connect hergestellt haben.

  • Ihre Anwendung wird in einer VPC ausgeführt, die sich außerhalb des Google-Netzwerks befindet.

  • Ihre Anwendung wird auf einem Computer ausgeführt, der sich an einem anderen Ort im öffentlichen Internet befindet.

In allen diesen Fällen müssen Sie einen zusätzlichen Dienst konfigurieren, um diese Art von externer Verbindung zu Ihrer Cloud SQL-Instanz zu ermöglichen.

Je nach Ihren Anforderungen empfehlen wir die folgenden Lösungen zum Herstellen externer Verbindungen:

In den folgenden Abschnitten werden diese Lösungen beschrieben.

Verbindung über eine intermediäre VM herstellen

Wenn Sie mit Open-Source-Tools und mindestens zusätzlichen Ressourcen eine Verbindung zu einer Cloud SQL-Instanz von außerhalb ihrer VPC herstellen möchten, führen Sie einen Proxydienst auf einer zwischengeschalteten VM aus, die in dieser VPC konfiguriert ist. Sie können eine neue VM konfigurieren oder eine VM verwenden, die bereits in der VPC Ihrer Cloud SQL-Instanz ausgeführt wird.

Als selbstverwaltete Lösung kostet die Verwendung einer zwischengeschalteten VM in der Regel weniger und hat eine schnellere Einrichtungszeit als die Verwendung eines Network Connectivity-Produkts. Sie hat auch Nachteile: Die Verfügbarkeit, Sicherheit und der Datendurchsatz der Verbindung hängen von der Zwischen-VM ab, die Sie als Teil Ihres Projekts verwalten müssen.

Verbindung über IAP herstellen

Mit Identity-Aware Proxy (IAP) können Sie sicher eine Verbindung zu Ihrer Cloud SQL-Instanz herstellen, ohne die interne IP-Adresse der intermediären VM freigeben zu müssen. Sie verwenden eine Kombination aus Firewallregeln und Identity and Access Management (IAM), um den Zugriff über diese Route einzuschränken. Dies macht IAP zu einer guten Lösung für Nicht-Produktionsumgebungen wie Entwicklung und Prototyping.

Architektur von Identity-Aware Proxy

In diesem Diagramm dient IAP als Gateway zwischen dem externen Client außerhalb der VPC und der zwischengeschalteten VM in der VPC. Der Client erstellt einen SSH-Tunnel zum IAP. Der Cloud SQL Auth-Proxy verschlüsselt den Traffic zwischen der VM und der Cloud SQL-Instanz. Über diese beiden Proxys wird die Kommunikation zwischen dem Client und der Instanz hergestellt.

So konfigurieren Sie den IAP-Zugriff auf Ihre Instanz:

  1. Installieren Sie die gcloud CLI auf Ihrem externen Client.

  2. Laden Sie den Cloud SQL Auth-Proxy herunter und installieren Sie ihn auf der intermediären VM.

  3. Starten Sie den Cloud SQL Auth-Proxy auf der intermediären VM.

    Da Ihre VM mit einer internen IP-Adresse konfiguriert ist, müssen Sie beim Starten des Cloud SQL Auth-Proxys die Option --private-ip angeben.

  4. Aktivieren Sie in Ihrem Google Cloud-Projekt die IAP-TCP-Weiterleitung.

    Lassen Sie beim Definieren der neuen Firewallregel eingehenden TCP-Traffic an Port 22 (SSH) zu. Wenn Sie das Standardnetzwerk Ihres Projekts mit aktivierter vorkonfigurierter default-allow-ssh-Regel verwenden, gilt Folgendes: Sie müssen keine zusätzliche Regel definieren.

  5. Konfigurieren Sie die Portweiterleitung zwischen Ihrem externen Client und der zwischengeschalteten VM mit SSH über IAP:

    gcloud compute ssh VM_NAME \
    --tunnel-through-iap \
    --zone=ZONE_NAME \
    --ssh-flag="-L 5432:localhost:5432"
    

    Ersetzen Sie die folgenden Werte:

    • VM_NAME: ist der Name der VM.
    • ZONE_NAME: ist der Name der Zone, die der VM zugeordnet ist.
  6. Testen Sie die Verbindung auf Ihrem externen Client mit psql.

Verbindung über einen SOCKS-Proxy herstellen

Das Ausführen eines SOCKS-Dienstes auf der intermediären VM bietet eine flexible und skalierbare Verbindung zu Ihrer Cloud SQL-Instanz. Die Ende-zu-Ende-Verschlüsselung wird vom Cloud SQL Auth-Proxy bereitgestellt.

Weitere Informationen zur Verwendung eines SOCKS-Proxys zum Herstellen einer Verbindung zu Ihrer Cloud SQL-Instanz finden Sie unter Verbindung über einen Zwischen-Proxy (SOCKS5) herstellen.

Verbindung über einen Pooler herstellen

Wenn Sie den Cloud SQL Auth-Proxy anstelle eines externen Clients auf der intermediären VM installieren und ausführen müssen, können Sie sichere Verbindungen zu ihm aktivieren, indem Sie ihn mit einem protokollsensitiven Proxy, koppeln, auch als Pooler bekannt. Beliebte Open-Source-Pooler für PostgreSQL sind zum Beispiel Pgpool-II und PgBouncer.

In dieser Lösung führen Sie sowohl den Cloud SQL Auth-Proxy als auch den Pooler auf der zwischengeschalteten VM aus. Ihr Client oder Ihre Anwendung kann dann direkt über SSL eine sichere Verbindung zum Pooler herstellen, ohne zusätzliche Dienste ausführen zu müssen. Der Pooler leitet PostgreSQL-Abfragen über den Cloud SQL Auth-Proxy an Ihre Cloud SQL-Instanz weiter.

Da jede Cloud SQL-Instanz eine separate interne IP-Adresse hat, kann jeder Proxydienst nur mit einer bestimmten Instanz kommunizieren: mit der primären Instanz, der Standby-Instanz oder einem Lesepool. Daher müssen Sie für jede Instanz einen separaten Pooler-Dienst mit einem entsprechend konfigurierten SSL-Zertifikat ausführen.

Verbindung über Cloud VPN oder Cloud Interconnect herstellen

Für Produktionsarbeiten, die Hochverfügbarkeit (High Availability, HA) erfordern, empfehlen wir abhängig von den Anforderungen Ihres externen Dienstes und der Netzwerktopologie die Verwendung eines Google Cloud-Netzwerkverbindungsprodukts wie Cloud VPN oder Cloud Interconnect. Anschließend konfigurieren Sie Cloud Router, um die entsprechenden Routen zu bewerben.

Weitere Informationen zu Netzwerkkonnektivitätslösungen finden Sie unter Netzwerkverbindungsprodukt auswählen.

Nächste Schritte