In App Engine, puoi creare un firewall con fino a 1000 regole individuali con priorità che consentono o limitano un intervallo di indirizzi IP e sottoreti. L'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 poter creare regole firewall di App Engine per la tua app, devi avere uno dei seguenti ruoli IAM di App Engine, che includono i privilegi necessari per creare o modificare le regole firewall:
- App Engine Admin
- Editor
- Proprietario
Creazione delle regole firewall in corso...
Utilizza uno dei seguenti metodi per creare una regola firewall. Ripeti per ogni regola aggiuntiva:
Utilizza la pagina Regole firewall nella console Google Cloud per creare una regola firewall:
-
Vai alla pagina Crea una regola firewall nella console Google Cloud:
-
Specifica i dettagli della regola firewall:
-
In Priorità, inserisci un numero intero per specificare l'importanza relativa della regola e definire l'ordine in cui viene valutata.
I valori validi sono compresi tra
1
e2147483646
. La priorità1
è la prima regola valutata. Priorità2147483647
è l'ultima regola valutata ed è riservati per la regola "default". -
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 suallow
rispondono alle richieste con un errore403 Forbidden
. - In Intervallo IP, definisci l'intervallo di indirizzi IP applicabili alla regola. L'intervallo di indirizzi IP deve essere definito in notazione CIDR, può includere subnet mask e supportare sia IPv4 che IPv6.
- (Facoltativo) In Descrizione, includi una descrizione della regola che non superi i 100 caratteri.
-
In Priorità, inserisci un numero intero per specificare l'importanza relativa della regola e definire l'ordine in cui viene valutata.
- Fai clic su Salva per creare la regola.
-
Testa la regola per assicurarti che la priorità e l'azione forniscano
comportamento previsto:
- Fai clic su Verifica indirizzo IP.
- Inserisci l'indirizzo IP da convalidare e poi fai clic su Test per assicurarti che la regola corrispondente venga valutata correttamente.
Esegui i seguenti comandi gcloud
app firewall-rules
per creare una regola firewall:
-
Esegui il comando seguente per creare una regola firewall:
where:gcloud app firewall-rules create PRIORITY --action ALLOW_OR_DENY --source-range IP_RANGE --description DESCRIPTION
-
PRIORITY è un numero intero compreso tra
1
e2147483646
che definisce l'importanza della regola e l'ordine in cui viene valutata. Priorità1
è la prima regola valutata. La priorità2147483647
è l'ultima regola valutata ed è riservata alla regola "default". -
ALLOW_OR_DENY specifica se consentire o negare l'accesso
per le richieste che soddisfano la regola. I valori validi sono
allow
odeny
. Regole impostate suallow
inoltrano la richiesta all'app. Le regole impostate sudeny
rispondono alle richieste con un errore403 Forbidden
. - IP_RANGE definisce l'intervallo di indirizzi IP applicabili alla regola. L'intervallo IP deve essere definito con la notazione CIDR, può includere subnet mask e supportare sia IPv4 che IPv6.
- DESCRIPTION è una descrizione facoltativa della regola che non deve superare i 100 caratteri.
-
PRIORITY è un numero intero compreso tra
-
Esegui il seguente comando per testare la regola e assicurarti che la priorità e l'azione forniscano il comportamento previsto:
dove IP_ADDRESS è l'indirizzo IP che vuoi testare contro il firewall.gcloud app firewall-rules test-ip IP_ADDRESS
-
Esegui questo comando per visualizzare un elenco delle regole esistenti:
gcloud app firewall-rules list
-
Esegui questo comando per eliminare una regola esistente:
dove PRIORITY è il valore di priorità della regola da eliminare.gcloud app firewall-rules delete PRIORITY
- Esempi:
-
Utilizza i seguenti esempi per creare il tuo firewall:
-
Aggiungere 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 testa la regola per assicurarti che venga valutata correttamente:
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 poi testa la regola predefinita per assicurarti che limita tutti gli indirizzi IP che non corrispondono a nessun'altra regola:
gcloud app firewall-rules update default --action deny gcloud app firewall-rules test-ip 123.456.7.89
-
Per creare in modo programmatico le regole firewall per App Engine
puoi utilizzare la
apps.firewall.ingressRules
nella
l'API Admin.
Per testare una regola del firewall e assicurarti che la priorità e l'azione forniscano il comportamento previsto, puoi utilizzare il metodo
apps.firewall.ingressRules.list
e specificare
l'indirizzo IP che vuoi testare nel
parammetro 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 alla tua app dall'indirizzo IP 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 per importanza, che definisci come un numero
valore nella priorità di ciascuna regola. Devi specificare un valore di priorità univoco per ogni regola, in quanto definisce l'importanza rispetto alle altre regole del firewall. I valori della scala di priorità di una regola vanno dal valore più importante di 1
a quello meno importante di 2147483647
.
Ogni firewall include una regola default
creata automaticamente con
2147483647
e si applica all'intero intervallo IP della tua app.
La regola default
viene sempre valutata dopo tutte le altre regole
nel firewall e applicate a tutte le richieste in tutti gli indirizzi IP.
Il firewall valuta prima la regola con la priorità più alta.
Tutte le altre regole nel firewall vengono valutate in sequenza fino a quando
corrisponda all'intervallo IP della richiesta. Quando viene trovata una regola di corrispondenza,
connessione sia consentita o negata e tutte le altre regole del
vengono ignorati. 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
, questa viene sempre valutata
per prima cosa. Se una richiesta in arrivo corrisponde alla regola con priorità 1
, viene valutata solo quella
regola e tutte le altre regole del 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 team di tecnici e rete aziendale interna all'app in fase di sviluppo. La Le regole firewall sono state create con ampi spazi vuoti tra ogni priorità per consentire per favorire la crescita.
Priorità | Azione | Intervallo IP | Descrizione |
---|---|---|---|
1000 | Rifiuta | 192.0.2.1 | Nega l'accesso a un malintenzionato DoS. |
2000 | Consenti | 198.51.100.2 | Consente l'accesso a un tecnico nell'ufficio satellite. |
3000 | Rifiuta | 198.51.100.0/24 | Nega l'accesso a tutti gli edifici non progettati per l'ingegneria. |
5000 | Consenti | 203.0.113.0/24 | Consente l'accesso alla rete dell'edificio principale. |
2147483647 | Rifiuta | * | Azione predefinita |
Dopo aver creato il firewall, ipotizza che le seguenti richieste siano indirizzate all'app di esempio e prendi nota della risposta dell'app:
- La richiesta da 198.51.100.2 corrisponde alla 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.
Risoluzione di regole in conflitto
Ad esempio, supponiamo che due delle priorità del firewall dell'azienda siano scambiato. Se le regole per le priorità 2000 e 3000 vengono scambiate, nota il comportamento indesiderato.
Priorità | Azione | Intervallo IP | Descrizione |
---|---|---|---|
1000 | Rifiuta | 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 progettati per l'ingegneria. |
3000 | Consenti | 198.51.100.2 | Consente l'accesso a un ingegnere nell'ufficio satellitare. |
5000 | Consenti | 203.0.113.0/24 | Consente l'accesso alla rete dell'edificio principale. |
2147483647 | Rifiuta | * | Azione predefinita |
L'ingegnere dell'ufficio satellite non potrà accedere all'app dell'azienda perché la nuova priorità della regola ne impedisce la valutazione. L'ingegnere
L'indirizzo IP 198.51.100.2
corrisponde alla regola che nega tutti gli utenti che non sono ingegneri nel
198.51.100.0/24
prima della regola che consente l'accesso
Indirizzo IP.
Per risolvere il problema, devi impostare la priorità della regola che consente l'accesso a
Il valore di 198.51.100.2
deve essere superiore alla regola che nega l'accesso per l'intervallo IP
198.51.100.0/24
.
Passaggi successivi
Per assicurarti di aver configurato in modo sicuro la tua app e impostato i livelli di accesso appropriati, consulta la sezione Sicurezza delle applicazioni e Controllo dell'accesso.