Wenn Sie den privaten Netzwerkzugriff so einrichten möchten, dass der Traffic innerhalb eines Google Cloud-Netzwerks ausgeführt wird, müssen Sie das Projekt, zu dem das VPC-Netzwerk gehört, das Service Directory-Projekt und das Google Cloud-Dienstprojekt, das Sie verwendet. Diese drei Projekte können identisch oder getrennt sein.
- Netzwerkprojekt ist das Projekt des VPC-Netzwerks.
- Service Directory project ist das Projekt des Service Directory-Dienstes. Dieses Projekt kann ein Dienstprojekt im freigegebenen VPC-Netzwerk des Netzwerkprojekts sein.
- Google Cloud-Dienstprojekt ist das Projekt mit der Konfiguration, die den privaten Netzwerkzugriff aufruft. Beispiel: eine Google Cloud-Dienstkonfiguration.
Hinweis
Bei diesem Verfahren wird davon ausgegangen, dass Sie die folgenden Schritte ausgeführt haben.
- Aktivieren Sie die APIs, auf die Sie über die Seite APIs und Dienste in der Google Cloud Console, einschließlich der Service Directory API, zugreifen möchten.
- VM-Instanzen in einem VPC-Netzwerk müssen eine private IP-Adresse haben.
- Für lokale Hosts muss ein Cloud VPN-Tunnel oder eine Cloud Interconnect-Verbindung zu Ihrem VPC-Netzwerk vorhanden sein.
Netzwerkprojekt konfigurieren
Führen Sie die folgenden Schritte aus, um das Netzwerkprojekt zu konfigurieren.
- Erstellen oder verwenden Sie ein vorhandenes VPC-Netzwerk. Es werden VPC-Netzwerke im automatischen und im benutzerdefinierten Modus unterstützt. Legacy-Netzwerke werden nicht unterstützt.
Wenn das Ziel eine Compute Engine-VM oder ein internes Load-Balancer-Back-End ist, müssen Sie eingehenden Traffic über die VPC-Firewall für den privaten Netzwerkzugriff zulassen. Die Ziele müssen TCP-Traffic von
35.199.192.0/19
an dem entsprechenden Port zulassen (Port443
oder80
).Gewähren Sie dem Google Cloud-Dienstprojekt die Zugriffsberechtigung für das Service Directory-Netzwerk (Identity and Access Management) (IAM). Das Google Cloud-Projekt muss sich im VPC Service Controls-Perimeter des Google Cloud-Diensts und des Service Directory-Projekts für
servicedirectory.googleapis.com
befinden.Weitere Informationen zu VPC Service Controls finden Sie hier.
Service Directory-Projekt konfigurieren
Führen Sie die folgenden Schritte aus, um das Service Directory-Projekt zu konfigurieren.
- Erstellen Sie eine virtuelle Maschine (VM) oder einen internen Load-Balancer im VPC-Netzwerk.
- Erstellen Sie einen Service Directory-Dienst, der auf die VM oder den internen Load-Balancer verweist, die Sie im VPC-Netzwerk erstellt haben.
- Gewähren Sie dem IAM-Dienstkonto von Google Cloud Service Directory Zugriff auf das Google Cloud-Dienstkonto. Weitere Informationen zu Rollen und Berechtigungen finden Sie unter Dienstverzeichnis-Berechtigungen und -Rollen.
Endpunkt mit privatem Netzwerkzugriff erstellen
So erstellen Sie einen Endpunkt mit konfiguriertem privaten Netzwerkzugriff:
Console
- Rufen Sie in der Google Cloud Console die Seite "Service Directory-Namespaces" auf.
Zur Seite "Service Directory-Namespaces" - Klicken Sie auf einen Namespace.
- Klicken Sie auf einen Dienst.
- Klicken Sie auf more_vert und dann auf Endpunkt hinzufügen.
- Geben Sie einen Endpunktnamen an.
- Geben Sie eine IPv4-IP-Adresse ein, z. B.
192.0.2.0/24
. - Geben Sie eine Portnummer ein, zum Beispiel
443
oder80
. - Wenn Sie den privaten Netzwerkzugriff aktivieren möchten, klicken Sie auf Aus der Liste auswählen, um eine Option aus der Liste der verfügbaren Netzwerke unter Verknüpftes VPC-Netzwerk auszuwählen.
- Sie können auch eine bestimmte Projekt-ID und den Netzwerknamen angeben. Wählen Sie dazu Anhand eines Projekts und Netzwerknamens angeben aus.
- Klicken Sie auf Erstellen.
gcloud
Führen Sie den Befehl gcloud beta service-directory endpoints create
mit der angegebenen Projekt-ID und dem angegebenen Netzwerkpfad aus.
gcloud beta service-directory endpoints create ENDPOINT_NAME --project=PROJECT_ID \ --location=REGION \ --namespace=NAMESPACE_NAME \ --service=SERVICE_ID \ --address=IP_ADDRESS \ --port=PORT_NUMBER \ --network=NETWORK_PATH
Dabei gilt:
ENDPOINT_NAME
: ein Name für den Endpunkt, den Sie in Ihrem Dienst erstellen, z. B.my-endpoint
PROJECT_ID
ist die ID des Projekts.REGION
: Google Cloud-Region, die den Namespace enthältNAMESPACE_NAME
: der Name, den Sie den Namespace gegeben haben, z. B.my-namespace
SERVICE_ID
: ID des DienstesIP_ADDRESS
: die IP-Adresse des Endpunkts, z. B.192.0.2.0/24
PORT_NUMBER
: Die Ports, auf denen die Endpunkte ausgeführt werden (in der Regel443
oder80
)NETWORK_PATH
: URL zum Netzwerk, z. B.projects/PROJECT_NUMBER/locations/global/networks/NETWORK_NAME
Google Cloud-Dienstprojekt konfigurieren
- Aktivieren der Google Cloud Service API
- Konfigurieren Sie Ihren Google Cloud-Dienst mit dem Service Directory-Dienst, den Sie im Netzwerkprojekt erstellt haben.
- Wenn Sie VPC Service Controls verwenden, muss der VPC Service Controls-Perimeter den Dienstzugriff auf das Netzwerkprojekt und das Service Directory-Projekt zulassen.
Anwendungsfälle
Der folgende Abschnitt enthält Anwendungsfälle für die Konfiguration des privaten Netzwerkzugriffs.
HTTP-Endpunkt aufrufen, wenn sich ein VPC-Netzwerk, eine VM und ein Service Directory im selben Projekt befinden
Sie können ein Google Cloud-Produkt so einrichten, dass es einen HTTP-Endpunkt auf Ihrer VM aufruft. Dieser Traffic darf nicht über das öffentliche Internet übertragen werden.
In dieser Konfiguration haben Sie ein Projekt mit einem VPC-Netzwerk, einer VM, einem Service Directory-Dienst und dem Google Cloud-Dienst im selben Projekt.
So richten Sie Ihr Google Cloud-Produkt mithilfe des privaten Netzwerkzugriffs ein:
Netzwerk und Zielnetzwerk einrichten
- Erstellen Sie ein Projekt wie
my-project
. - Erstellen Sie ein VPC-Netzwerk, z. B.
VPC-1
(projects/project-number/locations/global/networks/my-network). - Gewähren Sie Proxyzugriff auf
VPC-1
oder auf das Subnetz oder die VM. - Eingehender Traffic von
35.199.192.0/19
zulassen. - Erstellen Sie
VM-1
in der Regionus-central1
inVPC-1
. - Richten Sie es so ein, dass der Dienst über Port
P
ausgeführt wird. - Wenn Sie lieber HTTPS verwenden möchten, müssen Sie ein TLS-Zertifikat (Public Key Infrastructure Transport Security, TLS) installiert haben.
- Erstellen Sie einen Service Directory-Dienst
SD-1
inREGION-1
. - Erstellen Sie in
SD-1
einen Endpunkt mit der internen IP-AdresseVM-1
=10.10.10.10
,P
=443
undnetwork
=projects/project-number/global/networks/my-network
. Eine ausführliche Anleitung finden Sie unter Endpunkt mit privatem Netzwerkzugriff erstellen. Gewähren Sie dem Google Cloud-Dienstkonto die folgenden IAM-Rollen:
servicedirectory.viewer
servicedirectory.pscAuthorizedService
Optional können Sie
VM-2
einrichten undEndpoint-2
hinzufügen.
Google Cloud-Produkt einrichten
- Google Cloud-Produktkonfiguration
CONFIG-1
konfigurieren, z. B. "Cloud Scheduler, rufe mich jede Minute an". - Richten Sie eine HTTP-Anfrage ein.
- Geben Sie an, dass die Anfrage über private Netzwerke erfolgen soll, z. B. über
SD-1
. - (Optional) Konfigurieren Sie die Einstellungen des Zertifizierungsstellens.
Das Google Cloud-Produkt kann jetzt die HTTP-Anfrage mit SD-1
aufrufen.
HTTP-Endpunkt aufrufen, wenn sich ein VPC-Netzwerk, eine VM und ein Service Directory in verschiedenen Projekten befinden
In dieser Beispielkonfiguration möchten Sie einen Google Cloud-Dienst wie Ereignisse, Aufgaben oder Pub/Sub einrichten, um einen HTTP-Endpunkt auf Ihrer VM aufzurufen. In diesem Beispiel unterscheiden sich das Service Directory-Projekt, das Netzwerkprojekt und die Google Cloud-Dienstprojekte. Dieser Traffic darf nicht über das öffentliche Internet übertragen werden. Optional kann dieser API-Aufruf den Perimeter der VPC Service Controls berücksichtigen.
In diesem Fall aktiviert die Konfiguration des Google Cloud-Dienstprojekts eine ausgehende Google Cloud-Dienst-VM, die sich im VPC-Netzwerk des Netzwerkprojekts befindet.
Das Google Cloud-Dienstprojekt kann sich vom Erstellerprojekt unterscheiden. Beide VPC Service Controls-Perimeter werden von beiden Projekten verwendet.
Netzwerkprojekt erstellen
Prüfen Sie, ob Sie die folgenden IAM-Berechtigungen haben:
servicedirectory.services.resolve
für den Messaging-Dienstservicedirectory.networks.access
für das Netzwerk
Wichtige Hinweise:
- Das Service Directory-Projekt und das Netzwerkprojekt müssen nicht verbunden sein, müssen aber Teil derselben VPC Service Controls sein.
- Die Firewall und IAM sind standardmäßig für das Netzwerk und den Dienst deaktiviert.
So erstellen Sie das Netzwerkprojekt:
- Erstellen Sie ein VPC-Netzwerk, z. B.
VPC-1
(projects/project-number/locations/global/networks/my-network). Aktivieren Sie die VPC-Netzwerkfirewall.
Wenn Sie VPC Service Controls verwenden, ermöglicht der VPC Service Controls-Perimeter die Verwendung von Service Directory mit dem Google Cloud-Dienstprojekt und dem Service Directory-Projekt.
Service Directory-Projekt konfigurieren
- Erstellen Sie im VPC-Netzwerk eine VM oder einen internen Load-Balancer.
- Erstellen Sie einen Service Directory-Dienst, der auf die VM oder den internen Load-Balancer im VPC-Netzwerk verweist.
- Gewähren Sie dem IAM-Dienstverzeichnis
service read
-Zugriff auf den Google Cloud-Dienstprojektdienst. - Wenn Sie VPC Service Controls verwenden, ermöglicht der VPC Service Controls-Perimeter die Verwendung von Service Directory mit dem Google Cloud-Dienstprojekt und dem Service Directory-Projekt.
Google Cloud-Dienstprojekt konfigurieren
- Aktivieren Sie die API für den von Ihnen verwendeten Messaging-Dienst.
- Konfigurieren Sie den Messaging-Dienst
PUSH
mit dem Service Directory-Dienst aus dem Service Directory-Projekt. - Wenn Sie VPC Service Controls verwenden, ermöglicht der VPC Service Controls-Perimeter das Herstellen einer Verbindung zum Netzwerkprojekt und zum Dienstprojektverzeichnis.
Nächste Schritte
- Konfigurieren Sie einen Service Directory-Endpunkt.
- Eine Übersicht über Service Directory finden Sie in der Übersicht über Service Directory.
- Weitere Informationen zu Private Service Connect finden Sie unter Private Service Connect.
- Lösungen für häufige Probleme, die bei der Verwendung von Service Directory auftreten können, finden Sie unter Fehlerbehebung.