Un firewall determina quale traffico di rete è consentito passare e quale viene rifiutato il traffico. I firewall possono essere applicati al traffico in entrata (in entrata) e in uscita traffico (in uscita) o entrambi. Per App Engine, viene usato solo il firewall si applica al traffico in entrata indirizzato alla tua app o al tuo servizio.
Panoramica
Viene controllato il firewall di App Engine per tutti i tipi richieste alla tua app, tra cui:
- Traffico web regolare indirizzato all'indirizzo
appspot.com
o al dominio personalizzato dell'app. - Richieste provenienti da Cloud Load Balancing.
- Traffico proveniente da origini interne come macchine virtuali (VM) Compute Engine e Cloud Tasks.
Se la tua app è configurata per usare altri servizi di rete o prodotti, potresti dover creare delle regole per controllare il traffico in entrata sia il firewall di App Engine sia le impostazioni firewall o di sicurezza prodotti di big data e machine learning. Questa guida illustra il comportamento generale del firewall di App Engine, e i dettagli su questi casi d'uso speciali.
Regole firewall di App Engine
Puoi configurare le regole firewall di App Engine utilizzando la console Google Cloud, Google Cloud CLI o l'API specificando le regole che consentono o bloccano intervalli IP specificati.
Per impostazione predefinita, qualsiasi richiesta che non corrisponde a una regola può accedere al tuo
dell'app. Se devi bloccare tutte le richieste che non corrispondono a una regola specifica
(escluse le richieste da servizi interni consentite per impostazione predefinita), modifica il
Azione della regola default
su deny
.
Funzionalità firewall
Nell'ambiente standard di App Engine, il firewall di App Engine può consentire
per bypassare il firewall. Ciò significa che se imposti la regola default
su
deny
, le richieste da determinati servizi destinate all'ambiente standard App Engine non
vengono bloccati. Si tratta di tutti i tipi di traffico richiesti dall'app
configurazione o inviati dalla stessa app. Le richieste che aggirano le regole firewall
in questo modo:
- Richieste di riscaldamento
- Job Cloud Scheduler che utilizzano HTTP App Engine (inclusi
Crono di App Engine
- Attività di App Engine in Cloud Tasks (incluse le code di attività di App Engine)
Per le app che utilizzano l'ambiente standard di App Engine e i servizi in bundle con il primo di runtime, le notifiche l'API Mail legacy può anche bypassare il firewall.
Consentire le richieste in arrivo dai tuoi servizi
La tabella seguente elenca gli intervalli IP e il comportamento del firewall di App Engine per e i servizi più comuni. L'intervallo IP che utilizzi dipende dal fatto che le richieste in entrata vengono inviati a una versione eseguita nell'ambiente standard App Engine oppure un ambiente flessibile.
Servizio Intervallo IP per le richieste inviate all'ambiente standard di App Engine Intervallo IP per le richieste inviate all'ambiente flessibile di App Engine Cloud Storage o Blobstore 0.1.0.30/32 Non applicabile Job Cloud Scheduler che utilizzano le attività HTTP e di App Engine di App Engine in Cloud Tasks (incluse le code di attività di App Engine) 0.1.0.2/32, ignora la regola firewall predefinita se impostata su negazione 0.1.0.2/32 Cron di App Engine 0.1.0.1/32 o 0.1.0.2/32 ignora la regola firewall predefinita se impostata su negazione 0.1.0.1/32 o 0.1.0.2/32 Recupero URL 0.1.0.40/32 0.1.0.40/32 Istanze di Compute Engine con l'accesso privato Google abilitato 0.0.0.0/32 0.0.0.0/32 A seconda del caso d'uso, queste istruzioni aggiuntive potrebbero essere applicabili quando configurazione delle regole firewall di App Engine:
- Le richieste da cron job di App Engine appena creati o aggiornati inviate all'ambiente standard o flessibile di App Engine provengono da
0.1.0.2
. Per i cron job creati con versioni precedenti di gcloud (precedenti alla 326.0.0), le richieste cron proverranno da0.1.0.1
. Per scoprire di più su come identificare le richieste dal servizio App Engine Cron, consulta Convalida delle richieste cron. - Se la tua app interagisce con Cloud Load Balancing o è connessa a una rete VPC, consulta la sezione Interazione con altri prodotti o servizi di seguito.
Esempio di standard App Engine
L'app in esecuzione nell'ambiente standard ha due servizi:
frontend_service
ebackend_service
.frontend_service
utilizza Cloud Tasks con HTTP di App Engine per inviare messaggi abackend_service
. Daldefault
una regola firewall consente le richieste di Cloud Tasks anche se è configurata sudeny
, non è necessario creare di una regola firewall per Cloud Tasks.Se invece vuoi limitare l'accesso alla tua app e bloccare esplicitamente Richieste Cloud Tasks, devi creare una regola firewall
deny
per l'intervallo IP0.1.0.2/32
.Esempio di utilizzo dell'ambiente flessibile App Engine
L'app in esecuzione nell'ambiente flessibile ha due servizi:
frontend_service
ebackend_service
e ha un firewall configurato per rifiutare per impostazione predefinita.frontend_service
utilizza Cloud Tasks con HTTP di App Engine per inviare messaggi abackend_service
. Daldefault
una regola firewall nega le richieste Cloud Tasks, devi creare Regola firewallallow
per0.1.0.2/32
.Interazione con altri prodotti o servizi
Cloud Load Balancing
Se utilizzi Cloud Load Balancing e NEG serverless, tieni presente quanto segue:
- Il bilanciatore del carico non interferisce né interagisce con le regole firewall di App Engine. Le regole firewall di App Engine non vengono valutate finché un NEG serverless non indirizza il traffico ad App Engine.
Ti consigliamo di utilizzare i controlli in entrata in modo che la tua app riceva solo le richieste inviate dal bilanciatore del carico. (e il VPC, se lo usi). In caso contrario, gli utenti possono utilizzare URL di App Engine per bypassare il bilanciatore del carico, Google Cloud Armor criteri di sicurezza, certificati SSL e chiavi private che vengono trasmessi tramite il bilanciatore del carico.
Se i controlli in entrata sono impostati per ricevere traffico
internal-and-cloud-load-balancing
, lascia invariata la regola firewall predefinita di App Engine (allow
) e utilizza le regole WAF (Web Application Firewall) di Google Cloud Armor.
Impedire l'accesso ai contenuti memorizzati nella cache
Il firewall di App Engine è protetto da meccanismi che memorizzano nella cache i contenuti, ad esempio proxy web e browser. I contenuti memorizzati nella cache vengono pubblicati pubblicamente dall'URL specifico fino alla scadenza ed è accessibile anche dopo creando nuove regole firewall.
Per informazioni sulla modifica della scadenza predefinita per i contenuti statici o impedire la memorizzazione nella cache di contenuti statici, consulta Scadenza della cache.Per impedire che l'output di contenuti dinamici del codice della tua app venga memorizzato nella cache, usa le intestazioni delle risposte HTTP
Cache-Control
eExpires
. Per ulteriori informazioni intestazioni HTTP, incluso come controllare la memorizzazione nella cache, vedi Evitare la memorizzazione nella cache.Passaggi successivi
Segui le istruzioni in Creazione di Firewall per scopri come configurare le regole firewall di App Engine.