Auf dieser Seite wird die erforderliche Konfiguration zum Freigeben eines Dienstes der flexiblen App Engine-Umgebung nur über seine interne IP-Adresse gezeigt.
Standardmäßig erhalten Dienste in der flexiblen Umgebung sowohl eine interne als auch eine sitzungsspezifische externe IP-Adresse, wenn sie zum ersten Mal bereitgestellt werden. Die sitzungsspezifische externe IP-Adresse ermöglicht Ihrem Dienst, Anfragen mit benutzerdefinierten Domains und Ressourcen im Internet an App Engine-Dienste zu senden. Für sitzungsspezifische externe IP-Adressen fallen Kosten an.
Wenn Ihr Dienst keine externe IP-Adresse erfordert, können Sie verhindern, dass der Dienst Anfragen an Ressourcen im Internet sendet. Außerdem können Sie die Kosten senken, indem Sie den Dienst auf die Nutzung seiner internen IP-Adresse beschränken. Dies verhindert nicht, dass Ihr Dienst Anfragen aus dem Internet oder von App Engine-Diensten mit benutzerdefinierten Domains empfängt, da der voll qualifizierte Domainname Ihres Dienstes noch immer extern sichtbar ist.
Beschränkungen
Das Deaktivieren von sitzungsspezifischen externen IP-Adressen unterliegt den folgenden Einschränkungen:
- Dienste mit benutzerdefinierten Domains: Um Anfragen an App Engine-Dienste mit benutzerdefinierten Domains senden zu können, müssen Sie Cloud NAT konfigurieren.
- Externe Ressourcen: Um Anfragen an externe Ressourcen senden zu können, müssen Sie Cloud NAT konfigurieren.
- Abhängigkeit von privatem Google-Zugriff: Instanzen mit IP-Modus gesetzt auf
internalerfordern privaten Google-Zugriff auf das Ziel-Subnetzwerk. - Legacy-Netzwerke: Legacy-Netzwerke können den privaten Google-Zugriff nicht verwenden und daher sitzungsspezifische externe IP-Adressen nicht deaktivieren.
Vorbereitung
Damit Anwendungen der flexiblen Umgebung ohne externe IP-Adressen bereitgestellt werden können, müssen Sie den privaten Google-Zugriff für das Zielsubnetzwerk aktivieren.
- Weitere Informationen zum privaten Google-Zugriff finden Sie in der Übersicht.
- Eine detaillierte Konfigurationsanleitung finden Sie unter Privaten Google-Zugriff aktivieren.
Freigegebene VPC-Netzwerk vorbereiten
Wenn Sie eine freigegebene VPC verwenden, gehen Sie so vor, um Ihr freigegebene VPC-Netzwerk für die weitere Konfiguration vorzubereiten:
Prüfen Sie, ob Sie eine Route haben, die mit dem privaten Google-Zugriff kompatibel ist. In der Regel ist die Standardroute eines Netzwerks mit dem privaten Google-Zugriff kompatibel. Prüfen Sie bei anderen Routen, ob die Route so konfiguriert ist.
Network: SHARED_VPC_NETWORK_NAME Destination IP address range: 0.0.0.0/0 Instance tags: INSTANCE_TAGS Next hop: DEFAULT_INTERNET_GATEWAY
Dabei gilt:
SHARED_VPC_NETWORK_NAME: Der Name des freigegebene VPC-Netzwerks.INSTANCE_TAGS: Wenn Sie keine Instanz-Tags verwenden, geben Sie in diesem Feld nichts an. Wenn Sie Instanz-Tags verwenden, fügen Sieaef-instancesin die Liste der Instanz-Tags ein.DEFAULT_INTERNET_GATEWAY: Das Standard-Internet-Gateway
Weitere Informationen zu kompatiblen Routen für den privaten Google-Zugriff finden Sie in der Dokumentation zu privatem Google-Zugriff unter Routingoptionen.
Prüfen Sie, ob Sie eine Firewallregel haben, die mit dem privaten Google-Zugriff kompatibel ist. Die Firewallregel muss so konfiguriert werden.
Network: SHARED_VPC_NETWORK_NAME Destination IP address range: 0.0.0.0/0 Destination filter: IP ranges Direction of traffic: Egress Attach on match: Allow Instance tags: INSTANCE_TAGS
Dabei gilt:
SHARED_VPC_NETWORK_NAME: Der Name des freigegebene VPC-Netzwerks.INSTANCE_TAGS: Wenn Sie keine Instanz-Tags verwenden, geben Sie in diesem Feld nichts an. Wenn Sie Instanz-Tags verwenden, fügen Sieaef-instancesin die Liste der Instanz-Tags ein.
Weitere Informationen zu kompatiblen Firewallregeln für den privaten Google-Zugriff finden Sie in der Dokumentation zum privaten Google-Zugriff unter Firewallkonfiguration.
Dienst so konfigurieren, dass nur seine interne IP-Adresse verwendet wird
Google Cloud-CLI aktualisieren Dadurch wird eine Version der gcloud-CLI verwendet, die private IP-Adressen für Anwendungen in der flexiblen Umgebung unterstützt.
gcloud components update
Fügen Sie in der Datei
app.yamldas Feldinstance_ip_modedem Abschnittnetworkhinzu und setzen Sie es aufinternal.Wenn die Datei
app.yamlbereits einen Abschnittnetworkenthält, fügen Sie die folgende Zeile im Abschnittnetworkhinzu:instance_ip_mode: internalWenn die Datei
app.yamlkeinen Abschnittnetworkenthält, erstellen Sie den Abschnitt und geben Sie den Instanz-IP-Modus an. Fügen Sie dazu die folgenden Zeilen hinzu:network: instance_ip_mode: internal
Speichern Sie diese Änderungen.
Stellen Sie den Dienst bereit.
gcloud beta app deploy
Überprüfen Sie die Konfiguration auf der Seite „Instanzen“ der Google Cloud Console.
Scrollen Sie nach unten zur Tabelle Instanzen (unter dem Diagramm Zusammenfassung). Bestätigen Sie in der Spalte Externe IP-Adresse, dass keine IP-Adresse aufgeführt ist. Wenn keine IP-Adresse in dieser Spalte vorhanden ist, hat Ihre Instanz keine externe IP-Adresse. Auch wenn dieses Feld leer ist, hat Ihre Instanz weiterhin eine interne IP-Adresse.
Externe Anfragen ohne externe IP-Adresse senden
Wenn Ihr Dienst Anfragen an das Internet sendet, Sie dies jedoch auf die interne IP-Adresse beschränken möchten, können Sie mit Cloud NAT ein Gateway erstellen. Ihr Dienst kann ausgehende Anfragen über das Cloud NAT-Gateway senden und dabei reservierte statische externe IP-Adressen anstelle der standardmäßigen sitzungsspezifischen externen IP-Adressen verwenden.
Konfigurieren Sie Ihren Dienst so, dass instance_ip_mode: internal mit Cloud NAT und dedizierten statischen externen IP-Adressen in den folgenden Situationen verwendet wird:
- Sie stellen eine Verbindung zu einer externen Datenbank oder API her, für die eine Zulassungsliste für IP-Adressen oder eine Firewallregel erforderlich ist.
- Sie stellen eine Verbindung zu reputationssensitiven externen Endpunkten her, z. B. Zahlungs-Gateways, gehosteten Datenbanken oder Partner-APIs, die durch Web Application Firewalls (WAFs) von Drittanbietern geschützt sind. Vorheriger oder übermäßiger Traffic in freigegebenen Pools mit sitzungsspezifischen IP-Adressen kann die IP-Reputation beeinträchtigen und dazu führen, dass externe WAFs Ihre Anfragen mit
HTTP 403-Fehlern oder Verbindungszeitüberschreitungen blockieren oder drosseln. - Sie führen autorisierte Netzwerkscans, Portaufzählungen, Host-Fingerprinting, Sicherheitslückenprüfungen, Web-Scraping oder Lasttests aus.
So leiten Sie ausgehende Internetanfragen über Cloud NAT weiter:
Folgen Sie der Anleitung im Abschnitt Dienst so konfigurieren, dass nur seine interne IP-Adresse verwendet wird.
Führen Sie die Schritte unter Cloud NAT konfigurieren aus und weisen Sie dem Gateway reservierte statische externe IP-Adressen zu.
Wenn Ihr Dienst auf viele Instanzen skaliert wird oder viele gleichzeitige Verbindungen öffnet, z. B. während eines autorisierten Netzwerkscans, weisen Sie Cloud NAT mehrere statische IP-Adressen zu. Sie können auch die Mindestanzahl von Ports pro Instanz erhöhen oder die dynamische Portzuweisung aktivieren, um eine Port-Erschöpfung zu verhindern. Weitere Informationen zur Verwendung von IP-Adressen und Ports durch Cloud NAT-Gateways
Weitere Informationen zu diesem Ansatz finden Sie in der Cloud Architecture Center-Dokumentation unter Cloud NAT zum Abrufen bereitstellen.