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
internal
erfordern 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.
Freigegebenes VPC-Netzwerk vorbereiten
Wenn Sie eine freigegebene VPC verwenden, gehen Sie so vor, um Ihr freigegebenes 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 freigegebenen 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-instances
in 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 freigegebenen 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-instances
in 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.yaml
das Feldinstance_ip_mode
dem Abschnittnetwork
hinzu und setzen Sie es aufinternal
.Wenn die Datei
app.yaml
bereits einen Abschnittnetwork
enthält, fügen Sie die folgende Zeile im Abschnittnetwork
hinzu:instance_ip_mode: internal
Wenn die Datei
app.yaml
keinen Abschnittnetwork
enthä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 -Konsole.
Scrollen Sie nach unten zur Tabelle Instanzen (unter dem Diagramm Zusammenfassung). Bestätigen Sie in der Spalte Externe IP, 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 externe Anfragen über das Cloud NAT-Gateway senden, ohne die standardmäßigen sitzungsspezifischen externen IP-Adressen zu verwenden.
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.
Weitere Informationen zu diesem Ansatz finden Sie in der Cloud Architecture Center-Dokumentation unter Cloud NAT zum Abrufen bereitstellen.