Zugriff auf private Dienste konfigurieren

Der Zugriff auf private Dienste ist eine private Verbindung zwischen Ihrem VPC-Netzwerk und einem Netzwerk von Google oder einem Drittanbieter. Google oder der Drittanbieter (Entitäten, die Dienste anbieten) werden auch als Dienstersteller bezeichnet. Die private Verbindung aktiviert VM-Instanzen in Ihrem VPC-Netzwerk und die Dienste, auf die Sie ausschließlich über interne IP-Adressen zugreifen. VM-Instanzen erfordern keinen Internetzugang oder externe IP-Adressen, um verfügbare Dienste über den Zugriff auf private Dienste zu erreichen.

Weitere Informationen zum Zugriff auf private Dienste und zu anderen privaten Zugriffsoptionen finden Sie unter Optionen für den Zugriff auf private Dienste.

Wenn Sie den Zugriff auf private Dienste nutzen möchten, müssen Sie einen IP-Adressbereich (CIDR-Block) in Ihrem VPC-Netzwerk zuweisen und anschließend eine private Verbindung zu einem Dienstersteller erstellen.

Vorbereitung

Sie müssen die folgenden Voraussetzungen erfüllen, um eine private Verbindung zu erstellen:

  • Prüfen Sie, ob der von Ihnen verwendete Dienst Zugriff auf private Dienste unterstützt.
  • Sie müssen ein vorhandenes VPC-Netzwerk haben, mit dem Sie sich mit dem Netzwerk des Diensterstellers verbinden. VM-Instanzen müssen dieses VPC-Netzwerk verwenden, um sich über eine private Verbindung mit Diensten zu verbinden.
  • Aktivieren Sie die Service Networking API in Ihrem Projekt. Die API ist erforderlich, um eine private Verbindung zu erstellen.
  • Erstellen Sie ein Google Cloud-Projekt oder wählen Sie ein vorhandenes Projekt aus. Informationen zum Erstellen eines Cloud-Projekts finden Sie unter Projekte erstellen und verwalten.
  • Installieren Sie die gcloud CLI, wenn Sie die gcloud-Befehlszeilenbeispiele in dieser Anleitung ausführen möchten.

Berechtigungen

Projektinhaber und IAM-Mitglieder mit der Rolle Compute-Netzwerkadministrator (roles/compute.networkAdmin) können zugewiesene IP-Adressbereiche erstellen und private Verbindungen verwalten.

Weitere Informationen zu Rollen finden Sie in der Dokumentation zu VPC-IAM-Rollen.

Szenario mit freigegebener VPC

Wenn Sie eine freigegebene VPC verwenden, erstellen Sie den zugewiesenen IP-Bereich und die private Verbindung im Hostprojekt. Normalerweise muss ein Netzwerkadministrator im Hostprojekt diese Aufgaben ausführen. Nachdem das Hostprojekt eingerichtet wurde, können VM-Instanzen in Dienstprojekten die private Verbindung nutzen.

Kontingente und Limits

Da eine private Verbindung als VPC-Peering-Verbindung implementiert wird, gelten die gleichen Kontingente und Beschränkungen, die für VPC-Netzwerk-Peering gelten, auch für den Zugriff auf private Dienste.

Zugewiesene IP-Adressbereiche für Dienste

Bevor Sie eine private Verbindung erstellen, müssen Sie einen IPv4-Adressbereich zuweisen, der vom VPC-Netzwerk des Diensterstellers verwendet werden soll. Dadurch wird sichergestellt, dass kein IP-Adressenkonflikt zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers auftritt. Erstellen Sie einen zugewiesenen Bereich für jeden Dienstersteller.

Wenn Sie einen Bereich in Ihrem VPC-Netzwerk zuweisen, ist dieser Bereich für Subnetze (primäre und sekundäre Bereiche) und Ziele von benutzerdefinierten statischen Routen nicht geeignet.

Die Verwendung von IPv6-Adressbereichen mit dem Zugriff auf private Dienste wird nicht unterstützt.

Größe des IP-Adressbereichs

Bereiche für den Zugriff auf private Dienste (zum Vergrößern klicken)

Wenn ein Dienstersteller auf seiner Verbindungsseite ein Subnetz erstellt, wird ein offener Bereich aus der Zuweisung für den IP-Adressbereich des Subnetzes ausgewählt.

Jeder Dienstersteller benötigt einen IP-Adressbereich mit einer Mindestgröße. Für Google ist die Mindestgröße ein einzelner /24-Block (256 Adressen). Die empfohlene Größe ist ein /16-Block (65.536 Adressen).

