Panoramica sulla sicurezza delle applicazioni

ID regione

REGION_ID è un codice abbreviato assegnato da Google in base alla regione selezionata al momento della creazione dell'app. Il codice non corrispondono a un paese o a una provincia, anche se potrebbero essere visualizzati alcuni ID regione in modo simile ai codici 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 regione è facoltativo nell'URL.

Scopri di più sugli ID regione.

La sicurezza è una funzionalità fondamentale di Google Cloud, ma devi ancora seguire alcuni passaggi per proteggere l'app di 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 adottare per proteggere i tuoi progetti Google Cloud, 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
  • Utilizza il prefisso URL https per inviare la richiesta HTTPS al servizio default del tuo progetto Google Cloud, ad esempio:
    https://PROJECT_ID.REGION_ID.r.appspot.com
  • Per scegliere come target risorse specifiche nell'app App Engine, utilizza -dot- per separare ogni risorsa che vuoi scegliere come target, per 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.

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.

Controllo degli accessi

In ogni progetto Google Cloud, configura il controllo dell'accesso per determinare che possono 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 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 per accedere alla tua app. Ad esempio, crea regole per consentire solo l'intervallo dalla rete privata aziendale durante il test dell'app durante la fase di sviluppo. 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 inviato tramite proxy attraverso un servizio specifico. Ad esempio, se utilizzi un server web un firewall per le richieste proxy indirizzate alla tua app, puoi Creare regole firewall per rifiutare tutte le richieste tranne quelle inoltrate dal tuo WAF.
Blocca indirizzi IP illeciti
Sebbene Google Cloud abbia molti meccanismi in atto per prevenire gli attacchi, puoi utilizzare il firewall di App Engine per bloccare il traffico verso la tua app da indirizzi IP con intenti dannosi o proteggere la tua app da attacchi di denial of service 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 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 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 l'ingresso. Tutti i percorsi in entrata, incluso quello predefinito appspot.com URL, sono soggetti alle impostazioni di traffico in entrata. Il traffico in entrata è impostato il 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:
Le richieste provenienti da queste origini rimangono nella rete Google, anche se accedono al tuo servizio all'URL appspot.com. Le richieste provenienti da altre fonti, tra cui internet, non possono raggiungere il tuo nell'URL appspot.com o nei domini personalizzati. Là non supporta l'architettura multi-tenancy, ovvero più domini attendibili all'interno dello stesso progetto.
Interno e Cloud Load Balancing Consente richieste dalle seguenti risorse:
  • Risorse consentite dall'impostazione Interna più restrittiva
  • Application Load Balancer esterno
Utilizza l'impostazione Interno e Cloud Load Balancing per accettare le richieste da un bilanciatore del carico delle applicazioni esterno, ma non direttamente da internet. Richieste a l'URL 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 Viene eseguito il deployment dell'app App Engine in un progetto di servizio del VPC condiviso, solo del traffico 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 loro URL pubblici, l'URL appspot.com predefinito o 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 richieste da altri servizi App Engine o da Cloud Run o le funzioni Cloud Run nello stesso progetto, connetti il servizio o la funzione a rete VPC e instradare tutto il traffico in uscita attraverso il connettore, come descritto in Connessione a una VPC condiviso condivisa

  • Le richieste provenienti da risorse all'interno di reti VPC nello stesso progetto sono classificate come interne anche se la risorsa da cui provengono ha un indirizzo IP pubblico.

  • Richieste da risorse on-premise connesse alla rete VPC tramite Le Cloud VPN sono considerate internal.

Visualizza impostazioni di traffico in entrata

Console

  1. Vai alla pagina Servizi di App Engine.

    Vai alla pagina Servizi

  2. Individua la colonna Ingress. Per ogni servizio, il valore in questa colonna indica l'impostazione di ingresso come Tutti (valore predefinito), Interno + bilanciamento del carico o Interno.

gcloud

Per visualizzare l'impostazione di ingresso 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 di traffico in entrata e altre informazioni per esecuzione predefinita del servizio:

gcloud app services describe default

Modifica impostazioni di traffico in entrata

Console

  1. Vai alla pagina Servizi di App Engine.

    Vai alla pagina Servizi

  2. Seleziona il servizio che vuoi modificare.

  3. Fai clic su Modifica impostazione traffico in entrata.

  4. Seleziona l'impostazione di ingresso che ti interessa 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 tra all, internal-only o internal-and-cloud-load-balancing.

Ad esempio:

  • Aggiornare il servizio predefinito di un'app App Engine in modo che accetti il traffico solo da reti Cloud Load Balancing e 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" per accettare solo traffico da VPC reti che si trovano nello stesso progetto:

    gcloud app services update internal-requests --ingress=internal-only

Impostazioni traffico in uscita

Se utilizzi Serverless VPC Access, puoi specificare l'impostazione di 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 di uscita per il servizio nel file app.yaml.

Le impostazioni in uscita non sono compatibili con il servizio di recupero URL. Se non disponi lo hai già fatto, disattivare l'impostazione predefinita Recupero URL e interrompere qualsiasi uso esplicito dei urlfetch libreria. Se utilizzi la libreria urlfetch, le impostazioni relative al traffico in uscita vengono ignorate e le richieste non attraverso un connettore di accesso VPC serverless.

Per configurare il comportamento in uscita del servizio App Engine:

  1. Aggiungi l'attributo egress_setting al campo vpc_access_connector del tuo file app.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 Cloud
    • REGION con la regione in cui si trova il connettore
    • CONNECTOR_NAME con il nome del tuo connettore
    • EGRESS_SETTING con uno dei seguenti:
      • private-ranges-only Predefinito. Richieste solo a RFC 1918 e Indirizzo IP RFC 6598 o nomi DNS interni vengono instradati al VPC in ogni rete. Tutte le altre richieste vengono indirizzate direttamente a internet.
      • all-traffic Tutte le richieste in uscita dal tuo servizio sono instradato verso la tua rete VPC. Le richieste sono quindi soggette il firewall, il DNS e le regole di routing della rete VPC. Tieni presente che instradamento di tutte le richieste in uscita alla rete VPC aumenta la quantità di traffico in uscita gestito Connettore di accesso VPC serverless e prevede addebiti.
  2. Esegui il deployment del servizio:

    gcloud app deploy
    

Security Scanner

Web Security Scanner di Google Cloud le vulnerabilità eseguendo la scansione di Google Cloud, seguendo tutti i link nell'ambito del URL iniziali e il tentativo di eseguire il maggior numero di input e di eventi il più possibile.

Per utilizzare lo scanner di sicurezza, devi essere un proprietario del progetto Google Cloud. Per ulteriori informazioni sull'assegnazione dei ruoli, consulta Configurazione dell'accesso Controllo.

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.