Auf dieser Seite wird erläutert, wie Sie private Pools für den Zugriff auf externe Ressourcen über eine statische externe IP-Adresse.
Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt in der Google Cloud Console aufzurufen.
Hinweise
-
Enable the Cloud Build, Compute Engine, and Service Networking APIs.
Wenden Sie sich an Ihren Administrator, um die erforderlichen Berechtigungen zum Einrichten einer privaten Verbindung zu erhalten , um Ihnen die IAM-Rolle Compute Engine-Netzwerkadministrator (
roles/compute.networkAdmin
) für das Cloud-Projekt zu gewähren, in dem sich das VPC-Netzwerk befindet. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.Wenn Sie die
gcloud
-Befehle auf dieser Seite verwenden möchten, müssen Sie die Google Cloud CLI installieren.
VPC-Netzwerk erstellen
Console
Führen Sie die folgenden Schritte aus, um ein VPC-Netzwerk mit der Google Cloud Console zu erstellen:
Öffnen Sie in der Google Cloud Console die Seite VPC-Netzwerke.
Klicken Sie auf VPC-Netzwerk erstellen, um ein neues Netzwerk zu erstellen.
Die Seite VPC-Netzwerk erstellen wird angezeigt.
Geben Sie unter Name einen Namen für das Netzwerk ein.
Wählen Sie unter Modus für Subnetzerstellung die Option Automatisch aus.
Wenn Sie andere Felder weiter anpassen möchten, lesen Sie den Artikel VPC-Netzwerke erstellen und verwalten. Andernfalls lassen Sie alle Felder unverändert.
Klicken Sie auf Erstellen, um Ihr VPC-Netzwerk zu erstellen.
Nachdem Sie auf Erstellen geklickt haben, wird Ihr neues VPC-Netzwerk auf der Seite VPC-Netzwerke angezeigt.
gcloud
Wenn Sie ein VPC-Netzwerk mit dem Befehlszeilentool gcloud
erstellen möchten, geben Sie den folgenden Befehl in Ihr Terminal ein. Dabei ist NETWORK_NAME der Name Ihres VPC-Netzwerks:
gcloud compute networks create NETWORK_NAME \
--subnet-mode=auto
Nachdem Sie auf Erstellen geklickt haben, wird Ihr neues VPC-Netzwerk Seite VPC-Netzwerke:
Weitere Informationen zum Erstellen und Verwalten von VPC-Netzwerken finden Sie unter VPC-Netzwerke erstellen und verwalten.
Private Verbindung erstellen
Console
So erstellen Sie eine private Verbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers:
Öffnen Sie in der Google Cloud Console die Seite VPC-Netzwerke.
Klicken Sie auf den Namen Ihres Netzwerks.
Die Seite VPC-Netzwerkdetails wird angezeigt.
Klicken Sie auf den Tab Private Dienstverbindung.
Wählen Sie den Tab Diensten zugewiesene IP-Bereiche aus.
Klicken Sie auf IP-Bereich zuweisen.
Das Pop-up-Fenster Internen IP-Bereich zuweisen wird angezeigt.
Geben Sie einen Namen für den IP-Bereich ein.
Wählen Sie unter IP-Bereich die Option Automatisch aus.
Geben Sie im Feld Präfixlänge eine Präfixlänge für Ihr Netzwerk ein.
Klicken Sie auf Zuweisen, um den IP-Bereich zuzuweisen.
Wählen Sie den Tab Private Verbindungen zu Diensten aus.
Klicken Sie auf Create Connection.
Das Pop-up-Fenster Private Verbindung erstellen wird angezeigt.
Wählen Sie unter Zugewiesene Zuweisung Ihren IP-Bereich aus.
Klicken Sie auf Verbinden.
Die Verbindung wird jetzt in der Tabelle unter dem Private Verbindungen zu Diensten.
Klicken Sie auf Aktivieren (Benutzerdefinierte Route exportieren), damit die Routen für VPCs werden auf das Netzwerk angewendet, in dem Ihr privater Pool ausgeführt werden.
Sie haben Ihr Netzwerk jetzt konfiguriert.
gcloud
So erstellen Sie eine private Verbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers:
Geben Sie in Ihrem Terminal den folgenden Befehl ein, um einen IP-Bereich für Ihren Dienst zuzuweisen:
gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --prefix-length=PREFIX_LENGTH \ --network=VPC_NETWORK \ --project=PROJECT_ID
Wobei:
- RESERVED_RANGE_NAME ist der Name des zugewiesenen Bereichs.
Beispiel:
my-allocated-range
. - PREFIX_LENGTH ist die Präfixlänge für Ihr Netzwerk. Die Präfixlänge muss
/24
oder niedriger, z. B./22
,/21
usw. - VPC_NETWORK ist der Name Ihres VPC-Netzwerk, z. B.
my-vpc-network
. - PROJECT_ID ist die ID des Projekts, das Ihre VPC enthält. Netzwerk.
- RESERVED_RANGE_NAME ist der Name des zugewiesenen Bereichs.
Beispiel:
Geben Sie in Ihrem Terminal den folgenden Befehl ein, um eine private Verbindung zu erstellen:
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID
Wobei:
- RESERVED_RANGE_NAME ist der Name des zugewiesenen Bereichs, den Sie die im vorherigen Schritt erstellt wurden.
- VPC_NETWORK ist der Name Ihres VPC-Netzwerks, z. B.
my-vpc-network
. - PROJECT_ID ist die ID des Projekts, das Ihre VPC enthält. Netzwerk.
Geben Sie den folgenden Befehl in Ihr Terminal ein, um sicherzustellen, dass die Routen für VPC auf das Netzwerk angewendet werden, in dem Ihre privaten Poolinstanzen ausgeführt werden:
gcloud compute networks peerings update servicenetworking-googleapis-com \ --export-custom-routes \ --network=VPC_NETWORK \ --project=PROJECT_ID
Wobei:
- VPC_NETWORK ist der Name Ihres VPC-Netzwerks, z. B.
my-vpc-network
. - PROJECT_ID ist die ID des Projekts, das Ihr VPC-Netzwerk enthält.
- VPC_NETWORK ist der Name Ihres VPC-Netzwerks, z. B.
Sie haben jetzt Ihr Netzwerk konfiguriert.
Weitere Informationen zum Konfigurieren eines Netzwerks finden Sie unter Private Verbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers einrichten.
Privaten Pool erstellen
Console
So erstellen Sie einen privaten Pool mit der Google Cloud Console:
Öffnen Sie in der Google Cloud Console die Seite Worker-Pool:
Wählen Sie das Projekt aus, in dem Sie den privaten Pool erstellen möchten.
Klicken Sie auf der Seite Worker-Pool auf Erstellen.
Der Bereich Privaten Pool erstellen wird angezeigt.
Geben Sie im seitlichen Steuerfeld Privaten Pool erstellen die folgenden Informationen ein:
Geben Sie einen Namen für den privaten Pool ein.
Wählen Sie im Drop-down-Menü eine Region aus.
Geben Sie unter Netzwerk folgende Informationen ein:
- Projekt: Geben Sie Ihre Projekt-ID oder Projektnummer ein.
- Netzwerk: Geben Sie den Namen Ihres VPC-Netzwerks ein.
- Optional: Entfernen Sie das Häkchen bei Assign external IPs (Externe IP-Adressen zuweisen) für die am stärksten eingeschränkte Netzwerkkonfiguration verwenden.
Sie haben jetzt einen privaten Pool erstellt.
gcloud
Wenn Sie einen privaten Pool mit dem gcloud
-Befehlszeilentool erstellen möchten, geben Sie den folgenden Befehl in das Terminal ein:
gcloud builds worker-pools create PRIVATEPOOL_ID \
--project=PRIVATEPOOL_PROJECT_ID \
--region=REGION \
--peered-network=PEERED_NETWORK \
--no-public-egress
Wobei:
- PRIVATEPOOL_ID ist die eindeutige Kennung für Ihren privaten Pool.
- PRIVATEPOOL_PROJECT_ID ist die ID des Google Cloud-Projekts. wo Sie Ihren privaten Pool erstellen möchten.
- REGION ist eine der unterstützten Regionen.
- PEERED_NETWORK ist die URL der Netzwerkressource.
--no-public-egress
: Wenn dieses Flag festgelegt ist, wird der private Pool ohne externe IP-Adresse erstellt.
Sie haben jetzt einen privaten Pool erstellt.
Weitere Informationen zum Erstellen und Verwalten privater Pools finden Sie unter Private Pools erstellen und verwalten.
Auf externe Ressourcen in einem privaten Netzwerk zugreifen
Standardmäßig sind externe IP-Adressen, die mit privaten Cloud Build-Pools verknüpft sind, nicht statisch oder konfigurierbar. Sie werden von Google Cloud Wenn Sie Ihre privaten Pools so einrichten möchten, dass sie über eine statische externe IP-Adresse auf externe Ressourcen aus Ihrem privaten Netzwerk zugreifen, müssen Sie in Ihrem Projekt eine virtuelle Maschine (VM) einrichten, die als selbstverwaltetes NAT-Gateway für Proxyanfragen an das öffentliche Internet dient. Anschließend müssen Sie benutzerdefinierte Routen einrichten, um diese Anfragen an Ihre VM weiterzuleiten, damit Routen mit dem Dienstnetzwerkprojekt ausgetauscht werden.
In diesem Abschnitt wird beschrieben, wie Sie Ihre privaten Pools für den Zugriff auf externe Pools über eine statische externe IP-Adresse. Führen Sie dazu die folgenden Schritte aus:
Erstellen Sie ein Startskript, um die VM so zu konfigurieren, dass Traffic, der weitergeleitet wird, über auf der VM und maskiert diesen Traffic so, als stammt er von ihrer IP-Adresse:
#! /bin/bash set -e sysctl -w net.ipv4.ip_forward=1 IFACE=$(ip -brief link | tail -1 | awk {'print $1'}) iptables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE
VM in derselben VPC wie Ihren privaten Pool mit einer Regel einrichten damit Anfragen über die VPC weitergeleitet werden können:
gcloud compute instances create VM_NAME \ --image-project=ubuntu-os-cloud --image-family=ubuntu-2204-lts \ --network=NETWORK_NAME \ --private-network-ip=INTERNAL_IP --can-ip-forward \ --zone=ZONE \ --subnet=SUBNETWORK \ --tags=NAT_TAG \ --metadata-from-file=startup-script=STARTUP_SCRIPT
Wobei:
- VM_NAME ist der Name, den Sie für Ihre VM angeben möchten.
- NETWORK_NAME ist der Name des Netzwerks, das Sie im vorherigen Abschnitt erstellt haben.
- INTERNAL_IP ist eine gültige interne IP-Adresse innerhalb
den Bereich des Subnetzwerks Ihrer VM-Region. Beispiel:
10.128.0.2
. - ZONE ist die Zone, die mit Ihrem Netzwerk verknüpft ist, z. B.
us-central1-a
. - Optional: SUBNETWORK ist der Name Ihres Subnetzes. Den Namen Ihres Subnetzwerks finden Sie in der entsprechenden REST-Ressource für Ihr Subnetzwerk im folgenden Format:
projects/project-id/regions/region/subnetworks/subnetwork-name
. Wenn Sie beim Erstellen eines VPC-Netzwerks unter Subnetzverbindungsmodus die Option Automatisch ausgewählt haben, gilt Folgendes: müssen Sie dieses Feld nicht angeben. - NAT_TAG ist der Name des NAT-Gateway-Tags, mit dem Sie Anfragen bedingt weiterleiten können, je nachdem, ob sie ein Tag von dieser VM haben oder nicht. Sie können einen beliebigen Namen für das Tag angeben.
- STARTUP_SCRIPT ist der Name des Startscripts, das Sie im vorherigen Schritt erstellt haben. Beispiel:
startup-script-example.sh
. In diesem Beispiel wird das Flag--metadata-from-file
verwendet, um den Inhalt des von Ihnen angegebenen Startskripts an einen Schlüssel namensstartup-script
zu übergeben.
Nachdem Sie diesen Befehl ausgeführt haben, wird eine Ausgabe mit dem des externen IP-Werts. Notieren Sie sich den Wert der externen IP-Adresse. Der gesamte Traffic von Ihrem privaten Pool zu Ihrer externen Ressource wird über diese Adresse geleitet. Sie können diese Adresse für weitere Konfigurationen verwenden, z. B. zum Konfigurieren von Firewallregeln in Ihrem externen Netzwerk.
Route einrichten, um alle Anfragen an die externe Ressource zur Instanz zu leiten die im vorherigen Schritt erstellt wurden, sodass Ihre Anfragen an Ihre privaten Poolinstanzen:
gcloud compute routes create PRIVATE_POOL_ROUTE_NAME \ --destination-range=DESTINATION_RANGE \ --next-hop-address=INTERNAL_IP \ --network=NETWORK_NAME \ --priority=POOL_ROUTE_PRIORITY
Wobei:
- PRIVATE_POOL_ROUTE_NAME ist der Name, den Sie der Route geben möchten.
- DESTINATION_RANGE ist ein gültiger CIDR-Adressbereich
mit dem Ziel, zu dem die Route führen soll. Beispiel: eine GitHub Enterprise Edition-Instanz. Beispiel:
8.8.8.0/24
. - INTERNAL_IP ist der interne IP-Wert, der im vorherigen Schritt abgerufen wurde. Beispiel:
10.128.0.2
. - NETWORK_NAME ist der Name des Netzwerks, das Sie im vorherigen Abschnitt erstellt haben.
- POOL_ROUTE_PRIORITY ist die Prioritätsnummer, die Sie für Ihre Route angeben möchten.
Dieser Befehl sorgt dafür, dass jeglicher Traffic von einem Build in einer Instanz des privaten Pools an den Proxy-VM, die Sie erstellt haben, die nicht direkt an das öffentliche Internet weitergeleitet wurde.
Richten Sie eine Route ein, um Anfragen von Ihrem Proxy von Ihren getaggten Instanzen an den externen Ziel-IP-Bereich weiterzuleiten. Mit dem folgenden Befehl wird eine Route erstellt, um Anfragen an das öffentliche Internet weiterzuleiten, die mit Ihren privaten Poolinstanzen verknüpft sind.
gcloud compute routes create NAT_EGRESS_ROUTE_NAME \ --destination-range=DESTINATION_RANGE \ --next-hop-gateway=default-internet-gateway \ --network=NETWORK_NAME \ --priority=NAT_ROUTE_PRIORITY \ --tags=NAT_TAG
Wobei:
- NAT_EGRESS_ROUTE_NAME ist der Name, den Sie der NAT-Gateway-Route geben möchten.
- DESTINATION_RANGE ist die Adresse des Ziels, zu dem Sie eine Route planen möchten. Beispiel: eine GitHub Enterprise Edition-Instanz. Beispiel:
8.8.8.0/24
. - NETWORK_NAME ist der Name des Netzwerks, das Sie im vorherigen Abschnitt erstellt haben.
- NAT_TAG ist der Name des NAT-Gateway-Tags. mit der Sie Anfragen bedingt weiterleiten können, aber sie haben kein Tag von dieser VM. Sie können einen beliebigen Namen für das Tag angeben.
NAT_ROUTE_PRIORITY ist die Prioritätsnummer, die Sie für Ihre Route angeben möchten.
Mit diesem Befehl wird sichergestellt, dass jeglicher Traffic von der Proxy-VM an das öffentliche Internet weitergeleitet werden kann.
Fügen Sie eine Firewallregel hinzu, um Traffic von Ihrem privaten Pool in Ihre NAT-Gateway-VM zuzulassen:
gcloud compute firewall-rules create RULE_NAME \ --direction=INGRESS --priority=FIREWALL_PRIORITY --action=ALLOW --rules=all \ --network=NETWORK_NAME \ --source-ranges=RESERVED_RANGE \ --target-tags=NAT_TAG
Wobei:
- RULE_NAME ist der Name, den Sie der Firewallregel geben möchten.
- FIREWALL_PRIORITY ist die Prioritätszahl, die Sie für Ihre Firewallregel angeben möchten.
- NETWORK_NAME ist der Name des Netzwerks, das Sie im vorherigen Abschnitt erstellt haben.
- RESERVED_RANGE ist der CIDR-Bereich, den Sie die Sie bei der Konfiguration Ihres VPC-Netzwerks zugewiesen haben.
- NAT_TAG ist der Name des NAT-Gateway-Tags, mit dem Sie Anfragen bedingt weiterleiten können, je nachdem, ob sie ein Tag von dieser VM haben oder nicht. Sie können einen beliebigen Namen für das Tag angeben.
Sie können jetzt über die statische IP-Adresse des ein selbstverwaltetes NAT-Gateway in Ihrer VPC erstellen.
Nächste Schritte
- Weitere Informationen zu privaten Pools.
- Umgebung für die Erstellung privater Pools einrichten
- Informationen zum Zugriff auf Ressourcen in einem privaten JFrog Artifactory mit privaten Pools