Die Größe hängt von mehreren Faktoren ab:

  • Die Anzahl der Dienste und Regionen, die Sie verwenden.
  • Die Anforderungen der von Ihnen verwendeten Dienste.
    • Die Mindestgröße des IP-Adressbereichs für die Dienste.
    • Gibt an, ob der Dienstanbieter für jede von Ihnen erstellte Instanz des Dienstes separate IP-Bereiche benötigt oder ob er denselben IP-Bereich für mehrere Instanzen des Dienstes verwenden kann.

Wenn Sie keinen zusammenhängenden /16-Block haben, können Sie mit einer kleineren Zuweisung beginnen und neue hinzufügen, wenn Sie später mehr IP-Adressen benötigen.

Subnetz des Diensterstellers

Wenn Sie eine private Verbindung herstellen und eine Ressource mit einer privaten IP-Adresse erstellen, erstellt der Dienst ein Subnetz, in dem die Ressource bereitgestellt werden soll. Der Dienst wählt einen verfügbaren IP-Adressbereich aus dem zugewiesenen Bereich aus. Sie können den Subnetz-IP-Adressbereich des Diensterstellers nicht auswählen oder ändern. Das Subnetz wird nur vom Dienst gelöscht, wenn Sie alle Ressourcen im Subnetz löschen.

Wenn Sie nun zusätzliche Ressourcen bereitstellen, stellt der Dienst sie in vorhandenen regionalen Subnetzen bereit, die zuvor erstellt wurden. Wenn ein Subnetz voll ist, erstellt der Dienst ein neues Subnetz in derselben Region.

Hinweise

Beachten Sie vor dem Zuweisen eines IP-Adressbereichs die folgenden Einschränkungen:

  • Wählen Sie einen Bereich, der sich nicht mit vorhandenen zugewiesenen Bereichen, Subnetzen oder benutzerdefinierten statischen Routen überschneidet. Keine zwei Bereiche dürfen sich überschneiden.
  • Wählen Sie einen Bereich, der nicht mit Ihren anderen IP-Adressanforderungen in Konflikt steht:
    • Einige Google- und Drittanbieterprodukte verwenden 172.17.0.0/16 für das Routing innerhalb des Gastbetriebssystems. Das Bereich Standard-Docker-Bridge-Netzwerk verwendet beispielsweise diesen Bereich. Wenn Sie ein Produkt verwenden, das 172.17.0.0/16 verwendet, verwenden Sie für den Zugriff auf private Dienste nicht 172.17.0.0/16 in einem zugewiesenen Bereich.
    • Wenn Sie ein VPC-Netzwerk im automatischen Modus verwenden, können Sie keinen zugewiesenen Bereich erstellen, der mit 10.128.0.0/9 übereinstimmt oder sich damit überschneidet. Google verwendet den Bereich 10.128.0.0/9 für automatisch erstellte Subnetze, einschließlich jener in zukünftigen Regionen.
  • Wählen Sie einen CIDR-Block aus, der groß genug ist, um Ihre derzeitigen und zukünftigen Anforderungen zu erfüllen. Wenn Sie später feststellen, dass der Bereich nicht ausreichend groß ist, erweitern Sie den Bereich nach Möglichkeit. Sie können zwar einem einzigen Dienstersteller mehrere Zuordnungen zuweisen, Google erzwingt jedoch ein Kontingent für die Anzahl der IP-Adressbereiche, die Sie zuweisen können (nicht jedoch die Größe (Netzmaske) jedes Bereichs).
  • Wenn Sie einer privaten Verbindung einen zusätzlichen zugewiesenen Bereich hinzufügen, wird der Bereich der IP-Adressen erweitert, die dem Dienstersteller zur Verfügung stehen, wenn neue Dienstressourcen für jeden von ihm bereitgestellten Dienst erstellt werden. Sie können einen bestimmten zugewiesenen Bereich innerhalb einer privaten Verbindung nicht für die Verwendung durch einen bestimmten Dienst reservieren.
  • Verwenden Sie nicht denselben zugewiesenen Bereich für mehrere Dienstersteller. Obwohl dies möglich ist, kann dies zu einer IP-Adressüberschneidung führen. Jeder Dienstersteller sieht nur sein Netzwerk und kann nicht wissen, welche IP-Adressen andere Dienstersteller verwenden.
  • Sie können einem zugewiesenen Bereich nur einen CIDR-Block zuordnen, wenn Sie die Zuweisung erstellen. Wenn Sie den IP-Adressbereich erweitern möchten, können Sie keine weiteren Blöcke zu einer Zuweisung hinzufügen. Stattdessen können Sie eine andere Zuweisung erstellen oder die vorhandene neu erstellen. Dazu verwenden Sie einen größeren Block, der die neuen und vorhandenen Bereiche umfasst.
  • Wenn Sie die Zuweisung selbst erstellen, anstatt dies Google zu überlassen (z. B. über Cloud SQL), können Sie dieselbe Namenskonvention verwenden, um anderen Nutzern oder Google-Diensten zu signalisieren, dass bereits eine Zuweisung für Google vorhanden ist. Wenn ein Google-Dienst einen Bereich in Ihrem Namen zuordnet, verwendet der Dienst das folgende Format zur Benennung der Zuordnung: google-managed-services-[your network name]. Wenn diese Zuweisung vorhanden ist, verwenden Google-Dienste die vorhandene, anstatt eine andere zu erstellen.
  • Da private Verbindungen als VPC-Netzwerk-Peering-Verbindungen implementiert werden, gelten die Verhaltensweisen und Einschränkungen von Peering-Verbindungen, z. B. die Limits für VPC-Netzwerk-Peering, auch für private Verbindungen.
  • Wenn Sie die interne IP-Adresse einer vorhandenen Dienstinstanz mit VPC ändern möchten, sollten Sie prüfen, ob diese Aktion störend sein könnte, z. B. wenn die Dienstinstanz gelöscht und neu erstellt werden muss. Weitere Informationen finden Sie in der Dokumentation zum zugehörigen verwalteten Dienst. Wenn Sie beispielsweise Cloud SQL verwenden, finden Sie weitere Informationen unter Private IP-Adresse einer vorhandenen Cloud SQL-Instanz ändern.

