ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base all'area geografica selezionata quando crei l'app. Il codice non corrisponde a un paese o a una provincia, anche se alcuni ID area geografica potrebbero sembrare simili ai codici paese e provincia più utilizzati. 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à principale di Google Cloud, ma devi ancora seguire alcuni passaggi 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 cloud, consulta l'articolo sulla sicurezza di Google Cloud Platform.
Richieste HTTPS
Utilizza le richieste HTTPS per accedere alla tua app App Engine in modo sicuro. A seconda di come la tua app è configurata, hai le seguenti opzioni:
- Domini
appspot.com
- Utilizza il prefisso URL
https
per inviare la richiesta HTTPS al serviziodefault
del 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 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 ciascuna 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 instradate le richieste.
- Utilizza il prefisso 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 l'articolo sulla sicurezza dei domini personalizzati con SSL.
- Gestori app
Per forzare l'utilizzo del protocollo HTTPS per i gestori delle tue app, puoi specificare l'elemento
secure: always
per ogni gestore nell'elementoapp.yaml
, ad esempio:handlers: - url: /.* script: auto secure: always redirect_http_response_code: 301
L'uso di
secure: always
reindirizza tutto il traffico HTTP a un URL HTTPS con lo stesso percorso, consulta il riferimento di configurazione diapp.yaml
per ulteriori informazioni.
Controllo dell'accesso
In ogni progetto Cloud, configura il controllo dell'accesso per determinare chi può accedere ai servizi inclusi nel progetto, incluso App Engine. Puoi assegnare ruoli diversi ad account diversi per assicurarti che ogni account disponga solo delle autorizzazioni necessarie per supportare la tua app. Per maggiori dettagli, consulta la sezione Configurare il controllo dell'accesso.
Firewall App Engine
Il firewall di App Engine ti consente di controllare l'accesso alla tua app App Engine attraverso una serie di regole che possono consentire o rifiutare le richieste dagli intervalli di indirizzi IP specificati. Non ti sarà addebitato alcun costo per il traffico o la larghezza di banda che è bloccato dal firewall. Crea un firewall per:
- Consenti solo il traffico proveniente da una rete specifica
- Assicurati che solo un determinato intervallo di indirizzi IP di reti specifiche possa accedere all'app. Ad esempio, crea regole per consentire solo l'intervallo di indirizzi IP all'interno della rete privata dell'azienda durante la fase di test dell'app. Puoi quindi creare e modificare le regole firewall per controllare l'ambito di accesso durante il processo di rilascio, consentendo solo a determinate organizzazioni, all'interno o all'esterno dell'azienda, di accedere alla tua app man mano che si rende 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 eseguire il proxy delle richieste indirizzate alla tua app, puoi creare regole firewall per rifiutare tutte le richieste ad eccezione di quelle inoltrate dal tuo WAF.
- Blocca indirizzi IP illeciti
- Google Cloud prevede numerosi meccanismi per prevenire gli attacchi, ma puoi utilizzare il firewall di App Engine per bloccare il traffico verso la tua app dagli indirizzi IP che presentano intent dannosi o proteggono la tua app da attacchi di tipo denial of service e forme simili di abusi. Puoi aggiungere indirizzi IP o subnet a una lista bloccata in modo che le richieste indirizzate da questi indirizzi e subnet vengano rifiutate prima che raggiungano la tua app App Engine.
Per maggiori dettagli sulla creazione delle regole e sulla configurazione del firewall, consulta Controllo dell'accesso alle app con i firewall.
Controlli Ingress
Questa sezione descrive come utilizzare le impostazioni di traffico in entrata per limitare l'accesso di rete alla tua app App Engine. A livello di rete, per impostazione predefinita, qualsiasi risorsa su Internet è in grado di raggiungere l'app App Engine dal relativo URL Appspot o da 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 in entrata, incluso l'URL appspot.com
predefinito, sono soggetti all'impostazione in entrata. Ingress è impostato a livello di servizio.
Impostazioni traffico in entrata disponibili
Sono disponibili le seguenti impostazioni:
Impostazione | Descrizione |
---|---|
Interno |
Il più restrittivo. Consente richieste da risorse collegate alle reti VPC del progetto, ad esempio:
appspot.com .
Le richieste provenienti da altre fonti, tra cui Internet, non possono raggiungere il tuo servizio all'URL appspot.com o ai domini personalizzati. Non è disponibile il supporto per la multitenancy, ovvero esistono più domini di attendibilità all'interno dello stesso progetto.
|
Bilanciamento del carico interno e cloud | Consente le richieste dalle seguenti risorse:
appspot.com ignorano il bilanciatore del carico HTTP(S) esterno, quindi questa impostazione impedisce alle richieste esterne di raggiungere l'URL appspot.com .
|
Tutti |
Meno restrittivo. Consente tutte le richieste, incluse le richieste provenienti da Internet direttamente 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 viene eseguito il deployment dell'app App Engine 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, compreso quello proveniente da altri VPC condivisi, è esterno.
Quando accedi ai servizi interni, chiamali come faresti normalmente utilizzando i relativi URL pubblici, ovvero l'URL
appspot.com
predefinito o un dominio personalizzato configurato in App Engine.Per le richieste da istanze VM di Compute Engine o altre risorse in esecuzione all'interno di una rete VPC nello stesso progetto, non sono necessarie ulteriori configurazioni.
Per le richieste da altri servizi App Engine o da Cloud Run o Cloud Functions nello stesso progetto, connetti il servizio o la funzione a una rete VPC e instrada tutto il traffico in uscita attraverso 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 come interne anche se la risorsa da cui hanno origine ha un indirizzo IP pubblico.
Le richieste da risorse on-premise connesse alla rete VPC tramite Cloud VPN sono considerate
internal
.
Visualizza impostazioni traffico in entrata
console
Vai alla pagina Servizi di App Engine.
Individua la colonna In entrata. Per ogni servizio, il valore in questa colonna mostra l'impostazione in entrata come Tutti (impostazione predefinita), Interno + Bilanciamento del carico o Interno.
gcloud
Per visualizzare l'impostazione Ingress per un servizio utilizzando l'interfaccia a riga di comando gcloud:
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 l'esecuzione del servizio predefinito:
gcloud app services describe default
Modifica impostazioni traffico in entrata
console
Vai alla pagina Servizi di App Engine.
Seleziona il servizio che vuoi modificare.
Fai clic su Modifica impostazione traffico in entrata.
Seleziona l'impostazione in entrata che preferisci dal menu e fai clic su Salva.
gcloud
Per aggiornare l'impostazione in entrata per un servizio utilizzando l'interfaccia a riga di comando gcloud:
gcloud app services update SERVICE --ingress=INGRESS
Sostituisci:
- SERVICE: il nome del servizio.
- INGRESS: il controllo in entrata che vuoi applicare. Una tra
all
,internal-only
ointernal-and-cloud-load-balancing
.
Ad esempio:
Per aggiornare il servizio predefinito di un'app App Engine in modo da 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 il traffico solo da reti 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 in uscita per il servizio App Engine.
Per impostazione predefinita, solo le richieste agli indirizzi IP interni e ai nomi DNS interni vengono indirizzate tramite un connettore di accesso VPC serverless. Puoi specificare l'impostazione per il traffico in uscita per il tuo servizio nel file app.yaml
.
Le impostazioni per il traffico in uscita non sono compatibili con il servizio di recupero dell'URL.
L'utilizzo della libreria urlfetch
ignora le impostazioni di traffico in uscita e le richieste non verranno instradate tramite un connettore di accesso VPC serverless.
Per configurare il comportamento in uscita del tuo servizio App Engine:
Aggiungi l'attributo
egress_setting
al campovpc_access_connector
del fileapp.yaml
del tuo 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 CloudREGION
nella regione in cui si trova il connettoreCONNECTOR_NAME
con il nome del connettoreEGRESS_SETTING
con una delle seguenti opzioni:private-ranges-only
Impostazione predefinita. Solo le richieste a RFC 1918 e RFC 6598 intervalli di indirizzi IP o nomi DNS interni vengono instradati alla rete VPC. Tutte le altre richieste vengono indirizzate 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 firewall, DNS e routing della rete VPC. Tieni presente che il routing di tutte le richieste in uscita verso la tua rete VPC aumenta la quantità di traffico in uscita gestita dal connettore di accesso VPC serverless e può richiedere addebiti.
Esegui il deployment del servizio:
gcloud app deploy
Security Scanner
Cloud Security Scanner di Google Cloud rileva le vulnerabilità eseguendo la scansione dell'app App Engine, seguendo tutti i link nell'ambito degli URL di avvio e tentando di applicare il maggior numero possibile di input utente e gestori di eventi.
Per utilizzare lo scanner di sicurezza, devi essere un proprietario del progetto Cloud. Per ulteriori informazioni sull'assegnazione dei ruoli, consulta Configurazione del controllo dell'accesso.
Puoi eseguire scansioni di sicurezza da Google Cloud Console per identificare le vulnerabilità di sicurezza nella tua app App Engine. Per i dettagli sull'esecuzione di Security Scanner, consulta la guida rapida di Security Scanner.