ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base
all'area geografica selezionata al momento della creazione dell'app. Il codice non
corrisponde a un paese o a una provincia, anche se alcuni ID di area geografica potrebbero essere
simili ai codici di paese e provincia di uso comune. Per le app create dopo
febbraio 2020, REGION_ID.r
è incluso negli
URL di App Engine. Per le app esistenti create prima di questa data, l'ID area geografica è facoltativo nell'URL.
Scopri di più sugli ID dell'area geografica.
La sicurezza è una funzionalità fondamentale di Google Cloud, ma ci sono ancora misure da adottare per proteggere l'app App Engine e identificare le vulnerabilità.
Usa le seguenti funzionalità per garantire che l'app App Engine sia sicura. Per ulteriori informazioni sul modello di sicurezza di Google e sui passaggi disponibili che puoi adottare per proteggere i tuoi progetti Cloud, consulta Sicurezza di Google Cloud Platform.
Richieste HTTPS
Usa le richieste HTTPS per accedere alla tua app App Engine in sicurezza. A seconda della configurazione della tua app, puoi scegliere tra le seguenti opzioni:
- Domini
appspot.com
- Utilizza il prefisso dell'URL
https
per inviare una richiesta HTTPS al serviziodefault
del tuo progetto Cloud, ad esempio:
https://PROJECT_ID.REGION_ID.r.appspot.com
Per scegliere come target risorse specifiche nell'app App Engine, utilizza la sintassi
-dot-
per separare le risorse che vuoi scegliere come target, ad esempio:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
Per convertire un URL HTTP in un URL HTTPS, sostituisci i punti tra ogni risorsa con
-dot-
, ad esempio:
http://SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com
https://SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com
Per ulteriori informazioni sugli URL HTTPS e sulle risorse di targeting, consulta Modalità di routing delle richieste.
- Utilizza il prefisso dell'URL
- Domini personalizzati
Per inviare richieste HTTPS con il tuo dominio personalizzato, puoi utilizzare i certificati SSL gestiti di cui è stato eseguito il provisioning da App Engine. Per ulteriori informazioni, consulta Protezione dei domini personalizzati con SSL.
- Gestori delle app
Per forzare HTTPS per i gestori dell'app, puoi specificare l'elemento
secure: always
per ogni gestore inapp.yaml
, ad esempio:handlers: - url: /.* script: auto secure: always redirect_http_response_code: 301
Se utilizzi
secure: always
, tutto il traffico HTTP viene reindirizzato a un URL HTTPS con lo stesso percorso. Per ulteriori informazioni, consulta la guida alla configurazione diapp.yaml
.
Controllo dell'accesso
In ciascun progetto Cloud, configura il controllo degli accessi per determinare chi può accedere ai servizi all'interno del progetto, incluso App Engine. Puoi assegnare diversi ruoli a diversi account per garantire che ogni account disponga solo delle autorizzazioni necessarie per supportare la tua app. Per maggiori dettagli, consulta la pagina Configurare il controllo degli accessi .
Firewall App Engine
Il firewall App Engine consente di controllare l'accesso all'app App Engine mediante una serie di regole che possono consentire o negare le richieste provenienti dagli intervalli IP specificati. Non ti viene addebitato alcun costo per traffico o larghezza di banda bloccati dal firewall. Crea un firewall per:
- Consenti solo il traffico proveniente da una rete specifica
- Assicurati che solo un determinato intervallo di indirizzi IP provenienti da reti specifiche possa accedere alla tua app. Ad esempio, crea regole per consentire solo l'intervallo di indirizzi IP interni alla rete privata aziendale durante la fase di test dell'app. Puoi quindi creare e modificare le regole firewall per controllare l'ambito di accesso durante l'intera procedura di rilascio, consentendo solo a determinate organizzazioni, all'interno o all'esterno dell'organizzazione, di accedere all'app mentre diventa disponibile al pubblico.
- Consenti solo il traffico proveniente da un servizio specifico
- Assicurati che tutto il traffico verso la tua app App Engine venga prima inviato al proxy tramite un servizio specifico. Ad esempio, se utilizzi un Web Application Firewall (WAF) di terze parti per le richieste proxy indirizzate alla tua applicazione, puoi creare regole firewall per rifiutare tutte le richieste ad eccezione di quelle inoltrate dal tuo WAF.
- Bloccare indirizzi IP offensivi
- Google Cloud dispone di molti meccanismi per prevenire attacchi, ma puoi utilizzare il firewall di App Engine per bloccare il traffico verso la tua app da indirizzi IP che presentano un intento dannoso o protegge la tua app da attacchi di tipo"denial of service"e simili. Puoi aggiungere indirizzi IP o subnet a una lista bloccata, in modo che le richieste instradate da tali indirizzi e subnet vengano rifiutate prima di raggiungere l'app App Engine.
Per maggiori dettagli sulla creazione di regole e la configurazione del firewall, consulta Controllo dell'accesso alle app con i firewall.
Controlli Ingress
Per impostazione predefinita, la tua app App Engine riceve tutte le richieste HTTP inviate al relativo URL AppSpot o a un dominio personalizzato configurato per la tua app.
Puoi utilizzare i controlli del traffico in entrata della rete per limitare il traffico in modo che la tua app riceva solo richieste HTTP da origini specifiche:
Tutte: imposta come predefinite. La tua app riceverà tutto il traffico, incluse le richieste dirette inviate da Internet.
Interno e Cloud Load Balancing: la tua app riceverà solo le richieste instradate tramite Cloud Load Balancing o inviate da reti VPC nello stesso progetto (inclusi connettori VPC di accesso serverless o VPC condivisi se li utilizzi). Tutte le altre richieste vengono rifiutate con un errore
403
.Solo a uso interno: la tua app riceverà solo le richieste inviate dalle reti VPC nello stesso progetto. Tutte le altre richieste vengono rifiutate con un errore
403
.
Visualizza impostazioni traffico in entrata
Console
Vai alla pagina dei servizi App Engine.
Individua la colonna Ingress. Per ogni servizio, il valore in questa colonna mostra l'impostazione di traffico in entrata come Tutte, Interna + Bilanciamento del carico o Interna.
gcloud
Per visualizzare l'impostazione di traffico in entrata per un servizio utilizzando l'interfaccia a riga di comando gcloud:
gcloud app services describe SERVICE
Sostituisci SERVICE con il nome del servizio.
Ad esempio, per visualizzare le impostazioni del traffico in entrata e altre informazioni per l'esecuzione del servizio predefinito:
gcloud app services describe default
Modifica impostazioni traffico in entrata
Console
Vai alla pagina dei servizi App Engine.
Seleziona il servizio che vuoi modificare.
Fai clic su Modifica impostazioni traffico in entrata.
Seleziona l'impostazione di traffico in entrata dal menu e fai clic su Salva.
gcloud
Per aggiornare l'impostazione di traffico in entrata per un servizio utilizzando l'interfaccia a riga di comando gcloud:
gcloud app services update SERVICE --ingress=INGRESS
Sostituisci:
- SERVICE: nome del servizio.
- INGRESS: controllo in entrata da applicare. Uno tra
all
,internal-only
ointernal-and-cloud-load-balancing
.
Ad esempio:
Per aggiornare il servizio predefinito di un'app di App Engine e accettare il traffico solo da reti Cloud Load Balancing e VPC nello stesso progetto:
gcloud app services update default --ingress=internal-and-cloud-load-balancing
Per aggiornare un servizio denominato "internal-requests" per accettare solo il traffico proveniente da reti VPC nello stesso progetto:
gcloud app services update internal-requests --ingress=internal-only
Impostazioni traffico in uscita
Se utilizzi l'accesso VPC serverless, puoi specificare l'impostazione di traffico in uscita per il servizio App Engine.
Per impostazione predefinita, le richieste a indirizzi IP interni e nomi DNS interni
vengono instradate tramite un connettore di accesso VPC serverless. Puoi specificare l'impostazione di traffico in uscita per il tuo servizio nel file app.yaml
.
Per configurare il comportamento del traffico in uscita del servizio App Engine:
Aggiungi l'attributo
egress_setting
al campovpc_access_connector
del fileapp.yaml
del servizio:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME egress_setting: EGRESS_SETTING
Sostituisci:
PROJECT_ID
con l'ID del tuo progetto CloudREGION
con l'area geografica in cui si trova il connettoreCONNECTOR_NAME
con il nome del connettoreEGRESS_SETTING
con uno dei seguenti elementi:private-ranges-only
Valore predefinito. Solo le richieste agli intervalli di indirizzi IP RFC 1918 e RFC 6598 o ai nomi DNS interni vengono instradate alla rete VPC. Tutte le altre richieste vengono instradate direttamente a Internet.all-traffic
Tutte le richieste in uscita dal tuo servizio vengono instradate alla tua rete VPC. Le richieste sono quindi soggette alle regole del firewall, DNS e di routing della tua rete VPC. Il routing di tutte le richieste in uscita alla rete VPC aumenta la quantità di traffico in uscita gestita dal connettore di accesso VPC serverless e può sostenere costi.
Esegui il deployment del servizio:
gcloud app deploy
Security Scanner
Google Cloud Web Security Scanner rileva le vulnerabilità eseguendo la scansione dell'app App Engine, seguendo tutti i link nell'ambito degli URL iniziali e cercando di esercitare il maggior numero possibile di input utente e gestori di eventi.
Per poter utilizzare lo scanner di sicurezza, devi essere un proprietario del progetto Cloud. Per ulteriori informazioni sull'assegnazione dei ruoli, consulta la pagina relativa alla configurazione del controllo degli accessi.
Puoi eseguire scansioni di sicurezza da Google Cloud Console per identificare le vulnerabilità di sicurezza nell'app App Engine. Per maggiori dettagli sull'esecuzione di Security Scanner, consulta la guida rapida di Security Scanner.