IP-Adresszuweisung erstellen

In den folgenden Schritten wird beschrieben, wie Sie einen zugewiesenen IP-Adressbereich erstellen.

Console

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

    Zur Seite VPC-Netzwerke

  2. Wählen Sie das VPC-Netzwerk aus, für das eine Verbindung zu einem Dienstersteller hergestellt werden soll.

  3. Wählen Sie den Tab Private Dienstverbindung aus.

  4. Wählen Sie auf dem Tab Private Dienstverbindung den Tab Diensten zugewiesene IP-Bereiche aus.

  5. Klicken Sie auf Zugewiesener IP-Bereich.

  6. Geben Sie Werte für Name und Beschreibung für den zugewiesenen Bereich ein.

  7. Geben Sie einen IP-Bereich für die Zuweisung an:

    • Wenn Sie einen IP-Adressbereich festlegen möchten, wählen Sie Benutzerdefiniert aus und geben einen CIDR-Block ein, z. B. 192.168.0.0/16.
    • Wenn Sie eine Präfixlänge festlegen möchten und die Auswahl eines verfügbaren Bereichs durch Google erfolgen soll, wählen Sie Automatisch aus und geben eine Präfixlänge ein, beispielsweise 16.
  8. Klicken Sie auf Zuweisen, um den zugewiesenen Bereich zu erstellen.

gcloud

Verwenden Sie den Befehl addresses create, um einen zugewiesenen Bereich in Ihrem VPC-Netzwerk zu erstellen.

  • Legen Sie einen Adressbereich und eine Präfixlänge (Subnetzmaske) mit den Flags addresses und prefix-length fest. Wenn Sie beispielsweise den CIDR-Block 192.168.0.0/16 zuordnen möchten, geben Sie 192.168.0.0 für die Adresse und 16 für die Präfixlänge an.

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --addresses=192.168.0.0 \
        --prefix-length=16 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK
    
  • Wenn Sie nur eine Präfixlänge (Subnetzmaske) angeben möchten, verwenden Sie einfach das Flag prefix-length. Wenn Sie den Adressbereich weglassen, wählt Google Cloud automatisch einen nicht verwendeten Adressbereich in Ihrem VPC-Netzwerk aus. In diesem Beispiel wird ein nicht verwendeter IP-Adressbereich mit einer Präfixlänge von 16 Bit ausgewählt.

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK
    

Dabei gilt:

  • RESERVED_RANGE_NAME: ein Name für den zugewiesenen Bereich, z. B. my-allocated-range

  • DESCRIPTION: eine Beschreibung für den Bereich, z. B. allocated for my-service

  • VPC_NETWORK: der Name Ihres VPC-Netzwerks, z. B. my-vpc-network

Im folgenden Beispiel wird eine private Verbindung zu Google erstellt, damit die VM-Instanzen im VPC-Netzwerk my-network den Zugriff auf private Dienste verwenden können, um die Google-Dienste zu erreichen, die sie unterstützen.

gcloud compute addresses create google-managed-services-my-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --description="peering range for Google" \
    --network=my-network

