Panoramica della sicurezza di Cloud Service Mesh
La sicurezza di Cloud Service Mesh con le API Istio ti aiuta a mitigare le minacce interne e a ridurre il rischio di una violazione dei dati garantendo che tutte le comunicazioni tra i carichi di lavoro siano criptate, autenticate reciprocamente e autorizzate.
Tradizionalmente, la microsegmentazione che utilizza regole basate su IP è stata utilizzata per mitigare i rischi legati agli addetti ai lavori. Tuttavia, l'adozione di container, servizi condivisi e ambienti di produzione distribuiti su più cloud rende questo approccio più difficile da configurare e ancora più difficile da gestire.
Con Cloud Service Mesh, puoi configurare un livello di sicurezza di rete sensibile al contesto del servizio e sensibile al contesto della richiesta indipendente dalla sicurezza della rete sottostante. Per questo motivo, Cloud Service Mesh ti consente di adottare una strategia di difesa in profondità congrua con i principi di sicurezza Zero Trust. Ti consente di ottenere questa postura tramite criteri dichiarativi e senza modificare il codice dell'applicazione.
mutual TLS
Cloud Service Mesh utilizza TLS reciproca (mTLS) per l'autenticazione dei peer. L'autenticazione si riferisce all'identità: di chi è questo servizio? Chi è questo utente finale? Posso fidarmi che sono chi dicono di essere?
mTLS consente ai workload di verificare le reciproche identità e di autenticarsi tra loro. Potresti conoscere il TLS semplice per il suo utilizzo in HTTPS per consentire ai browser di considerare attendibili i server web e di criptare i dati scambiati. Quando viene utilizzato TLS semplice, il client stabilisce che il server può essere considerato attendibile convalidandone il certificato. mTLS è un'implementazione di TLS in cui sia il client sia il server si presentano reciprocamente i certificati e verificano le rispettive identità.
mTLS è il mezzo con cui Cloud Service Mesh implementa sia l'autenticazione sia la crittografia tra i servizi.
In Cloud Service Mesh, mTLS automatico è abilitato per impostazione predefinita. Con mTLS automatico, un proxy sidecar client rileva automaticamente se il server ha un sidecar. Il sidecar client invia mTLS ai workload con sidecar e testo normale ai workload senza sidecar. Tieni presente, tuttavia, che i servizi accettano sia il traffico in testo normale sia il traffico mTLS. Per proteggere il tuo mesh di servizi, ti consigliamo di eseguire la migrazione dei servizi in modo che accettino solo il traffico mTLS.
Per ulteriori informazioni sull'applicazione forzata solo di mTLS, consulta Cloud Service Mesh tramite esempi: mTLS.
Vantaggi per la sicurezza
Cloud Service Mesh offre i seguenti vantaggi in termini di sicurezza:
Mitiga il rischio di attacchi di replay o di furto d'identità che utilizzano le credenziali rubate. Cloud Service Mesh si basa su certificati mTLS per autenticare i peer, anziché su token bearer come i token web JSON (JWT). Poiché i certificati mTLS sono associati al canale TLS, non è possibile per un'entità all'interno del tuo ambiente di produzione rubare l'identità di un'altra entità riproducendo il token di autenticazione senza accedere alle chiavi private.
Garantisce la crittografia dei dati in transito. L'utilizzo di mTLS per l'autenticazione garantisce inoltre che tutte le comunicazioni TCP siano criptate in transito.
Garantisce che solo i client autorizzati possano accedere a un servizio con dati sensibili. Solo i client autorizzati possono accedere a un servizio con dati sensibili, indipendentemente dalla posizione di rete del client e dalle credenziali a livello di applicazione. Puoi specificare che solo i client con identità di servizio autorizzate o negli spazi dei nomi Kubernetes autorizzati possono accedere a un servizio. Puoi anche utilizzare i criteri di accesso basati su IP per concedere l'accesso ai client di cui è stato eseguito il deployment al di fuori del mesh.
Riduce il rischio di violazione dei dati utente all'interno della rete di produzione. Puoi assicurarti che gli addetti ai lavori possano accedere ai dati sensibili solo tramite client autorizzati. Inoltre, puoi assicurarti che determinati client possano accedere ai dati utente solo se possono presentare un token utente valido e di breve durata. In questo modo si riduce il rischio che la compromissione di una singola credenziale del cliente consenta a un malintenzionato di accedere a tutti i dati utente.
Identifica i client che hanno eseguito l'accesso a un servizio con dati sensibili. La registrazione degli accessi di Cloud Service Mesh acquisisce l'identità mTLS del client oltre all'indirizzo IP. In questo modo, puoi capire quale carico di lavoro ha avuto accesso a un servizio anche se è temporaneo e di cui è stato eseguito il deployment in modo dinamico e in un cluster o una rete Virtual Private Cloud (VPC) diversa.
Funzionalità
Questa sezione descrive le funzionalità fornite da Cloud Service Mesh per realizzare i suoi vantaggi in termini di sicurezza.
Rotazione automatica di certificati e chiavi
L'utilizzo di mTLS in base alle identità di servizio consente di criptare tutte le comunicazioni TCP e fornisce una credenziale non riproducibile più sicura per il controllo dell'accesso. Una delle principali sfide dell'utilizzo di mTLS su larga scala è la gestione delle chiavi e dei certificati per tutti i workload target. Cloud Service Mesh si occupa di eseguire la rotazione delle chiavi e dei certificati mTLS per i carichi di lavoro del mesh senza interrompere le comunicazioni. È possibile configurare intervalli di aggiornamento dei certificati più brevi per ridurre i rischi.
L'autorità di certificazione Cloud Service Mesh
Cloud Service Mesh include un'autorità di certificazione privata multiregionale gestita, Cloud Service Mesh CA, per l'emissione di certificati per mTLS. L'autorità di certificazione Cloud Service Mesh è un servizio altamente affidabile e scalabile ottimizzato per i carichi di lavoro con scalabilità dinamica su una piattaforma cloud. Con l'autorità di certificazione Cloud Service Mesh, Google gestisce la sicurezza e la disponibilità del backend dell'autorità di certificazione. L'autorità di certificazione Cloud Service Mesh ti consente di fare affidamento su un'unica radice di attendibilità tra i cluster. Quando utilizzi l'autorità di certificazione Cloud Service Mesh, puoi fare affidamento sui pool di identità dei carichi di lavoro per fornire un isolamento a livello granulare. Per impostazione predefinita, l'autenticazione non riesce se il client e il server non si trovano nello stesso pool di identità per i carichi di lavoro.
I certificati dell'autorità di certificazione Cloud Service Mesh includono i seguenti dati sui servizi della tua applicazione:
- L'ID progetto Google Cloud
- Lo spazio dei nomi GKE
- Il nome dell'account di servizio GKE
Certificate Authority Service
In alternativa all'autorità di certificazione Cloud Service Mesh, puoi configurare Cloud Service Mesh per utilizzare Certificate Authority Service, che è adatto per i seguenti casi d'uso:
- Se hai bisogno di autorità di certificazione diverse per firmare i certificati dei carichi di lavoro su cluster diversi.
- Se devi eseguire il backup delle chiavi di firma in un HSM gestito.
- Se operi in un settore altamente regolamentato e sei soggetto a conformità.
- Se vuoi collegare la CA Cloud Service Mesh a un certificato radice aziendale personalizzato per firmare i certificati dei carichi di lavoro.
Il costo dell'autorità di certificazione Cloud Service Mesh è incluso nei prezzi di Cloud Service Mesh. Il costo di CA Service non è incluso nel prezzo base di Cloud Service Mesh e viene addebitato separatamente. Inoltre, il servizio CA è dotato di un SLA esplicito, mentre l'autorità di certificazione Cloud Service Mesh no.
Per questa integrazione, a tutti i carichi di lavoro in Cloud Service Mesh vengono concessi due ruoli IAM:
Criteri di controllo dell'accesso sensibile all'identità (firewall)
Con Cloud Service Mesh, puoi configurare criteri di sicurezza di rete basati sull'identità mTLS rispetto all'indirizzo IP del peer. In questo modo, puoi creare criteri indipendenti dalla posizione di rete del carico di lavoro. Sono supportate solo le comunicazioni tra cluster nello stesso progetto Google Cloud.
Richiedi criteri di controllo dell'accesso (firewall) basati su rivendicazioni
Oltre all'identità mTLS, puoi concedere l'accesso in base alle attestazioni della richiesta nell'intestazione JWT delle richieste HTTP o gRPC. Cloud Service Mesh ti consente di affermare che un JWT è firmato da un'entità attendibile. Ciò significa che puoi configurare criteri che consentano l'accesso da determinati client solo se esiste una rivendicazione della richiesta o corrisponde a un valore specificato.
Autenticazione degli utenti con Identity-Aware Proxy
Puoi autenticare gli utenti che accedono a qualsiasi servizio esposto su un gateway di ingresso Cloud Service Mesh utilizzando Identity-Aware Proxy (IAP). IAP può autenticare gli utenti che accedono da un browser, integrarsi con provider di identità personalizzati e emettere un token JWT di breve durata o un token RC che può essere utilizzato per concedere l'accesso al gateway di Ingress o a un servizio a valle (utilizzando un sidecar). Per saperne di più, consulta Integrazione di IAP con Cloud Service Mesh.
Autenticazione utente con il tuo Identity Provider esistente
Puoi integrare il tuo provider di identità esistente con Cloud Service Mesh per fornire autenticazione e controllo dell'accesso degli utenti finali basati su browser ai tuoi carichi di lavoro di cui è stato eseguito il deployment. Per ulteriori informazioni, consulta Configurare l'autenticazione utente di Cloud Service Mesh.
Accesso a logging e monitoraggio
Cloud Service Mesh garantisce che le metriche e i log di accesso siano disponibili in Google Cloud Observability e fornisce una dashboard integrata per comprendere i pattern di accesso per un servizio o un carico di lavoro in base a questi dati.
Conforme a FIPS
Il componente del piano dati utilizza moduli di crittografia convalidati FIPS 140-2.
Limitazioni
La sicurezza di Cloud Service Mesh presenta la seguente limitazione:
- L'autenticazione utente che utilizza IAP richiede che un servizio sia pubblicato su internet. IAP e Cloud Service Mesh ti consentono di configurare criteri che possono limitare l'accesso a utenti e clienti autorizzati in un intervallo IP consentito. Se scegli di esporre il servizio solo ai client all'interno della stessa rete, devi configurare un motore di criteri personalizzato per l'autenticazione degli utenti e l'emissione di token.
Passaggi successivi
- Best practice per la sicurezza di Cloud Service Mesh
- Configurare la sicurezza del livello di trasporto
- Aggiornare i criteri di autorizzazione