Avviso: nei prossimi mesi, stiamo riorganizzando il sito della documentazione di App Engine per semplificare la ricerca di contenuti e l'allineamento con il resto dei prodotti Google Cloud. Saranno disponibili gli stessi contenuti, ma ora la navigazione corrisponderà al resto dei prodotti Cloud. Se hai feedback o domande durante la navigazione nel sito, fai clic su Invia feedback.

Python 2 non è più supportato dalla community. Ti consigliamo di eseguire la migrazione delle app Python 2 a Python 3.

Creazione delle regole firewall di App Engine

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

In App Engine, puoi creare un firewall con un massimo di 1000 singole regole di priorità che consentono o limitano un intervallo di indirizzi IP e subnet. La tua app risponderà solo alle richieste consentite dal firewall.

Per scoprire come funziona il firewall di App Engine, consulta Informazioni sui firewall.

Prima di iniziare

Prima di creare regole firewall di App Engine per la tua applicazione, devi disporre di uno dei seguenti ruoli IAM di App Engine, che include i privilegi necessari alla creazione o alla modifica delle regole firewall:

  • Amministratore App Engine
  • Editor
  • Proprietario

Creazione di regole firewall

Utilizza uno dei seguenti metodi per creare una regola firewall. Ripeti questi passaggi per ogni regola aggiuntiva:

Console

Utilizza la pagina Regole firewall in Google Cloud Console per creare una regola firewall:

  1. Vai alla pagina Crea una regola firewall in Google Cloud Console:

    Vai alla pagina Crea una regola firewall

  2. Specifica i dettagli della regola firewall:

    1. In Priorità, inserisci un numero intero per specificare l'importanza relativa della regola e definire l'ordine di valutazione della regola.

      I valori validi sono compresi tra 1 e 2147483646. La priorità 1 è la prima regola valutata. La priorità 2147483647 è l'ultima regola valutata ed è riservata per la regola "predefinita".

    2. In Azione in caso di corrispondenza, specifica se consentire o negare l'accesso per le richieste che corrispondono alla regola. Le regole impostate su allow inoltrano la richiesta all'app. Le regole impostate su deny rispondono alle richieste con un errore 403 Forbidden.
    3. In Intervallo IP, definisci l'intervallo di indirizzi IP che si applicano alla regola. L'intervallo di indirizzi IP deve essere definito nella notazione CIDR e può includere subnet mask, nonché supportare sia IPv4 sia IPv6.
    4. Facoltativo: in Descrizione, includi una descrizione della regola che non superi i 100 caratteri.
  3. Fai clic su Salva per creare la regola.
  4. Verifica la regola per assicurarti che la priorità e l'azione fornisca il comportamento previsto:
    1. Fai clic su Verifica indirizzo IP.
    2. Inserisci l'indirizzo IP che vuoi convalidare e fai clic su Test per assicurarti che la regola corrispondente venga valutata correttamente.
gcloud

Esegui i comandi gcloud app firewall-rules seguenti per creare una regola firewall:

  1. Esegui il comando seguente per creare una regola firewall:

    gcloud app firewall-rules create PRIORITY --action ALLOW_OR_DENY --source-range IP_RANGE --description DESCRIPTION
    dove:
    • PRIORITY è un numero intero compreso tra 1 e 2147483646 che definisce l'importanza della regola e l'ordine in cui viene valutata. La priorità 1 è la prima regola valutata. La priorità 2147483647 è l'ultima regola valutata ed è riservata alla regola "predefinita".
    • ALLOW_OR_DENY consente di specificare se consentire o negare l'accesso per le richieste che corrispondono alla regola. I valori validi sono allow o deny. Le regole impostate su allow inoltrano la richiesta all'app. Le regole impostate su deny rispondono alle richieste con un errore 403 Forbidden.
    • IP_RANGE definisce l'intervallo di indirizzi IP che si applicano alla regola. L'intervallo IP deve essere definito nella notazione CIDR, può includere subnet mask e supportare sia IPv4 sia IPv6.
    • DESCRIPTION è una descrizione facoltativa della regola che non supera i 100 caratteri.
  2. Esegui questo comando per testare la regola e assicurarti che la priorità e l'azione fornisca il comportamento previsto:
    gcloud app firewall-rules test-ip IP_ADDRESS
    dove IP_ADDRESS è l'indirizzo IP che vuoi testare rispetto al firewall.
  3. Esegui questo comando per visualizzare un elenco delle regole esistenti:
    gcloud app firewall-rules list
  4. Esegui il comando seguente per eliminare una regola esistente:
    gcloud app firewall-rules delete PRIORITY
    dove PRIORITY è il valore di priorità della regola che vuoi eliminare.
Esempi:
Utilizza gli esempi che seguono per creare il tuo firewall:
  • Aggiungi una regola che consenta un indirizzo IPv6 e una subnet mask, quindi testala per assicurarti che venga valutata prima delle altre regole:

    gcloud app firewall-rules create 123 --source-range fe80::3636:3bff:fecc:8778/128 --action allow
    gcloud app firewall-rules test-ip fe80::3636:3bff:fecc:8778
  • Aggiungi una regola per negare un indirizzo IPv4 e una subnet mask, quindi verifica la regola per assicurarti che venga valutata in modo appropriato:

    gcloud app firewall-rules create 123456 --source-range "74.125.0.0/16" --action deny
    gcloud app firewall-rules test-ip 74.125.0.8
  • Aggiorna e testa la regola predefinita per assicurarti che limiti tutti gli indirizzi IP che non corrispondono ad altre regole:

    gcloud app firewall-rules update default --action deny
    gcloud app firewall-rules test-ip 123.456.7.89