Terraform

Verwenden Sie zum Erstellen eines zugewiesenen Bereichs in Ihrem VPC-Netzwerk die Ressource google_compute_global_address.

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

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Wenn Ihnen ein Fehler mit der Berechtigung compute.globalAddresses.list für das Projekt angezeigt wird, finden Sie weitere Informationen unter Dienstkontoberechtigungen.

Zugewiesene IP-Adressbereiche auflisten

Verwenden Sie den Befehl addresses list, um zugewiesene IP-Adressbereiche aufzulisten.

gcloud compute addresses list --global --filter="purpose=VPC_PEERING"

Private Verbindung erstellen

Nachdem Sie einen zugewiesenen Bereich erstellt haben, können Sie eine private Verbindung zu einem Dienstersteller erzeugen. Die private Verbindung richtet eine VPC-Netzwerk-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers ein.

Private Verbindungen erfolgen als 1:1-Beziehung zwischen Ihrem VPC-Netzwerk und einem Dienstersteller. Wenn ein einzelner Dienstersteller mehrere Dienste anbietet, benötigen Sie nur eine private Verbindung für alle Dienste des Erstellers.

Wenn ein einzelner Dienstersteller mehrere Dienste anbietet und Sie steuern möchten, welche zugewiesenen Bereiche für verschiedene Dienstressourcen verwendet werden, können Sie mehrere VPC-Netzwerke mit jeweils eigenen privaten Verbindungen verwenden. Bei dieser Konfiguration können Sie beim Erstellen einer neuen verwalteten Dienstressource ein bestimmtes Netzwerk auswählen, damit die zugehörigen zugewiesenen Bereiche für die neue Ressource verwendet werden.

Wenn Sie eine Verbindung zu mehreren Diensterstellern herstellen, verwenden Sie für jeden Dienstersteller eine eindeutige Zuweisung. Mit dieser Vorgehensweise können Sie Ihre Netzwerkeinstellungen wie Routen und Firewallregeln für jeden Dienstersteller verwalten.

Console

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

    Zur Seite VPC-Netzwerke

  2. Wählen Sie das VPC-Netzwerk aus, für das eine Verbindung zu einem Dienstersteller hergestellt werden soll.

  3. Wählen Sie den Tab Private Dienstverbindung aus.

  4. Wählen Sie auf dem Tab Private Dienstverbindung den Tab Private Verbindungen zu Diensten aus.

  5. Klicken Sie auf Verbindung erstellen, um eine private Verbindung zwischen Ihrem Netzwerk und einem Dienstersteller herzustellen.

  6. Wählen Sie für Zugewiesene Bereiche einen oder mehrere vorhandene zugewiesene Bereiche aus, die nicht von anderen Diensterstellern verwendet werden.

  7. Klicken Sie auf Verbinden, um die Verbindung herzustellen.

gcloud

  1. Führen Sie den Befehl vpc-peerings connect aus.

    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=RESERVED_RANGE_NAME \
        --network=VPC_NETWORK
    

    Dabei gilt:

    • RESERVED_RANGE_NAME: der Name eines oder mehrerer zugewiesener Bereiche

    • VPC_NETWORK: der Name des VPC-Netzwerks

    Der Befehl initiiert einen lange laufenden Vorgang und gibt einen Vorgangsnamen zurück.

  2. Mit dem Befehl vpc-peerings operations describe können Sie prüfen, ob der Vorgang erfolgreich war.

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

    Ersetzen Sie OPERATION_NAME durch den Vorgangsnamen, der im vorherigen Schritt zurückgegeben wurde.

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

Terraform

Verwenden Sie zum Erstellen einer privaten Verbindung die Ressource google_service_networking_connection.

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

Private Verbindungen auflisten

Nachdem Sie eine private Verbindung erstellt haben, können Sie diese auflisten, um zu prüfen, ob sie existiert. Die Liste zeigt auch die zugewiesenen Bereiche an, die jeder Verbindung zugeordnet sind. Wenn Sie sich beispielsweise nicht erinnern können, welchen zugewiesenen Bereich Sie einer Verbindung zugeordnet haben, finden Sie diesen in dieser Liste.

Console

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

    Zur Seite VPC-Netzwerke

  2. Wählen Sie das VPC-Netzwerk mit den Verbindungen aus.

  3. Wählen Sie den Tab Private Dienstverbindung aus.

  4. Wählen Sie auf dem Tab Private Dienstverbindung den Tab Private Verbindungen zu Diensten aus, in dem alle privaten Verbindungen des Netzwerks aufgeführt sind.

gcloud

