In der Google Cloud Platform (GCP) startet jedes neue Projekt mit einem Standard-VPC-Netzwerk, sobald Sie die Compute Engine API aktivieren – sofern Sie es nicht deaktivieren.
Das vereinfacht die Nutzung von GCP, weil Sie keine eigene VPC und keine Subnetze anlegen müssen. Der Haken am Standardnetzwerk: Alle automatisch erstellten Subnetze nutzen vordefinierte IPv4-Bereiche innerhalb des CIDR-Blocks 10.128.0.0/9.
Aufgrund dieser überlappenden Netzwerke ist eine private interne Kommunikation zwischen Projekten nicht möglich. Die Einschränkung gilt sowohl für VPC Peering als auch für Cloud VPN.
In diesem Blogbeitrag zeigen wir Ihnen, wie Sie mit Private Service Connect privat auf Dienste zugreifen, die in VM- oder GKE-Clustern mit überlappenden Netzwerken laufen. Das funktioniert für überlappende Netzwerke innerhalb derselben oder unterschiedlicher GCP-Organisationen.
Referenzarchitektur
Ziel-Setup für Private Service Connect
Projekt B ist das Service-Producer-Projekt, in dem ein nginx-Beispieldienst auf einer Instanz innerhalb einer Managed Instance Group läuft.
Projekt A ist das Service-Consumer-Projekt und benötigt privaten Zugriff auf den Dienst in Projekt B. Den Instanzen in beiden Projekten ist keine externe IP zugewiesen.
GCP-Region für die Ressourcen: us-west4
Die API compute.googleapis.com ist in Projekt A und Projekt B aktiviert
Cloud NAT, damit private Instanzen Pakete aus dem Internet herunterladen können
Beispieldienst und Testinstanz bereitstellen
Passen Sie die Variablen in den folgenden Befehlen an Ihre Umgebung an.
Zwischen den Netzwerken von Projekt A und Projekt B besteht keine interne Verbindung. Die Instanz in Projekt A kann daher nicht auf den Dienst in Projekt B zugreifen.
VPC Peering scheidet wegen der überlappenden Bereiche im Standardnetzwerk aus.
Internen Load Balancer einrichten
Damit Private Service Connect den Dienst über ein Service Attachment bereitstellen kann, ist ein interner Load Balancer erforderlich. Für dieses Setup richten wir in Projekt B einen internen TCP-Load-Balancer ein.
Legen Sie einen neuen regionalen HTTP-Health-Check an, der die HTTP-Konnektivität zu den VMs auf Port 80 prüft.
Dienste im Service-Producer-Projekt veröffentlichen
Veröffentlichen Sie den Dienst in Projekt B – dem Service-Producer-Projekt –, damit Consumer aus anderen VPC-Netzwerken privat und sicher darauf zugreifen können.
Reservieren Sie ein Subnetz für Private Service Connect. Dieser Subnetzbereich darf sich nicht mit dem Standardnetzwerk überschneiden.
Sie können steuern, welche Consumer auf die veröffentlichten Dienste zugreifen dürfen – wahlweise per automatischer oder manueller Freigabe. Details dazu finden Sie unter Publish services by using Private Service Connect.
Richten Sie eine Firewall-Regel ein, damit Private Service Connect auf die Zielinstanzen zugreifen darf.
Endpoint im Service-Consumer-Projekt konfigurieren
Ein Endpoint im Service-Consumer-Projekt verbindet sich über eine Private-Service-Connect-Forwarding-Rule mit Diensten im VPC-Netzwerk des Producers.
Beim Anlegen eines Endpoints wird dieser automatisch im Service Directory registriert – entweder unter einem von Ihnen gewählten Namespace oder unter dem Standard-Namespace goog-psc-default.
Damit der Endpoint aus mehreren Regionen erreichbar ist, aktivieren Sie Global Access. Global Access befindet sich derzeit in der Preview.
Reservieren Sie eine interne IP-Adresse für den Endpoint.
Die Private-Service-Connect-Komponenten sind nun in Projekt A und Projekt B eingerichtet. Verwenden Sie die Endpoint-IP in Projekt A, um auf den nginx-Dienst in Projekt B zuzugreifen.
Der Test bestätigt: Die Instanzen in den überlappenden Netzwerken kommunizieren über den Private Service Connect Endpoint privat miteinander.
Dieses Beispiel zeigt, wie Sie mit Private Service Connect Dienste in überlappenden Netzwerken sicher veröffentlichen und konsumieren.
Der Traffic bleibt durchgängig innerhalb von Google Cloud. Consumer und Producer erhalten so einen serviceorientierten Zugriff – mit granularer Kontrolle darüber, wer wie auf welche Dienste zugreift.
Mehr zu Private Service Connect erfahren Sie auf der Produktseite.
\n'yum\ install\ epel-release
Legen Sie eine Managed Instance Group in Projekt B an.
Nach erfolgreicher Erstellung startet die Managed Instance Group automatisch eine Instanz in der Zielzone.
Verbinden Sie sich per SSH mit der Instanz und prüfen Sie den Status des nginx-Dienstes.
Legen Sie eine Testinstanz für die Konnektivitätsprüfung in Projekt A an.
Zwischen den Netzwerken von Projekt A und Projekt B besteht keine interne Verbindung. Die Instanz in Projekt A kann daher nicht auf den Dienst in Projekt B zugreifen.
VPC Peering scheidet wegen der überlappenden Bereiche im Standardnetzwerk aus.
Internen Load Balancer einrichten
Damit Private Service Connect den Dienst über ein Service Attachment bereitstellen kann, ist ein interner Load Balancer erforderlich. Für dieses Setup richten wir in Projekt B einen internen TCP-Load-Balancer ein.
Legen Sie einen neuen regionalen HTTP-Health-Check an, der die HTTP-Konnektivität zu den VMs auf Port 80 prüft.
Legen Sie den Backend-Dienst für den HTTP-Traffic an.
Hängen Sie die nginx-Service-Instance-Group an den Backend-Dienst an.
Legen Sie eine Forwarding Rule für den Backend-Dienst an.
Richten Sie eine Firewall-Regel ein, die Health Checks des Load Balancers zulässt.
Dienste im Service-Producer-Projekt veröffentlichen
Veröffentlichen Sie den Dienst in Projekt B – dem Service-Producer-Projekt –, damit Consumer aus anderen VPC-Netzwerken privat und sicher darauf zugreifen können.
Reservieren Sie ein Subnetz für Private Service Connect. Dieser Subnetzbereich darf sich nicht mit dem Standardnetzwerk überschneiden.
Geben Sie den nginx-Dienst für Projekt A frei – mit expliziter Projektgenehmigung.
Sie können steuern, welche Consumer auf die veröffentlichten Dienste zugreifen dürfen – wahlweise per automatischer oder manueller Freigabe. Details dazu finden Sie unter Publish services by using Private Service Connect.
Richten Sie eine Firewall-Regel ein, damit Private Service Connect auf die Zielinstanzen zugreifen darf.
Endpoint im Service-Consumer-Projekt konfigurieren
Ein Endpoint im Service-Consumer-Projekt verbindet sich über eine Private-Service-Connect-Forwarding-Rule mit Diensten im VPC-Netzwerk des Producers.
Beim Anlegen eines Endpoints wird dieser automatisch im Service Directory registriert – entweder unter einem von Ihnen gewählten Namespace oder unter dem Standard-Namespace goog-psc-default.
Damit der Endpoint aus mehreren Regionen erreichbar ist, aktivieren Sie Global Access. Global Access befindet sich derzeit in der Preview.
Reservieren Sie eine interne IP-Adresse für den Endpoint.
Legen Sie eine Forwarding Rule an, die den Endpoint mit dem Service Attachment in Projekt B verbindet.
Konnektivität aus dem Consumer-Projekt testen
Die Private-Service-Connect-Komponenten sind nun in Projekt A und Projekt B eingerichtet. Verwenden Sie die Endpoint-IP in Projekt A, um auf den nginx-Dienst in Projekt B zuzugreifen.
Der Test bestätigt: Die Instanzen in den überlappenden Netzwerken kommunizieren über den Private Service Connect Endpoint privat miteinander.
Dieses Beispiel zeigt, wie Sie mit Private Service Connect Dienste in überlappenden Netzwerken sicher veröffentlichen und konsumieren.
Der Traffic bleibt durchgängig innerhalb von Google Cloud. Consumer und Producer erhalten so einen serviceorientierten Zugriff – mit granularer Kontrolle darüber, wer wie auf welche Dienste zugreift.
Mehr zu Private Service Connect erfahren Sie auf der Produktseite.
\n'yum\ -y\ install\ nginx
Legen Sie eine Managed Instance Group in Projekt B an.
Nach erfolgreicher Erstellung startet die Managed Instance Group automatisch eine Instanz in der Zielzone.
Verbinden Sie sich per SSH mit der Instanz und prüfen Sie den Status des nginx-Dienstes.
Legen Sie eine Testinstanz für die Konnektivitätsprüfung in Projekt A an.
Zwischen den Netzwerken von Projekt A und Projekt B besteht keine interne Verbindung. Die Instanz in Projekt A kann daher nicht auf den Dienst in Projekt B zugreifen.
VPC Peering scheidet wegen der überlappenden Bereiche im Standardnetzwerk aus.
Internen Load Balancer einrichten
Damit Private Service Connect den Dienst über ein Service Attachment bereitstellen kann, ist ein interner Load Balancer erforderlich. Für dieses Setup richten wir in Projekt B einen internen TCP-Load-Balancer ein.
Legen Sie einen neuen regionalen HTTP-Health-Check an, der die HTTP-Konnektivität zu den VMs auf Port 80 prüft.
Legen Sie den Backend-Dienst für den HTTP-Traffic an.
Hängen Sie die nginx-Service-Instance-Group an den Backend-Dienst an.
Legen Sie eine Forwarding Rule für den Backend-Dienst an.
Richten Sie eine Firewall-Regel ein, die Health Checks des Load Balancers zulässt.
Dienste im Service-Producer-Projekt veröffentlichen
Veröffentlichen Sie den Dienst in Projekt B – dem Service-Producer-Projekt –, damit Consumer aus anderen VPC-Netzwerken privat und sicher darauf zugreifen können.
Reservieren Sie ein Subnetz für Private Service Connect. Dieser Subnetzbereich darf sich nicht mit dem Standardnetzwerk überschneiden.
Geben Sie den nginx-Dienst für Projekt A frei – mit expliziter Projektgenehmigung.
Sie können steuern, welche Consumer auf die veröffentlichten Dienste zugreifen dürfen – wahlweise per automatischer oder manueller Freigabe. Details dazu finden Sie unter Publish services by using Private Service Connect.
Richten Sie eine Firewall-Regel ein, damit Private Service Connect auf die Zielinstanzen zugreifen darf.
Endpoint im Service-Consumer-Projekt konfigurieren
Ein Endpoint im Service-Consumer-Projekt verbindet sich über eine Private-Service-Connect-Forwarding-Rule mit Diensten im VPC-Netzwerk des Producers.
Beim Anlegen eines Endpoints wird dieser automatisch im Service Directory registriert – entweder unter einem von Ihnen gewählten Namespace oder unter dem Standard-Namespace goog-psc-default.
Damit der Endpoint aus mehreren Regionen erreichbar ist, aktivieren Sie Global Access. Global Access befindet sich derzeit in der Preview.
Reservieren Sie eine interne IP-Adresse für den Endpoint.
Legen Sie eine Forwarding Rule an, die den Endpoint mit dem Service Attachment in Projekt B verbindet.
Konnektivität aus dem Consumer-Projekt testen
Die Private-Service-Connect-Komponenten sind nun in Projekt A und Projekt B eingerichtet. Verwenden Sie die Endpoint-IP in Projekt A, um auf den nginx-Dienst in Projekt B zuzugreifen.
Der Test bestätigt: Die Instanzen in den überlappenden Netzwerken kommunizieren über den Private Service Connect Endpoint privat miteinander.
Dieses Beispiel zeigt, wie Sie mit Private Service Connect Dienste in überlappenden Netzwerken sicher veröffentlichen und konsumieren.
Der Traffic bleibt durchgängig innerhalb von Google Cloud. Consumer und Producer erhalten so einen serviceorientierten Zugriff – mit granularer Kontrolle darüber, wer wie auf welche Dienste zugreift.
Mehr zu Private Service Connect erfahren Sie auf der Produktseite.
Legen Sie eine Managed Instance Group in Projekt B an.
Nach erfolgreicher Erstellung startet die Managed Instance Group automatisch eine Instanz in der Zielzone.
Verbinden Sie sich per SSH mit der Instanz und prüfen Sie den Status des nginx-Dienstes.
Legen Sie eine Testinstanz für die Konnektivitätsprüfung in Projekt A an.
Zwischen den Netzwerken von Projekt A und Projekt B besteht keine interne Verbindung. Die Instanz in Projekt A kann daher nicht auf den Dienst in Projekt B zugreifen.
VPC Peering scheidet wegen der überlappenden Bereiche im Standardnetzwerk aus.
Internen Load Balancer einrichten
Damit Private Service Connect den Dienst über ein Service Attachment bereitstellen kann, ist ein interner Load Balancer erforderlich. Für dieses Setup richten wir in Projekt B einen internen TCP-Load-Balancer ein.
Legen Sie einen neuen regionalen HTTP-Health-Check an, der die HTTP-Konnektivität zu den VMs auf Port 80 prüft.
Legen Sie den Backend-Dienst für den HTTP-Traffic an.
Hängen Sie die nginx-Service-Instance-Group an den Backend-Dienst an.
Legen Sie eine Forwarding Rule für den Backend-Dienst an.
Richten Sie eine Firewall-Regel ein, die Health Checks des Load Balancers zulässt.
Dienste im Service-Producer-Projekt veröffentlichen
Veröffentlichen Sie den Dienst in Projekt B – dem Service-Producer-Projekt –, damit Consumer aus anderen VPC-Netzwerken privat und sicher darauf zugreifen können.
Reservieren Sie ein Subnetz für Private Service Connect. Dieser Subnetzbereich darf sich nicht mit dem Standardnetzwerk überschneiden.
Geben Sie den nginx-Dienst für Projekt A frei – mit expliziter Projektgenehmigung.
Sie können steuern, welche Consumer auf die veröffentlichten Dienste zugreifen dürfen – wahlweise per automatischer oder manueller Freigabe. Details dazu finden Sie unter Publish services by using Private Service Connect.
Richten Sie eine Firewall-Regel ein, damit Private Service Connect auf die Zielinstanzen zugreifen darf.
Endpoint im Service-Consumer-Projekt konfigurieren
Ein Endpoint im Service-Consumer-Projekt verbindet sich über eine Private-Service-Connect-Forwarding-Rule mit Diensten im VPC-Netzwerk des Producers.
Beim Anlegen eines Endpoints wird dieser automatisch im Service Directory registriert – entweder unter einem von Ihnen gewählten Namespace oder unter dem Standard-Namespace goog-psc-default.
Damit der Endpoint aus mehreren Regionen erreichbar ist, aktivieren Sie Global Access. Global Access befindet sich derzeit in der Preview.
Reservieren Sie eine interne IP-Adresse für den Endpoint.
Legen Sie eine Forwarding Rule an, die den Endpoint mit dem Service Attachment in Projekt B verbindet.
Konnektivität aus dem Consumer-Projekt testen
Die Private-Service-Connect-Komponenten sind nun in Projekt A und Projekt B eingerichtet. Verwenden Sie die Endpoint-IP in Projekt A, um auf den nginx-Dienst in Projekt B zuzugreifen.
Der Test bestätigt: Die Instanzen in den überlappenden Netzwerken kommunizieren über den Private Service Connect Endpoint privat miteinander.
Dieses Beispiel zeigt, wie Sie mit Private Service Connect Dienste in überlappenden Netzwerken sicher veröffentlichen und konsumieren.
Der Traffic bleibt durchgängig innerhalb von Google Cloud. Consumer und Producer erhalten so einen serviceorientierten Zugriff – mit granularer Kontrolle darüber, wer wie auf welche Dienste zugreift.
Mehr zu Private Service Connect erfahren Sie auf der Produktseite.