ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base alla regione selezionata quando crei l'app. Il codice non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare simili ai codici di paesi e province 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 regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
La sicurezza è una funzionalità di base di Google Cloud, ma ci sono ancora passaggi da seguire per proteggere la tua app App Engine e identificare le vulnerabilità.
Utilizza le seguenti funzionalità per assicurarti che la tua app App Engine sia sicura. Per scoprire di più sul modello di sicurezza di Google e sui passaggi disponibili per proteggere i tuoi progetti Google Cloud, consulta la pagina Sicurezza della piattaforma Google Cloud.
Richieste HTTPS
Utilizza le richieste HTTPS per accedere in modo sicuro all'app App Engine. A seconda della configurazione dell'app, hai a disposizione le seguenti opzioni:
- Domini
appspot.com
- Usa il prefisso URL
https
per inviare una richiesta HTTPS adefault
servizio del tuo progetto Google Cloud, ad esempio:
https://PROJECT_ID.REGION_ID.r.appspot.com
Per scegliere come target risorse specifiche nella tua app App Engine, utilizza la sintassi
-dot-
per separare ogni risorsa 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 Come vengono indirizzate le richieste.
- Usa il prefisso URL
- Domini personalizzati
Per inviare richieste HTTPS con il tuo dominio personalizzato, puoi utilizzare il protocollo SSL gestito di cui App Engine esegue il provisioning. Per ulteriori informazioni, consulta Protezione dei domini personalizzati con SSL.
- Gestori di app
Per forzare l'utilizzo del protocollo HTTPS per i gestori della tua app, puoi specificare
secure: always
per ogni gestore inapp.yaml
, ad esempio:handlers: - url: /.* script: auto secure: always redirect_http_response_code: 301
L'utilizzo di
secure: always
reindirizza tutto il traffico HTTP a un URL HTTPS con il sullo stesso percorso,app.yaml
riferimento alla configurazione per ulteriori informazioni.
Controllo degli accessi
In ogni progetto Google Cloud, configura il controllo dell'accesso per determinare chi può accedere ai servizi all'interno del progetto, incluso App Engine. Puoi assegnare ruoli diversi a account diversi per assicurarti che ogni account abbia solo le autorizzazioni necessarie per supportare la tua app. Per maggiori dettagli, consulta la sezione Configurare il controllo accessi.
Firewall di App Engine
L'app App Engine firewall ti consente di controllare l'accesso all'app App Engine tramite una serie regole che possono consentire o negare le richieste da intervalli di indirizzi IP specificati indirizzi IP esterni. Non ti viene addebitato alcun costo per il traffico o la larghezza di banda bloccati dal firewall. Crea un firewall per:
- Consentire solo il traffico proveniente da una rete specifica
- Assicurati che solo un determinato intervallo di indirizzi IP di reti specifiche possa accedere alla tua app. Ad esempio, crea regole per consentire solo l'intervallo di indirizzi IP all'interno della rete privata della tua azienda durante la fase di test dell'app. Puoi quindi creare e modificare le regole firewall per controllare di accesso durante tutto il processo di rilascio, consentendo solo ad alcune alle organizzazioni, all'interno o all'esterno dell'azienda, di accedere alla tua app mentre arriva alla disponibilità pubblica.
- Consentire solo il traffico proveniente da un servizio specifico
- Assicurati che tutto il traffico verso la tua app App Engine venga prima sottoposto a proxy tramite un servizio specifico. Ad esempio, se utilizzi un WAF (web application firewall) di terze parti per eseguire il proxy delle richieste indirizzate alla tua app, puoi creare regole firewall per negare tutte le richieste tranne quelle inoltrate dal WAF.
- Bloccare gli indirizzi IP illeciti
- Sebbene Google Cloud preveda molti meccanismi per prevenire gli attacchi, puoi usa il firewall di App Engine per bloccare il traffico verso la tua app dall'IP indirizzi che presentano intento malevolo o che proteggono la tua app dal rifiuto di attacchi ai servizi e forme simili di abuso. Puoi aggiungere indirizzi IP o a una lista bloccata, in modo che le richieste instradate da questi indirizzi le subnet sono negati prima di raggiungere la tua app App Engine.
Per maggiori dettagli sulla creazione di regole e sulla configurazione del firewall, consulta Controllo dell'accesso alle app con Firewall.
Controlli Ingress
Questa sezione descrive come utilizzare le impostazioni di traffico in entrata per limitare l'accesso di rete a
dell'app di App Engine. A livello di rete, per impostazione predefinita, qualsiasi risorsa
internet sia in grado di raggiungere la tua app App Engine
URL appspot
o presso un dominio personalizzato
configurato in App Engine. Ad esempio, l'URL appspot.com
può avere il seguente formato:SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com
.
Puoi modificare questa impostazione predefinita specificando
un'impostazione diversa per il traffico in entrata. Tutti i percorsi di importazione, incluso l'URL predefinitoappspot.com
, sono soggetti all'impostazione di importazione. L'ingresso è impostato a livello di servizio.
Impostazioni di traffico in entrata disponibili
Sono disponibili le seguenti impostazioni:
Impostazione | Descrizione |
---|---|
Interno |
Livello più restrittivo. Consente le richieste da risorse collegate
reti VPC del progetto, come:
appspot.com .
Le richieste provenienti da altre fonti, tra cui internet, non possono raggiungere i tuoi
nell'URL appspot.com o nei domini personalizzati. Non è supportato il multitenancy, ovvero la presenza di più domini attendibili all'interno dello stesso progetto.
|
Interno e Cloud Load Balancing | Consente richieste dalle seguenti risorse:
appspot.com ignora il bilanciatore del carico delle applicazioni esterno, quindi
impedisce alle richieste esterne di raggiungere
URL appspot.com .
|
Tutti |
Il meno restrittivo. Consente tutte le richieste, incluse quelle direttamente da
Internet all'URL appspot.com .
|
Accesso ai servizi interni
Si applicano le seguenti considerazioni:
Per le richieste da un VPC condiviso, il traffico è considerato interno solo se Viene eseguito il deployment dell'app App Engine nel progetto host del VPC condiviso. Se l'app App Engine viene dispiattata in un progetto di servizio VPC condiviso, solo il traffico proveniente dalle reti di proprietà del progetto dell'app è interno. Tutto il resto del traffico, incluso il traffico da altri VPC condivisi, è esterno.
Quando accedi ai servizi interni, chiamali come faresti normalmente utilizzando i relativi URL pubblici, l'URL
appspot.com
predefinito o un dominio personalizzato configurato in App Engine.Per richieste da istanze VM di Compute Engine o altre risorse in esecuzione all'interno di una rete VPC lo stesso progetto, non sono necessarie ulteriori configurazioni.
Per le richieste provenienti da altri servizi App Engine o da Cloud Run o da funzioni Cloud Run nello stesso progetto, connetti il servizio o la funzione a una rete VPC e instrada tutto il traffico in uscita tramite il connettore, come descritto in Connessione a una rete VPC condivisa.
Le richieste da risorse all'interno di reti VPC nello stesso progetto sono classificate anche se la risorsa da cui provengono ha un indirizzo IP pubblico.
Le richieste provenienti da risorse on-premise connesse alla rete VPC tramite VPN Cloud sono considerate
internal
.
Visualizza le impostazioni di importazione
Console
Vai alla pagina Servizi App Engine.
Individua la colonna Ingress. Per ogni servizio, il valore in questa colonna mostra il traffico in entrata come Tutti (impostazione predefinita), Interno + bilanciamento del carico o Interno.
gcloud
Per visualizzare l'impostazione di traffico in entrata per un servizio utilizzando gcloud CLI:
gcloud app services describe SERVICE
Sostituisci SERVICE con il nome del tuo servizio.
Ad esempio, per visualizzare le impostazioni di traffico in entrata e altre informazioni per esecuzione predefinita del servizio:
gcloud app services describe default
Modificare le impostazioni di traffico in entrata
Console
Vai alla pagina Servizi di App Engine.
Seleziona il servizio da modificare.
Fai clic su Modifica impostazione traffico in entrata.
Seleziona l'impostazione di traffico in entrata che preferisci dal menu e fai clic su Salva.
gcloud
Per aggiornare l'impostazione di traffico in entrata per un servizio utilizzando gcloud CLI:
gcloud app services update SERVICE --ingress=INGRESS
Sostituisci:
- SERVICE: il nome del servizio.
- INGRESS: il controllo in entrata che vuoi applicare. Uno dei valori
all
,internal-only
ointernal-and-cloud-load-balancing
.
Ad esempio:
Per aggiornare il servizio predefinito di un'app App Engine in modo che accetti il traffico solo da Cloud Load Balancing e dalle reti 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 traffico da VPC che si trovano 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 del traffico in uscita per il servizio App Engine.
Per impostazione predefinita, vengono effettuate solo le richieste agli indirizzi IP e ai nomi DNS interni
instradato tramite un connettore di accesso VPC serverless. Puoi
specificare l'impostazione di traffico in uscita per il tuo servizio nel file app.yaml
.
Le impostazioni di uscita non sono compatibili con il servizio di recupero dell'URL. Se non disponi
lo è già, disattiva l'impostazione predefinita Recupero URL
utilizzando le prese e interrompi qualsiasi
uso esplicito dei
urlfetch
.
L'utilizzo della libreria urlfetch
ignora le impostazioni di uscita e le richieste non vengono inoltrate tramite un connettore di accesso VPC serverless.
Per configurare il comportamento 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 il tuo ID progetto Google CloudREGION
con la regione in cui si trova il connettoreCONNECTOR_NAME
con il nome del tuo connettoreEGRESS_SETTING
con uno dei seguenti valori:private-ranges-only
Predefinita. 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 indirizzate alla tua rete VPC. Le richieste sono quindi soggette il firewall, il DNS e le regole di routing della rete VPC. Tieni presente che 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ò generare addebiti.
Esegui il deployment del servizio:
gcloud app deploy
Security Scanner
Web Security Scanner di Google Cloud scopre le vulnerabilità eseguendo la scansione della tua app App Engine, seguendo tutti i link nell'ambito degli URL di partenza e tentando di utilizzare il maggior numero possibile di input utente e gestori di eventi.
Per poter utilizzare lo Scanner di sicurezza, devi essere il proprietario dello progetto Google Cloud. Per ulteriori informazioni sull'assegnazione dei ruoli, consulta la pagina Configurare il controllo accessi.
Puoi eseguire scansioni di sicurezza dalla console Google Cloud per identificare le vulnerabilità di sicurezza nella tua app App Engine. Per informazioni dettagliate sull'esecuzione di Security Scanner, consulta Utilizzare Web Security Scanner.