Führen Sie den Befehl vpc-peerings list aus.

gcloud services vpc-peerings list \
    --network=VPC_NETWORK

Ersetzen Sie VPC_NETWORK durch den Namen Ihres VPC-Netzwerks.

Private Verbindung ändern

Bei vorhandenen privaten Verbindungen können Sie zugewiesene IP-Adressbereiche hinzufügen oder entfernen, ohne den Traffic zu beeinträchtigen. Beim Skalieren können Sie beispielsweise einen zugewiesenen Bereich hinzufügen, wenn der vorhandene Bereich fast aufgebraucht ist.

Sie können zugewiesene IP-Bereiche nicht mit der Google Cloud Console entfernen. Wenn Sie einen zugewiesenen Bereich entfernen möchten, ändern Sie die Verbindung mit der Anleitung gcloud. Wenn Sie einen Bereich aus einer privaten Verbindung entfernen, gilt Folgendes:

  • Der zugewiesene Bereich ist der privaten Verbindung nicht mehr zugeordnet. Er ist aber nicht gelöscht.

  • Vorhandene Diensterstellerressourcen können den entfernten Bereich weiterhin nutzen.

  • Der Zugriff auf private Dienste verwendet die entfernten Bereiche nicht, um neue Subnetze zuzuweisen.

Console

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

    Zur Seite VPC-Netzwerke

  2. Wählen Sie das VPC-Netzwerk mit den Verbindungen aus.

  3. Wählen Sie den Tab Private Dienstverbindung aus.

  4. Wählen Sie auf dem Tab Private Dienstverbindung den Tab Private Verbindungen zu Diensten aus, in dem alle privaten Verbindungen des Netzwerks aufgeführt sind.

  5. Klicken Sie in der Liste auf einen Verbindungsnamen.

  6. Wählen Sie im Drop-down-Menü Zugewiesene Bereiche die Bereiche aus, die Sie zuordnen möchten.

  7. Klicken Sie auf OK.

gcloud

Verwenden Sie den Befehl vpc-peerings update, um der vorhandenen privaten Verbindung zugeordnete, zugewiesene IP-Adressbereiche hinzuzufügen oder zu entfernen.

gcloud services vpc-peerings update \
    --service=servicenetworking.googleapis.com \
    --ranges=RESERVED_RANGE_NAME \
    --network=VPC_NETWORK \
    [--force]

Dabei gilt:

  • RESERVED_RANGE_NAME: eine Liste mit einem oder mehreren Namen zugewiesener Bereiche, die der privaten Verbindung zugewiesen werden sollen

    RESERVED_RANGE_NAME ersetzt die vorherige Liste von zugewiesenen Bereichen. Wenn Sie einen Bereich weglassen, der zuvor mit dieser privaten Verbindung verknüpft war, wird er aus der Verbindung entfernt. Verwenden Sie die Option --force, um einen Bereich zu entfernen.

  • VPC_NETWORK: der Name des VPC-Netzwerks

Zugewiesenen IP-Adressbereich löschen

Prüfen Sie vor dem Löschen eines zugewiesenen IP-Adressbereichs, ob der Bereich von einer privaten Verbindung verwendet wird.

Wenn der zugewiesene IP-Adressbereich verwendet wird, ändern Sie zuerst die private Verbindung, um den Bereich zu entfernen. Löschen Sie anschließend den zugewiesenen IP-Adressbereich.

Wenn Sie eine zugewiesene IP-Adresse löschen, die verwendet wird, und die private Verbindung nicht ändern, gilt Folgendes:

  • Vorhandene Verbindungen bleiben aktiv. Es gibt jedoch keinen Grund, warum Ihr VPC-Netzwerk nicht IP-Adressen verwenden sollte, die sich mit dem Netzwerk des Diensterstellers überschneiden.

  • Wenn Sie den einzigen zugewiesenen IP-Adressbereich löschen, der einer privaten Verbindung zugeordnet ist, kann der Dienst keine neuen Subnetze erstellen, da es keinen zugewiesenen IP-Adressbereich zur Auswahl gibt.

  • Wenn Sie später einen zugewiesenen IP-Adressbereich erstellen, der mit dem gelöschten Bereich übereinstimmt oder sich damit überschneidet, schlägt das Hinzufügen des Bereichs zu einer privaten Verbindung fehl.

Um diese Probleme zu vermeiden, ändern Sie immer Ihre privaten Verbindungen, wenn Sie einen verwendeten zugewiesenen IP-Adressbereich löschen.

