Python 3.9 ist jetzt allgemein verfügbar.

Anwendungssicherheit

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. Das Einbinden von REGION_ID.r in App Engine-URLs ist für vorhandene Anwendungen optional und wird bald für alle neuen Anwendungen erforderlich sein.

Für einen reibungslosen Übergang wird App Engine nach und nach für die Verwendung von Regions-IDs aktualisiert. Wenn Ihr Google Cloud-Projekt noch nicht aktualisiert wurde, wird für Ihre Anwendung keine Regions-ID angezeigt. Da die ID für vorhandene Anwendungen optional ist, müssen Sie keine URLs aktualisieren oder andere Änderungen vornehmen, wenn die Regions-ID für Ihre vorhandenen Anwendungen verfügbar wird.

Hier finden Sie weitere Informationen zu Regions-IDs.

Sicherheit ist ein zentrales Element von Google Cloud. Dennoch sollten Sie Schritte unternehmen, 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 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 Dienst default Ihres 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.

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 Datei app.yamlangeben. 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 Datei app.yaml.

Zugriffssteuerung

Richten Sie in jedem 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

Standardmäßig erhält Ihre App Engine-Anwendung alle HTTP-Anfragen, die an ihre appspot-URL oder an eine für Ihre Anwendung konfigurierte benutzerdefinierte Domain gesendet werden.

Sie können mit Steuerelementen für eingehenden Netzwerktraffic den Traffic so einschränken, dass Ihre Anwendung nur HTTP-Anfragen empfängt, die von bestimmten Quellen gesendet werden:

  • Alle: Standardeinstellung. Ihre Anwendung empfängt den gesamten Traffic, einschließlich direkter Anfragen aus dem Internet.

  • Internes und Cloud Load Balancing: Ihre Anwendung empfängt nur Anfragen, die über Cloud Load Balancing weitergeleitet oder von VPC-Netzwerken im selben Projekt gesendet werden. Alle anderen Anfragen werden mit dem Fehler 403 abgelehnt.

  • Nur intern: Ihre Anwendung empfängt nur Anfragen, die von VPC-Netzwerken im selben Projekt gesendet werden. Alle anderen Anfragen werden mit dem Fehler 403 abgelehnt.

Einstellungen für eingehenden Traffic aufrufen

Console

  1. Rufen Sie die Seite „App Engine-Dienste“ auf.

    Zur Seite „Dienste“

  2. 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 dem gcloud-Tool 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

  1. Rufen Sie die Seite „App Engine-Dienste“ auf.

    Zur Seite „Dienste“

  2. Wählen Sie den Dienst aus, den Sie löschen möchten.

  3. Klicken Sie auf Einstellung für eingehenden Traffic bearbeiten.

  4. 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 dem gcloud-Tool:

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 oder internal-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.

So konfigurieren Sie das Verhalten des ausgehenden Traffics Ihres App Engine-Dienstes:

  1. Fügen Sie das Attribut egress_setting dem Feld vpc_access_connector der Datei app.yaml Ihres Dienstes hinzu:

    vpc_access_connector:
      name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
      egress_setting: EGRESS_SETTING
    

    Ersetzen Sie:

    • PROJECT_ID ist Ihre Cloud-Projekt-ID.
    • REGION 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.
  2. 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 Cloud-Projekts sein, um den Security Scanner 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 Security Scanner – Kurzanleitung.