Regions-ID
REGION_ID
ist ein abgekürzter Code, den Google anhand der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regions-IDs häufig verwendeten Länder- und Provinzcodes ähneln können. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r
in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.
Sicherheit ist ein zentrales Element von Google Cloud. Dennoch sollten Sie Vorkehrungen treffen, um Ihre App Engine-Anwendung zu schützen und Sicherheitslücken zu identifizieren.
Mit den hier aufgeführten Funktionen können Sie dafür sorgen, dass Ihre App Engine-Anwendung sicher ist. Weitere Informationen zum Sicherheitsmodell von Google und den möglichen Schritten zur Absicherung Ihrer Google Cloud-Projekte finden Sie unter Sicherheit in der Google Cloud Platform.
HTTPS-Anfragen
Mit HTTPS-Anfragen können Sie sicher auf Ihre App Engine-Anwendung zugreifen. Je nachdem, wie Ihre Anwendung konfiguriert ist, haben Sie die folgenden Möglichkeiten:
appspot.com
-Domains- Verwenden Sie das URL-Präfix
https
, um eine HTTPS-Anfrage an den Dienstdefault
Ihres Google Cloud-Projekts zu senden. Beispiel:
https://PROJECT_ID.REGION_ID.r.appspot.com
Wenn Sie bestimmte Ressourcen in Ihrer App Engine-Anwendung als Ziel angeben möchten, trennen Sie diese mit der Syntax
-dot-
. Beispiel:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
Wenn Sie eine HTTP-URL in eine HTTPS-URL konvertieren möchten, ersetzen Sie die Punkte zwischen den einzelnen Ressourcen durch
-dot-
. Beispiel:
http://SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com
https://SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com
Weitere Informationen zu HTTPS-URLs und Ressourcenzielen finden Sie unter Anfragerouting.
- Verwenden Sie das URL-Präfix
- Benutzerdefinierte Domains
Sie können die verwalteten SSL-Zertifikate von App Engine verwenden, um HTTPS-Anfragen mit Ihrer benutzerdefinierten Domain zu senden. Weitere Informationen finden Sie unter Benutzerdefinierte Domains mit SSL sichern.
- Anwendungs-Handler
Wenn Sie HTTPS für die Handler Ihrer Anwendung erzwingen möchten, können Sie das Element
secure: always
für jeden Handler in der Dateiapp.yaml
angeben. Beispiel:handlers: - url: /.* script: auto secure: always redirect_http_response_code: 301
Mit
secure: always
wird der gesamte HTTP-Traffic an eine HTTPS-URL mit demselben Pfad weitergeleitet. Weitere Informationen finden Sie in der Konfigurationsreferenz für die Dateiapp.yaml
.
Zugriffssteuerung
Richten Sie in jedem Google Cloud-Projekt die Zugriffssteuerung ein. Damit können Sie festlegen, wer auf die Dienste innerhalb des Projekts zugreifen kann, einschließlich App Engine. Sie können unterschiedlichen Konten unterschiedliche Rollen zuweisen, damit jedes Konto nur die zur Anwendungsunterstützung erforderlichen Berechtigungen hat. Details finden Sie unter Zugriffssteuerung einrichten.
App Engine-Firewall
Mit der App Engine-Firewall können Sie den Zugriff auf Ihre App Engine-App über eine Reihe von Regeln steuern, die Anfragen von den angegebenen IP-Adressbereichen zulassen oder ablehnen. Sie müssen keine Gebühren für von der Firewall blockierten Traffic bzw. blockierte Bandbreite zahlen. Eine Firewall kann für folgende Szenarien erstellt werden:
- Traffic nur innerhalb eines bestimmten Netzwerks zulassen
- Damit wird sichergestellt, dass nur ein konkreter Bereich von IP-Adressen bestimmter Netzwerke auf die Anwendung zugreifen kann. Beispielsweise können Sie Regeln erstellen, die festlegen, dass während der Testphase der Anwendung nur der angegebene Bereich von IP-Adressen aus dem privaten Netzwerk Ihres Unternehmens zulässig ist. Sie können dann Firewallregeln erstellen und bearbeiten, um den Umfang des Zugriffs während des gesamten Veröffentlichungsprozesses zu steuern. Dann haben nur bestimmte Organisationen innerhalb oder außerhalb Ihres Unternehmens die Möglichkeit, auf die Anwendung zuzugreifen, bis diese öffentlich verfügbar ist.
- Traffic nur von einem bestimmten Dienst zulassen
- Damit wird sichergestellt, dass der gesamte Traffic zur App Engine-Anwendung zuerst über einen bestimmten Dienst geleitet wird. Wenn Sie beispielsweise als Proxy für Anfragen, die direkt an die Anwendung gerichtet werden, die Web Application Firewall (WAF) eines Drittanbieters verwenden, können Sie mit Firewallregeln alle Anfragen mit Ausnahme derjenigen ablehnen, die von Ihrer WAF weitergeleitet werden.
- Missbräuchliche IP-Adressen blockieren
- Google Cloud setzt viele Mechanismen zur Abwehr von Angriffen ein. Zusätzlich können Sie die Anwendung mit der App Engine-Firewall schützen. Blockieren Sie dazu den Traffic von IP-Adressen mit böswilligen Absichten oder unterbinden Sie Denial-of-Service-Angriffe und ähnliche Formen missbräuchlicher Nutzung. Sie können einer Sperrliste IP-Adressen oder Subnetzwerke hinzufügen, damit Anfragen, die von diesen Adressen und Subnetzwerken stammen, abgelehnt werden, bevor sie die App Engine-Anwendung erreichen.
Wie Sie Regeln erstellen und die Firewall konfigurieren, erfahren Sie unter Zugriff auf Anwendungen mit Firewalls steuern.
Steuerelemente für eingehenden Traffic
In diesem Abschnitt wird beschrieben, wie Sie mit den Einstellungen für eingehenden Traffic den Netzwerkzugriff auf Ihre App Engine-Anwendung einschränken. Auf Netzwerkebene kann standardmäßig jede Ressource im Internet Ihre App Engine-Anwendung auf ihrer appspot-URL oder über eine in App Engine eingerichtete benutzerdefinierte Domain erreichen. Die URL appspot.com
kann beispielsweise das folgende Format haben: SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com
.
Sie können diese Standardeinstellung ändern, indem Sie eine andere Einstellung für eingehenden Traffic festlegen. Alle Ingress-Pfade, einschließlich der Standard-URL appspot.com
, unterliegen der Einstellung für eingehenden Traffic. Eingehender Traffic wird auf Dienstebene festgelegt.
Verfügbare Einstellungen für eingehenden Traffic
Diese Einstellungen sind verfügbar:
Einstellung | Beschreibung |
---|---|
Intern |
Stärkste Einschränkung. Ermöglicht Anfragen von Ressourcen, die an die VPC-Netzwerke des Projekts angehängt sind, z. B. .
appspot.com auf Ihren Dienst zugreifen.
Anfragen aus anderen Quellen, einschließlich des Internets, können Ihren Dienst nicht über die URL appspot.com oder benutzerdefinierte Domains erreichen. Mehrinstanzenfähigkeit wird nicht unterstützt, also mehrere Vertrauensdomains in einem Projekt.
|
internes und Cloud-Load-Balancing | Anfragen von den folgenden Ressourcen sind zulässig:
appspot.com umgehen den externen Load-Balancer für Anwendungen. Daher verhindert diese Einstellung, dass externe Anfragen die URL appspot.com erreichen.
|
Alle |
Geringste Einschränkung. Ermöglicht alle Anfragen, einschließlich Anfragen direkt aus dem Internet an die URL appspot.com .
|
Auf interne Dienste zugreifen
Dabei gilt Folgendes:
Bei Anfragen von einer freigegebenen VPC wird der Traffic nur als intern betrachtet, wenn die App Engine-Anwendung im freigegebenen VPC-Hostprojekt bereitgestellt wird. Wenn die App Engine-Anwendung in einem freigegebenen VPC-Dienstprojekt bereitgestellt wird, ist nur der Traffic aus Netzwerken , die zum eigenen Projekt der Anwendung gehören, intern. Der gesamte andere Traffic, einschließlich Traffic von anderen freigegebenen VPCs, ist extern.
Wenn Sie auf interne Dienste zugreifen, rufen Sie sie so auf, wie Sie es auch mit ihren öffentlichen URLs tun würden, entweder die Standard-URL
appspot.com
oder eine in App Engine eingerichtete benutzerdefinierte Domain.Für Anfragen von Compute Engine-VM-Instanzen oder anderen Ressourcen, die in einem VPC-Netzwerk im selben Projekt ausgeführt werden, ist keine weitere Einrichtung erforderlich.
Verbinden Sie für Anfragen von anderen App Engine-Diensten oder von Cloud Run oder Cloud Run-Funktionen im selben Projekt den Dienst oder die Funktion mit einem VPC-Netzwerk und leiten Sie den gesamten ausgehenden Traffic über den Connector weiter, wie unter Verbindung zu einem freigegebenen VPC-Netzwerk herstellen beschrieben.
Anfragen von Ressourcen innerhalb von VPC-Netzwerken im selben Projekt werden als intern klassifiziert, auch wenn die Ressource, von der sie stammen, eine öffentliche IP-Adresse hat.
Anfragen von lokalen Ressourcen, die über Cloud VPN mit dem VPC-Netzwerk verbunden sind, gelten als
internal
.
Einstellungen für eingehenden Traffic aufrufen
Console
Rufen Sie die Seite „App Engine-Dienste“ auf.
Suchen Sie die Spalte Ingress (Eingehend). Für jeden Dienst zeigt der Wert in dieser Spalte die Einstellung für eingehenden Traffic entweder als Alle (Standardeinstellung), Intern + Load-Balancing oder Intern.
gcloud
So rufen Sie die Einstellung für eingehenden Traffic für einen Dienst mit der gcloud CLI auf:
gcloud app services describe SERVICE
Ersetzen Sie SERVICE durch den Namen Ihres Dienstes.
So zeigen Sie beispielsweise die Einstellungen für eingehenden Traffic und andere Informationen für den Standarddienst an:
gcloud app services describe default
Einstellungen für eingehenden Traffic bearbeiten
Console
Rufen Sie die Seite „App Engine-Dienste“ auf.
Wählen Sie den Dienst aus, den Sie löschen möchten.
Klicken Sie auf Einstellung für eingehenden Traffic bearbeiten.
Wählen Sie die gewünschte Einstellung für eingehenden Traffic aus dem Menü aus und klicken Sie auf Speichern.
gcloud
So aktualisieren Sie die Einstellung für eingehenden Traffic für einen Dienst mit der gcloud CLI:
gcloud app services update SERVICE --ingress=INGRESS
Ersetzen Sie:
- SERVICE: Name Ihres Dienstes.
- INGRESS: Das Steuerelement für eingehenden Traffic, das Sie anwenden möchten. Entweder
all
,internal-only
oderinternal-and-cloud-load-balancing
.
Beispiel:
So aktualisieren Sie den Standarddienst einer App Engine-Anwendung, damit dieser nur Traffic von Cloud Load Balancing und VPC-Netzwerken akzeptiert, die sich im selben Projekt befinden:
gcloud app services update default --ingress=internal-and-cloud-load-balancing
Aktualisieren Sie den Dienst „internal-requests“ so, dass Traffic nur von VPC-Netzwerken im selben Projekt akzeptiert wird:
gcloud app services update internal-requests --ingress=internal-only
Einstellungen für ausgehenden Traffic
Wenn Sie den serverlosen VPC-Zugriff verwenden, können Sie die Einstellung für ausgehenden Traffic für Ihren App Engine-Dienst angeben.
Standardmäßig werden nur Anfragen an interne IP-Adressen und interne DNS-Namen über einen Connector für serverlosen VPC-Zugriff weitergeleitet. Sie können die Einstellung für ausgehenden Traffic für Ihren Dienst in der Datei app.yaml
angeben.
Einstellungen für ausgehenden Traffic sind nicht mit dem URL-Abrufdienst kompatibel. Deaktivieren Sie die Standardeinstellung für den URL-Abruf, wenn Sie dies noch nicht getan haben. Dazu verwenden Sie Sockets und Beenden die explizite Nutzung des Pakets urlfetch
.
Bei Verwendung der urlfetch
-Bibliothek werden die Einstellungen für ausgehenden Traffic ignoriert und Anfragen werden nicht über einen Connector für serverlosen VPC-Zugriff weitergeleitet.
So konfigurieren Sie das Verhalten des ausgehenden Traffics Ihres App Engine-Dienstes:
Fügen Sie das Attribut
egress_setting
dem Feldvpc_access_connector
der Dateiapp.yaml
Ihres Dienstes hinzu:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME egress_setting: EGRESS_SETTING
Ersetzen Sie:
PROJECT_ID
durch Ihre Google Cloud-Projekt-IDREGION
durch die Region, in der sich der Connector befindet.CONNECTOR_NAME
ist der Name des Connectors.EGRESS_SETTING
durch einen der folgenden Werte:private-ranges-only
Standardeinstellung. Nur Anfragen an die IP-Adressbereiche RFC 1918 und RFC 6598 oder interne DNS-Namen werden an Ihr VPC-Netzwerk weitergeleitet. Alle anderen Anfragen werden direkt an das Internet weitergeleitet.all-traffic
Alle ausgehenden Anfragen von Ihrem Dienst werden an Ihr VPC-Netzwerk weitergeleitet. Anfragen unterliegen dann den Firewall-, DNS- und Routingregeln Ihres VPC-Netzwerks. Beachten Sie, dass die Weiterleitung aller ausgehenden Anfragen an Ihr VPC-Netzwerk den Umfang des ausgehenden Traffics erhöht, der vom Connector für serverlosen VPC-Zugriff verarbeitet wird. Es können Gebühren anfallen.
Stellen Sie den Dienst bereit:
gcloud app deploy
Sicherheitsscanner
Der Google Cloud Web Security Scanner durchsucht Ihre App Engine-App auf Sicherheitslücken, Dafür folgt er allen Links im Bereich der Start-URLs und versucht, so viele Nutzereingaben und Event-Handler wie möglich anzuwenden.
Sie müssen Inhaber des Google Cloud-Projekts sein, um den Sicherheitsscanner verwenden zu können. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriffssteuerung einrichten.
Ermitteln Sie Sicherheitslücken in Ihrer App Engine-Anwendung mit den Sicherheitsscans der Google Cloud Console. Weitere Informationen zum Ausführen des Security Scanners finden Sie unter Web Security Scanner einsetzen.