Console

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

    Zur Seite VPC-Netzwerke

  2. Wählen Sie das VPC-Netzwerk aus, das die Zuweisungen enthält, die gelöscht werden sollen.

  3. Wählen Sie den Tab Private Dienstverbindung aus.

  4. Wählen Sie auf dem Tab Private Dienstverbindung den Tab Diensten zugewiesene IP-Bereiche aus.

  5. Wählen die Zuweisung aus, die gelöscht werden soll.

  6. Klicken Sie auf Freigeben, um den zugewiesenen IP-Adressbereich wieder dem Pool der verfügbaren internen IP-Adressen des Netzwerks hinzuzufügen.

    Wenn der zugewiesene IP-Adressbereich weiter einer bestehenden Verbindung zugewiesen ist, müssen Sie zusätzlich eine Bestätigung eingeben, bevor die Zuweisung freigegeben werden kann.

  7. Klicken Sie noch einmal auf Freigeben, um den Löschvorgang zu bestätigen.

gcloud

Sie können die Zuweisung löschen, indem Sie deren Namen angeben.

gcloud compute addresses delete NAME \
    --global

Ersetzen Sie NAME durch den Namen des zugewiesenen Bereichs, den Sie löschen möchten.

Eine private Verbindung löschen

Bevor Sie eine private Verbindung löschen, müssen Sie alle Dienstinstanzen löschen, auf die Sie über die Verbindung zugreifen. Wenn Sie beispielsweise eine private Verbindung löschen möchten, die für den Zugriff auf Cloud SQL verwendet wird, müssen Sie zuerst die Cloud SQL-Instanzen löschen, die diese Verbindung verwenden. Nachdem Sie die Dienstinstanzen gelöscht haben, werden die Ressourcen des Diensterstellers gelöscht. Dieser Löschvorgang erfolgt jedoch möglicherweise nicht sofort. Einige Dienstersteller verzögern den Löschvorgang, bis eine Wartezeit abgelaufen ist. Die private Verbindung kann während der Wartezeit nicht gelöscht werden. Sie müssen warten, bis die Ressourcen des Diensterstellers gelöscht wurden, bevor Sie die Verbindung löschen können.

Wenn Sie beispielsweise eine Cloud SQL-Instanz löschen, erhalten Sie eine Erfolgsantwort, aber der Dienst wartet vier Tage, bevor die Diensterstellerressourcen gelöscht werden. Die Wartezeit macht es möglich, dass Sie eine Wiederherstellung der Ressourcen beantragen können, wenn Sie sich entscheiden, den Dienst doch nicht zu löschen. Wenn Sie versuchen, die Verbindung während der Wartezeit zu löschen, schlägt das Löschen mit der Meldung fehl, dass die Ressourcen noch vom Dienstersteller verwendet werden.

Console

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

    Zur Seite VPC-Netzwerke

  2. Wählen Sie das VPC-Netzwerk aus, das die Verbindungen enthält, die gelöscht werden sollen.

  3. Wählen Sie den Tab Private Dienstverbindung aus.

  4. Wählen Sie auf dem Tab Private Dienstverbindung den Tab Private Verbindungen zu Diensten aus.

  5. Wählen Sie die private Verbindung aus, die gelöscht werden soll.

  6. Klicken Sie zum Löschen auf Löschen.

  7. Klicken Sie noch einmal auf Löschen, um den Löschvorgang zu bestätigen.

gcloud

Verwenden Sie den Befehl vpc-peerings delete, um die VPC-Netzwerk-Peering-Verbindung einer privaten Verbindung zu löschen.

gcloud services vpc-peerings delete \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK

Ersetzen Sie VPC_NETWORK durch den Namen Ihres VPC-Netzwerks.

Private DNS-Zonen für Dienstersteller freigeben

Private Cloud DNS-Zonen sind normalerweise nur in Ihrem VPC-Netzwerk zugänglich. Wenn ein Diensterstellernetzwerk Namen aus Ihrer privaten Zone auflösen soll, können Sie DNS-Peering zwischen den beiden Netzwerken konfigurieren.

Wenn Sie DNS-Peering konfigurieren, geben Sie ein VPC-Netzwerk und ein DNS-Suffix an. Wenn der Dienstersteller eine Adresse mit diesem DNS-Suffix auflösen muss, leitet der Dienstersteller diese Abfragen an Ihr VPC-Netzwerk weiter, damit die Auflösung vorgenommen wird.

Diese unterstützten Dienste unterstützen DNS-Peering, mit Ausnahme von Cloud SQL.

Wenn Sie DNS-Peering aktivieren möchten, müssen Sie in Ihrem Projekt die Cloud DNS API aktivieren.

Peer-DNS mit einem Dienstersteller

gcloud

