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 Console.
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.