ID regione
Il REGION_ID è un codice abbreviato che Google assegna
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 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 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 che puoi eseguire per proteggere i tuoi progetti Google Cloud , consulta Sicurezza di Google Cloud.
Richieste HTTPS
Utilizza le richieste HTTPS per accedere in modo sicuro alla tua app App Engine. A seconda della configurazione dell'app, hai le seguenti opzioni:
- Domini
appspot.com - Utilizza il prefisso URL
httpsper inviare la richiesta HTTPS al serviziodefaultdel 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.comPer 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 saperne di più 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 forniti da App Engine. Per saperne di più, vedi Protezione dei domini personalizzati con SSL.
Controllo degli accessi
In ogni progetto Google Cloud , configura 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 disponga solo delle autorizzazioni necessarie per supportare la tua app. Per maggiori dettagli, consulta Configurazione del controllo dell'accesso.
Firewall di App Engine
Il firewall di App Engine ti consente di controllare l'accesso alla tua app App Engine tramite un insieme di regole che possono consentire o negare le richieste provenienti dagli intervalli specificati di indirizzi IP. Non ti viene addebitato alcun costo per il traffico o la 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 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 l'ambito dell'accesso durante il processo di rilascio, consentendo solo a determinate organizzazioni, interne o esterne alla tua azienda, di accedere alla tua app man mano che viene resa disponibile pubblicamente.
- Consenti solo il traffico da un servizio specifico
- Assicurati che tutto il traffico verso la tua app App Engine venga prima inviato tramite proxy tramite un servizio specifico. Ad esempio, se utilizzi un web application firewall (WAF) di terze parti per fare da proxy alle richieste indirizzate alla tua app, puoi creare regole firewall per negare tutte le richieste, tranne quelle inoltrate dal WAF.
- Bloccare indirizzi IP abusivi
- Sebbene Google Cloud disponga di molti meccanismi per prevenire gli attacchi, puoi utilizzare il firewall di App Engine per bloccare il traffico verso la tua app proveniente da indirizzi IP che presentano intenti dannosi o proteggere la tua app da attacchi di negazione del servizio e forme simili di abuso. Puoi aggiungere indirizzi IP o subnet a una denylist, in modo che le richieste instradate da questi indirizzi e subnet vengano negate prima di raggiungere la tua app App Engine.
Per informazioni dettagliate sulla creazione di regole e sulla configurazione del firewall, consulta Controllare l'accesso alle app con i firewall.
Controlli Ingress
Questa sezione descrive come utilizzare le impostazioni di ingresso per limitare l'accesso alla rete alla tua app App Engine. A livello di rete, per impostazione predefinita, qualsiasi risorsa su internet può raggiungere la tua app App Engine sul suo URL appspot o su 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 l'ingresso. Tutti i percorsi di ingresso, incluso l'URL appspot.com predefinito, sono soggetti all'impostazione di ingresso. L'ingresso è impostato a livello di servizio.
Impostazioni traffico in entrata disponibili
Sono disponibili le seguenti impostazioni:
| Impostazione | Descrizione |
|---|---|
| Interno |
Livello massimo di restrizioni. Consente le richieste dalle risorse collegate alle
reti VPC del progetto, ad esempio:
appspot.com.
Le richieste provenienti da altre origini, inclusa internet, non possono raggiungere il tuo
servizio all'URL appspot.com o ai domini personalizzati. Non
è supportato il multitenancy, ovvero più domini di attendibilità
all'interno dello stesso progetto.
|
| Bilanciamento del carico interno e Cloud Load Balancing | Consente le richieste dalle seguenti risorse:
appspot.com bypassano il bilanciatore del carico delle applicazioni esterno, quindi questa impostazione impedisce alle richieste esterne di raggiungere l'URL appspot.com.
|
| Tutti |
Livello minimo di restrizioni. Consente tutte le richieste, incluse quelle provenienti direttamente da
internet all'URL appspot.com.
|
Accesso ai servizi interni
Si applicano le seguenti considerazioni:
Per le richieste provenienti da un VPC condiviso, il traffico è considerato interno solo se l'app App Engine viene implementata nel progetto host VPC condiviso. Se l'app App Engine viene implementata 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 proveniente da altri VPC condivisi, è esterno.
Quando accedi ai servizi interni, chiamali come faresti normalmente utilizzando i loro URL pubblici, ovvero l'URL
appspot.compredefinito o un dominio personalizzato configurato in App Engine.Per le richieste provenienti da istanze VM di Compute Engine o altre risorse in esecuzione all'interno di una rete VPC nello stesso progetto, non è necessaria alcuna ulteriore configurazione.
Per le richieste provenienti da altri servizi App Engine o da Cloud Run o Cloud Run Functions nello stesso progetto, collega 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 VPC condiviso condivisa.
Le richieste provenienti da risorse all'interno di reti VPC nello stesso progetto vengono classificate come interne anche se la risorsa da cui provengono ha un indirizzo IP pubblico.
Le richieste provenienti da risorse on-premise connesse alla rete VPC tramite Cloud VPN sono considerate
internal.
Visualizzare le impostazioni del traffico in entrata
Console
Vai alla pagina Servizi App Engine.
Individua la colonna Ingresso. Per ogni servizio, il valore in questa colonna mostra l'impostazione di ingresso come Tutti (impostazione predefinita), Interno + Bilanciamento del carico o Interno.
gcloud
Per visualizzare l'impostazione di ingresso per un servizio utilizzando gcloud CLI:
gcloud app services describe SERVICE
Sostituisci SERVICE con il nome del 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 le impostazioni del traffico in entrata
Console
Vai alla pagina Servizi App Engine.
Seleziona il servizio che vuoi modificare.
Fai clic su Modifica impostazione ingresso.
Seleziona l'impostazione di ingresso che preferisci dal menu e fai clic su Salva.
gcloud
Per aggiornare l'impostazione 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-onlyointernal-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 che si trovano nello stesso progetto:
gcloud app services update default --ingress=internal-and-cloud-load-balancing
Per aggiornare un servizio denominato "internal-requests" in modo che accetti il traffico solo dalle 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 uscita per il tuo servizio App Engine.
Per impostazione predefinita, solo le richieste agli indirizzi IP interni e ai nomi DNS interni vengono instradate tramite un connettore di accesso VPC serverless. Puoi specificare l'impostazione del traffico in uscita per il tuo servizio nel file app.yaml.
Le impostazioni di uscita non sono compatibili con il servizio URL Fetch. Se non l'hai
ancora fatto,
disattiva il recupero URL predefinito
e interrompi qualsiasi utilizzo esplicito della
libreria
urlfetch. L'utilizzo della libreria urlfetch ignora le impostazioni del traffico in uscita e le richieste non vengono instradate tramite un connettore di accesso VPC serverless.
Per configurare il comportamento di uscita del servizio App Engine:
Aggiungi l'attributo
egress_settingal campovpc_access_connectordel fileapp.yamldel tuo servizio:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME egress_setting: EGRESS_SETTING
Sostituisci:
PROJECT_IDcon l'ID progetto Google CloudREGIONcon la regione in cui si trova il connettoreCONNECTOR_NAMEcon il nome del connettoreEGRESS_SETTINGcon uno dei seguenti elementi:private-ranges-onlyPredefinita. Solo le richieste agli intervalli di indirizzi IP RFC 1918 e RFC 6598 o ai nomi DNS interni vengono instradate alla tua rete VPC. Tutte le altre richieste vengono indirizzate direttamente a internet.all-trafficTutte le richieste in uscita dal servizio vengono instradate alla rete VPC. Le richieste sono quindi soggette alle regole firewall, DNS e di routing della tua rete VPC. Tieni presente che il routing di tutte le richieste in uscita alla tua rete VPC aumenta la quantità di traffico in uscita gestito dal connettore di accesso VPC serverless e può comportare addebiti.
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 di partenza e tentando di attivare il maggior numero possibile di input utente e gestori di eventi.
Per utilizzare lo scanner di sicurezza, devi essere proprietario del progettoGoogle Cloud . Per ulteriori informazioni sull'assegnazione dei ruoli, consulta la pagina Configurazione del controllo dell'accesso.
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 la sezione Utilizzo di Web Security Scanner.