Verwenden Sie den Befehl peered-dns-domains create, um DNS-Peering zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Dienstanbieters einzurichten.

gcloud services peered-dns-domains create PEERING_NAME \
    --network=VPC_NETWORK \
    --dns-suffix=DNS_SUFFIX

Dabei gilt:

  • PEERING_NAME: ein Name für diese DNS-Peering-Konfiguration.

  • VPC_NETWORK: der Name Ihres VPC-Netzwerks, das über den Zugriff auf private Dienste mit dem Dienstersteller verbunden ist.

  • DNS_SUFFIX: das DNS-Suffix, das Sie per Peering mit dem Dienstersteller verbinden möchten. Sie müssen einen vollständigen DNS-Domainnamen angeben, einschließlich des Punkts. example.com. ist z. B. ein gültiges DNS-Suffix.

Terraform

Verwenden Sie zum Einrichten des DNS-Peerings zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Dienstanbieters die Ressource google_service_networking_peered_dns_domain.


## Uncomment this block after adding a valid DNS suffix

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

DNS-Peering-Konfigurationen auflisten

gcloud

Führen Sie den Befehl peered-dns-domains list aus.

gcloud services peered-dns-domains list \
    --network=VPC_NETWORK

Ersetzen Sie VPC_NETWORK durch den Namen Ihres VPC-Netzwerks.

DNS-Peering-Konfiguration löschen

gcloud

Führen Sie den Befehl peered-dns-domains delete aus.

gcloud services peered-dns-domains delete PEERING_NAME \
    --network=VPC_NETWORK

Dabei gilt:

  • PEERING_NAME: der Name der DNS-Peering-Konfiguration

  • VPC_NETWORK: der Name des VPC-Netzwerks

Fehlerbehebung

Wie viel von meiner Zuweisung wird verwendet?

Wenn Sie eine private Verbindung mit einem Dienstersteller erzeugen, weisen Sie einen IP-Adressbereich zu, den dieser verwenden kann. Wenn Sie mehrere Dienste von einem Dienstersteller verwenden, reserviert jeder Dienst einen Teil der IP-Adressen aus diesem zugewiesenen Bereich. Sie können prüfen, welche Dienste welche IP-Adressen verwenden, damit Sie beispielsweise sehen können, welche Dienste große Blöcke von IP-Adressen verwenden und die Ausschöpfung der IP-Adressen vermeiden.

So sehen Sie, welcher Dienst einen bestimmten IP-Adressbereich verwendet:

  1. Sie listen Ihre privaten Verbindungen auf.
  2. Danach suchen Sie den Peering-Verbindungsnamen, der Sie mit dem relevanten Dienstersteller verbindet.
  3. Sie listen die Routen für Ihr VPC-Netzwerk auf.
  4. Sie suchen die Routen mit einem nächsten Hop, der dem Peering-Verbindungsnamen entspricht. Der Zielbereich der Routen gibt an, welche IP-Adressen die jeweiligen Dienste nutzen.

IP-Adressbereich aufgebraucht

Wenn Sie für eine bestimmte private Verbindung den zugewiesenen IP-Adressbereich aufgebraucht haben, gibt Google Cloud diesen Fehler zurück: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges.

Sie können die bestehende Zuweisung erweitern oder neue hinzufügen. Die erweiterte Zuweisung muss ein zusammenhängender IP-Adressbereich sein, der den vorhandenen Bereich umfasst. Das Erweitern einer Zuweisung wird empfohlen, da die Größe einer Zuweisung nicht begrenzt ist. Die Anzahl der Zuweisungen, die Sie erstellen können, ist dagegen begrenzt.

So erweitern Sie eine bestehende Zuweisung:

  1. Sie listen Ihre privaten Verbindungen auf und notieren den Namen des zugewiesenen Bereichs, den Sie erweitern möchten.
  2. Sie löschen den vorhandenen zugewiesenen Bereich.
  3. Sie erstellen einen neuen zugewiesenen Bereich. Dazu verwenden Sie den Namen des gelöschten Bereichs. Dabei geben Sie einen IP-Adressbereich an, der den gelöschten IP-Adressbereich enthält. Auf diese Weise können vorhandene Peering-Ressourcen, die den alten zugewiesenen Bereich nutzen, weiterhin dieselben IP-Adressen verwenden, ohne dass es Konflikte mit Ressourcen in Ihrem VPC-Netzwerk gibt. Wenn der zuvor zugewiesene Bereich beispielsweise 192.168.0.0/20 war, erstellen Sie einen neuen zugewiesenen Bereich als 192.168.0.0/16.