API

Per creare in modo programmatico le regole firewall per la tua app App Engine, puoi utilizzare i metodi apps.firewall.ingressRules nell'API Admin.

Per testare una regola firewall e assicurarti che la priorità e l'azione fornisca il comportamento previsto, puoi utilizzare il metodo apps.firewall.ingressRules.list e specificare l'indirizzo IP che vuoi testare all'interno del parametro matchingAddress.

Informazioni sulle regole firewall di App Engine

Un firewall di App Engine è costituito da un elenco ordinato di regole che possono consentire o negare l'accesso all'app dall'indirizzo o dall'intervallo IP specificato. La regola si applica a tutte le risorse dell'applicazione App Engine.

Priorità delle regole firewall

Le regole firewall sono ordinate in base all'importanza, che definisci come valore numerico nella priorità di ciascuna regola. Devi specificare un valore di priorità univoco per ogni regola, in quanto definisce l'importanza delle altre regole nel firewall. I valori di una regola di priorità di una regola vanno dal valore più importante di 1 fino a quello meno importante al valore 2147483647.

Ogni firewall include una regola default che viene creata automaticamente con la priorità 2147483647 e si applica all'intero intervallo IP dell'app. La regola default viene sempre valutata dopo tutte le altre regole nel firewall e applicata a tutte le richieste in tutti gli indirizzi IP.

Il firewall valuta prima la regola con la priorità più alta. Tutte le regole rimanenti nel firewall vengono valutate in sequenza fino a quando una regola non corrisponde all'intervallo IP della richiesta. Quando viene trovata una regola corrispondente, la connessione viene consentita o rifiutata e tutte le regole rimanenti nel firewall vengono ignorate. Se nessuna delle regole definite manualmente nel firewall corrisponde alla richiesta, viene valutata la regola default.

Ad esempio, se crei una regola con priorità 1, viene sempre valutata per prima. Se una richiesta in entrata corrisponde alla regola con priorità 1, solo quella regola viene valutata e tutte le altre regole nel firewall vengono ignorate, inclusa la regola default.

Il Firewall di esempio riportato di seguito mostra come la priorità di una regola può modificare il comportamento del firewall.

Firewall di esempio

In questo esempio, un'azienda ha configurato un firewall per concedere l'accesso al team tecnico e alla rete aziendale interna alla propria app in fase di sviluppo. Le regole del firewall sono state create con ampi intervalli tra le priorità per consentire la crescita.

Priorità Azione Intervallo IP Descrizione
1000 Nega 192.0.2.1 Nega l'accesso a un utente malintenzionato DoS.
2000 Consenti 198.51.100.2 Consente l'accesso a un tecnico nell'ufficio satellitare.
3000 Nega 198.51.100.0/24 Nega l'accesso a tutti gli edifici non tecnici.
5000 Consenti 203.0.113.0/24 Consente l'accesso alla rete dell'edificio principale.
2147483647 Nega * Azione predefinita

Dopo aver creato il firewall, supponiamo che le seguenti richieste siano indirizzate all'app di esempio e prendi nota della risposta dell'app:

  • La richiesta da 198.51.100.2 contiene una regola con priorità 2000 ed è consentita.
  • La richiesta da 198.51.100.100 corrisponde alla regola con priorità 3000 e viene rifiutata.
  • La richiesta da 203.0.113.54 corrisponde alla regola con priorità 5000 ed è consentita.
  • La richiesta da 45.123.35.242 corrisponde alla regola predefinita e viene rifiutata.

Risolvere le regole in conflitto

Ad esempio, supponiamo che vengano sostituite due delle priorità del firewall dell'azienda. Se le regole per le priorità 2000 e 3000 vengono sostituite, tieni presente il comportamento involontario.

Priorità Azione Intervallo IP Descrizione
1000 Nega 192.0.2.1 Nega l'accesso a un utente malintenzionato DoS.
2000 Nega 198.51.100.0/24 Nega l'accesso a tutti gli edifici non tecnici.
3000 Consenti 198.51.100.2 Consente l'accesso a un tecnico nell'ufficio satellitare.
5000 Consenti 203.0.113.0/24 Consente l'accesso alla rete dell'edificio principale.
2147483647 Nega * Azione predefinita

Il tecnico dell'ufficio satellitare non potrà accedere all'app dell'azienda in quanto la nuova priorità della regola significa che non verrà mai valutata. L'indirizzo IP dell'ingegnere 198.51.100.2 corrisponde alla regola che nega tutti gli altri tecnici nell'intervallo 198.51.100.0/24 prima della regola che consente l'accesso all'indirizzo IP dell'ingegnere.

Per risolvere il problema, devi impostare la priorità della regola che permette all'accesso a 198.51.100.2 di essere superiore alla regola che nega l'accesso per l'intervallo IP 198.51.100.0/24.

Passaggi successivi

Per assicurarti di aver configurato l'app in modo sicuro e di impostare i livelli di accesso appropriati, consulta Sicurezza delle applicazioni e Controllo dell'accesso.