Auf APIs über VMs mit externen IP-Adressen zugreifen
Eine VM-Instanz (Virtual Machine) mit einer externen Netzwerkadresse, die ihrer Netzwerkschnittstelle zugewiesen ist, kann eine Verbindung zu Google APIs und Google-Diensten herstellen, wenn die auf dieser Seite beschriebenen Netzwerkanforderungen erfüllt sind. Obwohl die Verbindung über die externe IP-Adresse der VM hergestellt wird, verbleibt der Traffic innerhalb der Google Cloud und wird nicht über das öffentliche Internet gesendet.
Netzwerkanforderungen
Sie müssen die folgenden Anforderungen für den Zugriff auf Google APIs und Google-Dienste von einer VM mit einer externen IP-Adresse erfüllen:
- Sie müssen die Google APIs aktivieren, die Sie in der Google Cloud Console auf der Seite APIs & Dienste verwenden müssen.
Wenn Sie über IPv6 eine Verbindung zu Google APIs und Google-Diensten herstellen möchten, müssen die beiden folgenden Anforderungen erfüllt sein:
Ihre VM muss mit einem externen
/96
-IPv6-Adressbereich konfiguriert sein.Die auf der VM ausgeführte Software muss Pakete senden, deren Quellen mit einer dieser IPv6-Adressen aus diesem Bereich übereinstimmen.
- Je nach ausgewählter Konfiguration müssen Sie möglicherweise DNS-Einträge, Routen und Firewallregeln aktualisieren. Weitere Informationen finden Sie unter Zusammenfassung der Konfigurationsoptionen.
Zusammenfassung der Konfigurationsoptionen
In der folgenden Tabelle sind die verschiedenen Möglichkeiten zur Konfiguration des privaten Google-Zugriffs zusammengefasst. Ausführliche Informationen zur Konfiguration finden Sie unter Netzwerkkonfiguration.
Domainoption | DNS-Konfiguration | Routingkonfiguration | Firewallkonfiguration |
---|---|---|---|
Standarddomains | Es ist keine spezielle DNS-Konfiguration erforderlich. | Achten Sie darauf, dass Ihr VPC-Netzwerk Traffic an die IP-Adressbereiche weiterleiten kann, die von Google APIs und Diensten verwendet werden.
|
Achten Sie darauf, dass Ihre Firewallregeln ausgehenden Traffic zu den IP-Adressbereichen zulassen, die von Google APIs und Google-Diensten verwendet werden. Die Standard-Firewallregel für ausgehenden Traffic lässt diesen Traffic zu, wenn er nicht durch eine höhere Priorität blockiert wird. |
private.googleapis.com
|
Konfigurieren Sie DNS-Einträge in einer privaten DNS-Zone, um Anfragen an die folgenden IP-Adressen zu senden: Für IPv4-Traffic:
Für IPv4-Traffic:
|
Achten Sie darauf, dass Ihr VPC-Netzwerk Routen zu den folgenden IP-Bereichen hat: Für IPv4-Traffic:
Für IPv4-Traffic:
|
Achten Sie darauf, dass Ihre Firewallregeln ausgehenden Traffic zu den folgenden IP-Bereichen zulassen: Für IPv4-Traffic:
Für IPv4-Traffic:
|
restricted.googleapis.com
|
Konfigurieren Sie DNS-Einträge so, dass Anfragen an die folgenden IP-Adressen gesendet werden: Für IPv4-Traffic:
Für IPv4-Traffic:
|
Achten Sie darauf, dass Ihr VPC-Netzwerk Routen zu den folgenden IP-Bereichen hat: Für IPv4-Traffic:
Für IPv4-Traffic:
|
Achten Sie darauf, dass Ihre Firewallregeln ausgehenden Traffic zu den folgenden IP-Bereichen zulassen: Für IPv4-Traffic:
Für IPv4-Traffic:
|
Netzwerkkonfiguration
In diesem Abschnitt werden die grundlegenden Netzwerkanforderungen beschrieben, die Sie erfüllen müssen, damit eine VM in Ihrem VPC-Netzwerk auf Google APIs und Google-Dienste zugreifen kann.
Domainoptionen
Wählen Sie die Domain aus, die Sie für den Zugriff auf Google APIs und Google-Dienste verwenden möchten.
Die virtuellen IP-Adressen (VIPs) private.googleapis.com
und restricted.googleapis.com
unterstützen nur HTTP-basierte Protokolle über TCP (HTTP, HTTPS und HTTP/2). Alle anderen Protokolle, einschließlich MQTT und ICMP, werden nicht unterstützt.
Domains und IP-Adressbereiche | Unterstützte Dienste | Nutzungsbeispiel |
---|---|---|
Standarddomains. Alle Domainnamen für Google APIs und Google-Dienste mit Ausnahme von Verschiedene IP-Adressbereiche: Sie können eine Reihe von IP-Bereichen bestimmen, die die möglichen Adressen der Standarddomains enthalten, indem Sie auf IP-Adressen für Standarddomains verweisen. |
Aktiviert den API-Zugriff auf die meisten Google APIs und Google-Dienste, unabhängig davon, ob sie von VPC Service Controls unterstützt werden. Umfasst API-Zugriff auf Google Maps, Google Ads und Google Cloud. Umfasst Google Workspace-Webanwendungen wie Gmail und Google Docs sowie andere Webanwendungen. |
Wenn Sie keine DNS-Einträge für |
|
Aktiviert den API-Zugriff auf die meisten Google APIs und Google-Dienste, unabhängig davon, ob sie von VPC Service Controls unterstützt werden. Umfasst den API-Zugriff auf Google Maps, Google Ads, Google Cloud und die meisten anderen Google APIs, einschließlich der folgenden Liste. Unterstützt keine Google Workspace-Webanwendungen wie Gmail und Google Docs. Interaktive Websites werden nicht unterstützt. Domainnamen, die übereinstimmen:
|
Mit Wählen Sie unter folgenden Umständen
|
|
Aktiviert den API-Zugriff auf Google APIs und Google-Dienste, die von VPC Service Controls unterstützt werden. Blockiert den Zugriff auf Google APIs und Google-Dienste, die VPC Service Controls nicht unterstützen. Unterstützt keine Google Workspace APIs oder Google Workspace-Webanwendungen wie Gmail und Google Docs. |
Mit Wählen Sie Die Domain |
restricted.googleapis.com
. Es bietet eine zusätzliche Risikominderung bei der Daten-Exfiltration. Die Verwendung von restricted.googleapis.com
verweigert den Zugriff auf Google APIs und Google-Dienste, die nicht von VPC Service Controls unterstützt werden. Weitere Informationen finden Sie in der Dokumentation zu VPC Service Controls unter Private Verbindung zu Google APIs und Google-Diensten einrichten.
IPv6-Unterstützung für private.googleapis.com
und restricted.googleapis.com
Die folgenden IPv6-Adressbereiche können verwendet werden, um Traffic von IPv6-Clients an Google APIs und Dienste weiterzuleiten:
private.googleapis.com
:2600:2d00:0002:2000::/64
restricted.googleapis.com
:2600:2d00:0002:1000::/64
Erwägen Sie die Konfiguration der IPv6-Adressen, wenn Sie die Domain private.googleapis.com
oder restricted.googleapis.com
verwenden möchten, und wenn Sie Clients haben, die IPv6-Adressen verwenden. IPv6-Clients, die auch IPv4-Adressen konfiguriert haben, können mithilfe der IPv4-Adressen Google APIs und Google-Dienste erreichen. Nicht alle Dienste akzeptieren Traffic von IPv6-Clients.
DNS-Konfiguration
Für die Verbindung zu Google APIs und Google-Diensten können Sie Pakete an die IPv4-Adressen senden, die mit der VIP private.googleapis.com
oder restricted.googleapis.com
verknüpft sind. Wenn Sie eine VIP verwenden möchten, müssen Sie DNS so konfigurieren, dass VMs in Ihrem VPC-Netzwerk Dienste über die VIP-Adressen anstelle der öffentlichen IP-Adressen erreichen.
Im folgenden Abschnitt wird beschrieben, wie Sie mithilfe von DNS-Zonen Pakete an die IP-Adressen senden, die der ausgewählten VIP zugeordnet sind. Folgen Sie den Anleitungen für alle zutreffenden Szenarien:
- Wenn Sie Dienste mit
*.googleapis.com
-Domainnamen verwenden, finden Sie weitere Informationen unter DNS fürgoogleapis.com
konfigurieren. Wenn Sie Dienste mit anderen Domainnamen verwenden, lesen Sie den Abschnitt DNS für andere Domains konfigurieren.
Wenn Sie beispielsweise Google Kubernetes Engine (GKE) verwenden, müssen Sie auch
*.gcr.io
und*.pkg.dev
konfigurieren. Wenn Sie Cloud Run verwenden, müssen Sie*.run.app
konfigurieren.Wenn Sie Cloud Storage-Buckets verwenden und Anfragen an einen benutzerdefinierten Cloud Storage-Domainnamen senden, finden Sie weitere Informationen unter DNS für benutzerdefinierte Cloud Storage-Domainnamen konfigurieren.
Verwenden Sie beim Konfigurieren von DNS-Einträgen für die VIPs nur die in den folgenden Schritten beschriebenen IP-Adressen. Mischen Sie keine Adressen aus den VIPs von private.googleapis.com
und restricted.googleapis.com
. Dies kann zu gelegentlichen Fehlern führen, da die angebotenen Dienste je nach Ziel des Pakets unterschiedlich sind.
DNS für googleapis.com
konfigurieren
Erstellen Sie eine DNS-Zone und -Einträge für googleapis.com
:
- Erstellen Sie eine private DNS-Zone für
googleapis.com
. Ziehen Sie zu diesem Zweck in Betracht, eine private Cloud DNS-Zone zu erstellen. Erstellen Sie in der Zone
googleapis.com
je nach ausgewählter Domain die folgenden privaten DNS-Einträge für entwederprivate.googleapis.com
oderrestricted.googleapis.com
.Für
private.googleapis.com
:Erstellen Sie einen
A
-Eintrag fürprivate.googleapis.com
, der auf die folgenden IP-Adressen verweist:199.36.153.8
,199.36.153.9
,199.36.153.10
,199.36.153.11
Konfigurieren Sie auch eine
AAAA
-Verbindung fürprivate.googleapis.com
, die auf2600:2d00:0002:2000::
verweist, um eine Verbindung zu APIs über IPv6-Adressen herzustellen.
Für
restricted.googleapis.com
:Erstellen Sie einen
A
-Eintrag fürrestricted.googleapis.com
, der auf die folgenden IP-Adressen verweist:199.36.153.4
,199.36.153.5
,199.36.153.6
,199.36.153.7
Erstellen Sie außerdem einen
AAAA
-Eintrag fürrestricted.googleapis.com
, der auf2600:2d00:0002:1000::
verweist, um eine Verbindung zu APIs über IPv6-Adressen herzustellen.
Informationen zum Erstellen von Einträgen für privates DNS in Cloud DNS finden Sie unter Eintrag hinzufügen.
Erstellen Sie in der Zone
googleapis.com
einenCNAME
-Eintrag für*.googleapis.com
, der auf die von Ihnen konfigurierte Domain verweist:private.googleapis.com
oderrestricted.googleapis.com
.
DNS für andere Domains konfigurieren
Einige Google APIs und Google-Dienste werden mit zusätzlichen Domainnamen bereitgestellt, darunter *.gcr.io
, *.gstatic.com
, *.pkg.dev
, pki.goog
und *.run.app
.
In der Tabelle der Domain- und IP-Adressbereiche in den Domainoptionen erfahren Sie, ob die Dienste der zusätzlichen Domain über private.googleapis.com
oder restricted.googleapis.com
aufgerufen werden können. Gehen Sie anschließend für jede der zusätzlichen Domains so vor:
Erstellen Sie eine DNS-Zone für
DOMAIN
(z. B.gcr.io
). Wenn Sie Cloud DNS verwenden, muss sich diese Zone im selben Projekt wie Ihre private Zonegoogleapis.com
befinden.Erstellen Sie in der DNS-Zone je nach ausgewählter Domain die folgenden privaten DNS-Einträge für entweder
private.googleapis.com
oderrestricted.googleapis.com
.Für
private.googleapis.com
:Erstellen Sie einen
A
-Eintrag fürDOMAIN
, der auf die folgenden IP-Adressen verweist:199.36.153.8
,199.36.153.9
,199.36.153.10
,199.36.153.11
Erstellen Sie außerdem einen
AAAA
-Eintrag fürDOMAIN
, der auf2600:2d00:0002:2000::
verweist, um eine Verbindung zu APIs über IPv6-Adressen herzustellen.
Für
restricted.googleapis.com
:Erstellen Sie einen
A
-Eintrag fürDOMAIN
, der auf die folgenden IP-Adressen verweist:199.36.153.4
,199.36.153.5
,199.36.153.6
,199.36.153.7
Erstellen Sie außerdem einen
AAAA
-Eintrag fürrestricted.googleapis.com
, der auf2600:2d00:0002:1000::
verweist, um eine Verbindung zu APIs über IPv6-Adressen herzustellen.
Erstellen Sie in der Zone
DOMAIN
einenCNAME
-Eintrag für*.DOMAIN
, der aufDOMAIN
verweist. Erstellen Sie beispielsweise einenCNAME
-Eintrag für*.gcr.io
, der aufgcr.io
verweist.
DNS für benutzerdefinierte Cloud Storage-Domainnamen konfigurieren
Wenn Sie Cloud Storage-Buckets verwenden und Anfragen an einen benutzerdefinierten Cloud Storage-Domainnamen senden, reicht es nicht aus, die DNS-Einträge für den benutzerdefinierten Cloud Storage-Domainnamen so zu konfigurieren, dass sie auf die IP-Adressen für private.googleapis.com
oder restricted.googleapis.com
verweisen, um den Zugriff auf die Cloud Storage-Buckets zu ermöglichen.
Wenn Sie Anfragen an einen benutzerdefinierten Cloud Storage-Domainnamen senden möchten, müssen Sie auch den Host-Header der HTTP-Anfrage und TLS-SNI explizit auf storage.googleapis.com
setzen IP-Adressen für private.googleapis.com
und restricted.googleapis.com
unterstützen keine benutzerdefinierten Cloud Storage-Hostnamen in HTTP-Anfragehost-Headern und TLS-SNIs.
Routingoptionen
Ihr VPC-Netzwerk muss geeignete Routen haben, deren nächste Hops das Standard-Internetgateway sind. Google Cloud unterstützt das Routing von Traffic zu Google APIs und Google-Diensten über andere VM-Instanzen oder benutzerdefinierte nächste Hops nicht. Obwohl es als Standard-Internetgateway bezeichnet wird, verbleiben Pakete, die von VMs in Ihrem VPC-Netzwerk an Google APIs und Google-Dienste gesendet werden, im Google-Netzwerk.
Wenn Sie die Standarddomains auswählen, stellen Ihre VM-Instanzen über einen Teil der externen IP-Adressen von Google eine Verbindung zu Google APIs und Google-Diensten her. Diese IP-Adressen sind öffentlich routingfähig, aber der Pfad von einer VM in einem VPC-Netzwerk zu diesen Adressen bleibt im Google-Netzwerk.
Google veröffentlicht im Internet keine Routen zu IP-Adressen, die von den Domains
private.googleapis.com
oderrestricted.googleapis.com
verwendet werden. Daher können nur VMs in einem VPC-Netzwerk oder lokale Systeme, die mit einem VPC-Netzwerk verbunden sind, auf diese Domains zugreifen.
Wenn Ihr VPC-Netzwerk eine Standardroute enthält, deren nächster Hop das Standard-Internetgateway ist, können Sie über diese Route auf Google APIs und Google-Dienste zugreifen, ohne benutzerdefinierte Routen erstellen zu müssen. Weitere Informationen finden Sie unter Routing über eine Standardroute.
Wenn Sie eine Standardroute (Ziel 0.0.0.0/0
oder ::0/0
) durch eine benutzerdefinierte Route ersetzt haben, deren nächster Hop nicht das Standard-Internetgateway ist, können Sie die Routinganforderungen für Google APIs und -Dienste stattdessen mit benutzerdefiniertem Routing erfüllen.
Wenn Ihr VPC-Netzwerk keine IPv6-Standardroute hat, haben Sie keine IPv6-Verbindung zu Google APIs und Google-Diensten. Fügen Sie eine IPv6-Standardroute hinzu, um IPv6-Verbindungen zuzulassen.
Routing mit einer Standardroute
Jedes VPC-Netzwerk enthält bei der Erstellung eine IPv4-Standardroute (0.0.0.0/0
). Wenn Sie externe IPv6-Adressen in einem Subnetz aktivieren, wird diesem VPC-Netzwerk eine vom System generierte IPv6-Standardroute (::/0
) hinzugefügt.
Die Standardrouten stellen einen Pfad zu den IP-Adressen für die folgenden Ziele bereit:
Standarddomains
private.googleapis.com
:199.36.153.8/30
und2600:2d00:0002:2000::/64
.restricted.googleapis.com
:199.36.153.4/30
und2600:2d00:0002:1000::/64
.
So prüfen Sie die Konfiguration einer Standardroute in einem bestimmten Netzwerk:
Console
Rufen Sie in der Google Cloud Console die Seite Routen auf.
Filtern Sie die Liste der Routen so, dass nur die Routen für das Netzwerk angezeigt werden, das Sie überprüfen müssen.
Suchen Sie nach einer Route mit dem Ziel
0.0.0.0/0
für IPv4-Traffic oder mit::/0
für IPv6-Traffic, deren nächster Hop das Standard-Internetgateway ist.
gcloud
Verwenden Sie den folgenden gcloud
-Befehl und ersetzen Sie NETWORK_NAME
durch den Namen des Netzwerks, das geprüft werden soll:
gcloud compute routes list \ --filter="default-internet-gateway NETWORK_NAME"
Informationen zum Erstellen einer Standard-IPv4-Ersatzroute finden Sie unter Statische Route hinzufügen.
Informationen zum Erstellen einer Standard-IPv6-Ersatzroute finden Sie unter IPv6-Standardroute hinzufügen.
Benutzerdefiniertes Routing
Als Alternative zu einer Standardroute können Sie benutzerdefinierte statische Routen verwenden, von denen jede ein spezifischeres Ziel hat und das Standard-Internetgateway als nächsten Hop verwendet. Die Anzahl der benötigten Routen und ihre IP-Zieladressen hängen von der ausgewählten Domain ab.
- Standarddomains: Sie müssen Routen für die IP-Adressbereiche für Google APIs und Google-Dienste haben.
private.googleapis.com
:199.36.153.8/30
und2600:2d00:0002:2000::/64
restricted.googleapis.com
:199.36.153.4/30
und2600:2d00:0002:1000::/64
Außerdem empfehlen wir, Routen für 34.126.0.0/18
und 2001:4860:8040::/42
hinzuzufügen. Weitere Informationen finden Sie unter Zusammenfassung der Konfigurationsoptionen.
Führen Sie die folgenden Schritte aus, um die Konfiguration von benutzerdefinierten Routen für Google APIs und Google-Dienste in einem bestimmten Netzwerk zu prüfen.
Console
Rufen Sie in der Google Cloud Console die Seite Routen auf.
Verwenden Sie das Textfeld Tabelle filtern, um die Liste der Routen anhand der folgenden Kriterien zu filtern. Ersetzen Sie dabei
NETWORK_NAME
durch den Namen Ihres VPC-Netzwerks.- Netzwerk:
NETWORK_NAME
- Nächster Hop-Typ:
default internet gateway
- Netzwerk:
Sehen Sie sich für jede Route die Spalte Ziel-IP-Bereich an. Wenn Sie die Standarddomains ausgewählt haben, suchen Sie nach mehreren benutzerdefinierten statischen Routen, eine für jeden von der Standarddomain verwendeten IP-Adressbereich. Wenn Sie
private.googleapis.com
oderrestricted.googleapis.com
ausgewählt haben, suchen Sie nach dem IP-Bereich dieser Domain.
gcloud
Verwenden Sie den folgenden gcloud
-Befehl und ersetzen Sie NETWORK_NAME
durch den Namen des Netzwerks, das geprüft werden soll:
gcloud compute routes list \ --filter="default-internet-gateway NETWORK_NAME"
Routen werden im Tabellenformat aufgelistet, sofern Sie den Befehl nicht mit dem Flag --format
anpassen. Suchen Sie in der Spalte DEST_RANGE
nach dem Ziel der einzelnen Routen. Wenn Sie die Standarddomains ausgewählt haben, prüfen Sie mehrere benutzerdefinierte statische Routen, eine für jeden von der Standarddomain verwendeten IP-Adressbereich. Wenn Sie private.googleapis.com
oder restricted.googleapis.com
ausgewählt haben, suchen Sie nach dem IP-Bereich dieser Domain.
Informationen zum Erstellen von Routen finden Sie unter Statische Route hinzufügen.
Firewallkonfiguration
Die Firewallkonfiguration Ihres VPC-Netzwerks muss den Zugriff von VMs auf die von Google APIs und Google-Diensten verwendeten IP-Adressen zulassen. Die implizierte allow egress
-Regel erfüllt diese Anforderung.
In einigen Firewallkonfigurationen müssen Sie bestimmte Regeln zum Zulassen von ausgehendem Traffic erstellen.
Angenommen, Sie haben eine Regel zum Ablehnen von ausgehendem Traffic erstellt, die den Traffic zu allen Zielen (0.0.0.0
für IPv4 oder ::/0
für IPv6) blockiert. In diesem Fall müssen Sie eine Firewallregel für ausgehenden Traffic erstellen, deren Priorität höher ist als die Regel für ausgehenden Traffic für jeden von der ausgewählten Domain verwendeten IP-Adressbereich für Google APIs und -Dienste.
- Standarddomains: alle IP-Adressbereiche für Google APIs und Google-Dienste
private.googleapis.com
:199.36.153.8/30
und2600:2d00:0002:2000::/64
restricted.googleapis.com
:199.36.153.4/30
und2600:2d00:0002:1000::/64
Außerdem empfehlen wir, 34.126.0.0/18
und 2001:4860:8040::/42
in Ihre Firewallregel für ausgehenden Traffic aufzunehmen. Weitere Informationen finden Sie unter Zusammenfassung der Konfigurationsoptionen.
Informationen zum Erstellen von Firewallregeln finden Sie unter Firewallregeln erstellen. Sie können die VMs einschränken, auf die die Firewallregeln angewendet werden, wenn Sie das Ziel jeder Regel für ausgehenden Traffic definieren.
IP-Adressen für Standarddomains
In diesem Abschnitt wird beschrieben, wie Sie eine Liste der Standard-Domain-IP-Bereiche erstellen, die von Google APIs und Diensten wie *.googleapis.com
und *.gcr.io
verwendet werden Diese Bereiche werden dynamisch zugewiesen und ändern sich häufig. Daher ist es nicht möglich, bestimmte IP-Bereiche für einzelne Dienste oder APIs zu definieren. Richten Sie zur Aufrechterhaltung einer genauen Liste die Automatisierung ein, um das Skript täglich auszuführen. Als Alternative zum Verwalten einer Liste von IP-Adressbereichen können Sie die private.googleapis.com VIP oder Private Service Connect verwenden.
Google veröffentlicht die vollständige Liste der IP-Bereiche, die Nutzern im Internet zur Verfügung stehen, in goog.json.
Außerdem veröffentlicht Google in der Datei cloud.json eine Liste globaler und regionaler externer IP-Adressbereiche, die für die Google Cloud-Ressourcen des Kunden verfügbar sind.
Die von den Standarddomains für Google APIs und Google-Dienste verwendeten IP-Adressen liegen innerhalb der Bereiche, die verbleiben, nachdem die Bereiche aus cloud.json
aus denen in goog.json
entfernt wurden. Diese Listen werden häufig aktualisiert.
Mit dem folgenden Python-Skript können Sie eine Liste der IP-Adressbereiche erstellen, die die IP-Adressbereiche enthalten, die von den Standarddomains für Google APIs und -Dienste verwendet werden:
Weitere Informationen zum Ausführen dieses Skripts finden Sie unter Ausführung.