So fügen Sie einer vorhandenen privaten Verbindung zugewiesene Bereiche hinzu:

  1. Erstellen Sie einen neuen zugewiesenen Bereich. Dieser Bereich muss nicht an vorhandene zugewiesene Bereiche angrenzen.
  2. Fügen Sie den zugewiesenen Bereich zur vorhandenen privaten Verbindung hinzu.

Lokale Hosts können nicht mit dem Netzwerk des Diensterstellers kommunizieren

Im Netzwerk des Diensterstellers sind möglicherweise nicht die richtigen Routen vorhanden, um Traffic zu Ihrem lokalen Netzwerk zu leiten. Standardmäßig erlernt das Netzwerk des Diensterstellers nur die Subnetzrouten aus Ihrem VPC-Netzwerk. Daher wird jede Anfrage, die nicht aus einem Subnetz-IP-Bereich stammt, vom Dienstersteller verworfen.

Aktualisieren Sie die Peering-Verbindung in Ihrem VPC-Netzwerk, um benutzerdefinierte Routen zum Netzwerk des Diensterstellers zu exportieren. Beim Exportieren von Routen werden alle zulässigen statischen und dynamischen Routen, die sich in Ihrem VPC-Netzwerk befinden, z. B. Routen zu Ihrem lokalen Netzwerk, an das Netzwerk des Diensterstellers gesendet. Das Netzwerk des Diensterstellers importiert sie automatisch und kann dann über das VPC-Netzwerk Traffic zurück an Ihr lokales Netzwerk senden.

Dienstkontoberechtigungen

Wenn beim Erstellen einer IP-Zuordnung ein Fehler bezüglich der Berechtigung compute.globalAddresses.list für ein Projekt angezeigt wird oder wenn beim Erstellen, Auflisten oder Ändern privater Verbindungen Fehler wie Error 400: Precondition check failed auftreten, kann es ein Problem mit den Rollen der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) für das Dienstkonto der Service Networking API geben. Dieses Dienstkonto wird automatisch erstellt, nachdem Sie die Service Networking API aktiviert haben. Es kann einige Zeit dauern, bis das Konto bereitgestellt und auf der Seite IAM angezeigt wird.

Console

So prüfen Sie, ob das Dienstkonto die richtige IAM-Rolle hat:

  1. Öffnen Sie in der Google Cloud Console die Seite IAM.

    IAM aufrufen

  2. Klicken Sie auf das Kästchen Von Google bereitgestellte Rollenzuweisungen einschließen.

  3. Suchen Sie in der Spalte Name das Hauptkonto Service Networking-Dienst-Agent und klicken Sie dann in der entsprechenden Zeile auf Hauptkonto bearbeiten.

  4. Prüfen Sie im Feld Rolle, ob die Rolle Service Networking-Dienst-Agent (roles/servicenetworking.serviceAgent) vorhanden ist.

  5. Wenn die Rolle Service Networking-Dienst-Agent nicht vorhanden ist, klicken Sie entweder auf Rolle hinzufügen oder auf Weitere Rolle hinzufügen.

  6. Klicken Sie auf Rolle auswählen.

  7. Geben Sie im Textfeld Filter Service Networking Service Agent ein.

  8. Wählen Sie Service Networking-Dienst-Agent aus der Liste aus und klicken Sie dann auf Speichern.

gcloud

Verwenden Sie zum Erstellen eines Service Networking API-Dienstkontos den Befehl add-iam-policy-binding.

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

Dabei gilt:

  • HOST_PROJECT_NAME: der Name des Hostprojekts.
  • HOST_PROJECT_NUMBER: die Nummer des Hostprojekts.

Peering-Subnetzroute bleibt nach der Aktualisierung der IP-Zuweisung erhalten

Nachdem Sie den zugewiesenen IP-Adressbereich einer privaten Dienstverbindung aktualisiert haben, wird die alte Peering-Subnetzroute möglicherweise weiterhin in der Routingtabelle Ihres VPC-Netzwerks angezeigt. Die Route bleibt bestehen, da der IP-Adressbereich noch verwendet wird.

So beheben Sie das Problem:

Die Peering-Subnetzroute wird automatisch entfernt, wenn der IP-Adressbereich nicht mehr verwendet wird. Es kann zu einer Verzögerung zwischen dem Löschen der Ressource und dem vollständigen Löschen der Ressource durch den Dienstersteller kommen. Wenn beispielsweise der alte IP-Adressbereich von einer Cloud SQL-Instanz verwendet wird, kann es bis zu vier Tage dauern, bis der Dienstersteller die Instanz vollständig löscht. Die Peering-Subnetzroute wird entfernt, nachdem der Löschvorgang abgeschlossen ist.