Panoramica sulla sicurezza di Anthos Service Mesh
La sicurezza di Anthos Service Mesh ti aiuta a attenuare le minacce interne e a ridurre il rischio di violazione dei dati garantendo che tutte le comunicazioni tra i carichi di lavoro siano criptate, autenticate reciprocamente e autorizzate.
Tradizionalmente, per attenuare i rischi legati agli addetti ai lavori è stata utilizzata la micro-segmentazione che utilizza regole basate su IP. Tuttavia, l'adozione di container, servizi condivisi e ambienti di produzione distribuiti distribuiti su più cloud rende questo approccio più difficile da configurare e ancora più difficile da gestire.
Con Anthos Service Mesh, puoi configurare un livello di sicurezza di rete sensibile al contesto dei servizi e richiedere la sicurezza della rete sensibile al contesto, indipendente dalla sicurezza della rete sottostante. Per questo motivo, Anthos Service Mesh ti consente di adottare una strategia di difesa in profondità coerente con i principi di sicurezza Zero Trust. Consente di raggiungere questo obiettivo tramite criteri dichiarativi e senza modificare il codice dell'applicazione.
TLS reciproco
Anthos Service Mesh utilizza il protocollo TLS (mTLS) reciproca per l'autenticazione peer. L'autenticazione si riferisce all'identità: chi è questo servizio, chi è l'utente finale e posso fidarmi che è chi dichiara di essere.
mTLS consente ai carichi di lavoro di verificare le reciproche identità e di autenticarsi. Probabilmente conosci già il protocollo TLS semplice, grazie al suo utilizzo in HTTPS per consentire ai browser di considerare attendibili i server web e criptare i dati scambiati. Quando si utilizza TLS semplice, il client stabilisce che il server può essere considerato attendibile convalidando il suo certificato. mTLS è un'implementazione di TLS in cui client e server si scambiano certificati e verificano le identità degli altri.
mTLS è il mezzo tramite il quale Anthos Service Mesh implementa sia l'autenticazione sia la crittografia tra i servizi.
In Anthos Service Mesh 1.6 e versioni successive, la crittografia automatica mTLS è abilitata per impostazione predefinita. Con auto mTLS, un proxy sidecar client rileva automaticamente se il server ha un file collaterale. Il file collaterale client invia la crittografia mTLS ai carichi di lavoro con file collaterali e il testo normale ai carichi di lavoro senza file collaterali. Tuttavia, tieni presente che i servizi accettano sia il traffico di testo normale sia il traffico mTLS. Per proteggere il tuo mesh di servizi, ti consigliamo di eseguire la migrazione dei servizi in modo che accetti solo il traffico mTLS.
Per maggiori informazioni sull'applicazione solo di mTLS, vedi Anthos Service Mesh con l'esempio: mTLS.
Configurazione della suite di crittografia
Il seguente elenco include le suite di crittografia predefinite di Anthos Service Mesh conformi a FIPS:
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
Per una maggiore sicurezza, la versione TLS minima lato server supportata dai carichi di lavoro Anthos Service Mesh è la 1.2, che supporta la personalizzazione delle suite di crittografia. Tieni presente che Anthos Service Mesh supporta anche TLS v1.3, che codifica le suite di crittografia hardcoded e non supporta la modifica.
Per ulteriori informazioni sulle suite di crittografia, consulta la pagina relativa alla configurazione TLS comune di Envoy e all'autenticazione TLS reciproca di Fitbit.
Vantaggi in materia di sicurezza
Anthos Service Mesh offre i seguenti vantaggi in termini di sicurezza:
Riduce il rischio di attacchi di riproduzione o impersonificazione che usano credenziali rubate. Anthos Service Mesh si basa su certificati mTLS per autenticare i peer, anziché su token di connessione come i token web JSON (JWT). Poiché i certificati mTLS sono associati al canale TLS, un'entità nel tuo ambiente di produzione non può impersonare un'altra entità semplicemente riproducendo il token di autenticazione senza accesso alle chiavi private.
Garantisce la crittografia dei dati in transito. L'uso di mTLS per l'autenticazione assicura anche che tutte le comunicazioni TCP siano criptate in transito.
Assicura 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 località di rete del client e dalle credenziali a livello di applicazione. Puoi specificare che solo i client con identità di servizio autorizzate o in 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 dell'ambiente GKE Enterprise.
Riduce il rischio di violazione dei dati utente all'interno della rete di produzione. Puoi garantire che gli addetti ai lavori possano accedere ai dati sensibili solo tramite client autorizzati. Inoltre, puoi fare in modo che determinati client possano accedere ai dati utente solo se il client può presentare un token utente valido e di breve durata. Ciò riduce il rischio che la compromissione di una singola credenziale del client conceda a un aggressore l'accesso a tutti i dati utente.
Identifica quali client hanno eseguito l'accesso a un servizio con dati sensibili. Il logging degli accessi di Anthos Service Mesh acquisisce l'identità mTLS del client in aggiunta all'indirizzo IP. In questo modo, puoi capire facilmente quale carico di lavoro ha eseguito l'accesso a un servizio anche se il carico di lavoro è temporaneo e con deployment dinamico e in un cluster diverso o una rete VPC (Virtual Private Cloud).
Funzionalità
Questa sezione descrive le funzionalità fornite da Anthos Service Mesh per realizzare i propri vantaggi in termini di sicurezza.
Rotazione automatica di certificati e chiavi
L'utilizzo di mTLS basato sulle identità di servizio consente di criptare tutte le comunicazioni TCP e fornisce una credenziale più sicura non riproducibile per il controllo dell'accesso. Una delle sfide principali dell'utilizzo di mTLS su larga scala è la gestione di chiavi e certificati per tutti i carichi di lavoro di destinazione. Anthos Service Mesh si occupa della rotazione di chiavi e certificati mTLS per i carichi di lavoro GKE Enterprise senza interrompere le comunicazioni. La configurazione di intervalli di aggiornamento dei certificati più piccoli è possibile per ridurre i rischi.
Autorità di certificazione Anthos Service Mesh (Mesh CA)
Anthos Service Mesh include un'autorità di certificazione privata gestita multiregionale, Mesh CA, per l'emissione di certificati per mTLS. Mesh CA è un servizio altamente affidabile e scalabile, ottimizzato per carichi di lavoro con scalabilità dinamica su una piattaforma cloud. Con Mesh CA, Google gestisce la sicurezza e la disponibilità del backend della CA. Mesh CA consente di usare un'unica radice di attendibilità nei cluster GKE Enterprise. Quando utilizzi Mesh CA, puoi fare affidamento sui pool di identità dei carichi di lavoro per fornire un isolamento 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 di CA mesh includono i seguenti dati sui servizi dell'applicazione:
- L'ID progetto Google Cloud
- Lo spazio dei nomi GKE
- Il nome dell'account di servizio GKE
Certificate Authority Service
In alternativa alla CA Mesh, puoi configurare Anthos Service Mesh per utilizzare Certificate Authority Service, che è adatto ai seguenti casi d'uso:
- Se hai bisogno di autorità di certificazione diverse per firmare i certificati dei carichi di lavoro su cluster diversi.
- Se vuoi utilizzare i certificati del plug-in CA personalizzato Istio.
- Se hai bisogno di eseguire il backup delle chiavi di firma in un HSM gestito.
- Se opera in un settore altamente regolamentato e sei soggetto alla conformità.
- Se vuoi concatenare la tua CA Anthos Service Mesh a un certificato radice aziendale personalizzato per firmare i certificati dei carichi di lavoro.
Il costo di Mesh CA è incluso nel prezzo di Anthos Service Mesh. Il servizio CA non è incluso nel prezzo di base di Anthos Service Mesh e viene addebitato separatamente. Inoltre, CA Service è fornito con uno SLA esplicito, ma mesh CA non lo fa.
Per questa integrazione, a tutti i carichi di lavoro in Anthos Service Mesh vengono assegnati due ruoli IAM:
Criteri di controllo dell'accesso sensibile all'identità (firewall)
Con Anthos Service Mesh, puoi configurare criteri di sicurezza della rete basati sull'identità mTLS rispetto all'indirizzo IP del peer. Ciò consente di creare criteri indipendenti dalla località di rete del carico di lavoro. Attualmente sono supportate solo le comunicazioni tra cluster nello stesso progetto Google Cloud.
Richiedere criteri di controllo dell'accesso (firewall) sensibili alle rivendicazioni
Oltre all'identità mTLS, puoi concedere l'accesso in base alle rivendicazioni delle richieste nell'intestazione JWT delle richieste HTTP o gRPC. Anthos Service Mesh ti consente di dichiarare che un JWT è firmato da un'entità attendibile. Ciò significa che puoi configurare criteri che consentono l'accesso da parte di determinati client solo se esiste una richiesta di reclamo 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 in entrata Anthos Service Mesh utilizzando Identity-Aware Proxy (IAP). IAP può autenticare gli utenti che accedono da un browser, integrarsi con provider di identità personalizzati ed emettere un token JWT di breve durata o un RCToken che può essere utilizzato per concedere l'accesso al gateway Ingress o a un servizio downstream (utilizzando un side-car). Per maggiori informazioni, consulta Integrazione di IAP con Anthos Service Mesh.
Autenticazione degli utenti con il provider di identità esistente
Puoi integrare il tuo provider di identità esistente con Anthos Service Mesh per fornire l'autenticazione dell'utente finale basata su browser e controllo dell'accesso ai carichi di lavoro di cui hai eseguito il deployment. Per maggiori informazioni, consulta Configurazione dell'autenticazione utente Anthos Service Mesh.
Logging e monitoraggio degli accessi
Anthos Service Mesh garantisce che le metriche e i log degli accessi siano disponibili in Osservabilità di Google Cloud e fornisce una dashboard integrata per comprendere i pattern di accesso per un servizio o un carico di lavoro basato su questi dati. Puoi anche scegliere di configurare una destinazione privata. Anthos Service Mesh consente di ridurre il rumore nei log degli accessi, registrando gli accessi riusciti solo una volta in un periodo di tempo configurabile. Le richieste rifiutate da un criterio di sicurezza o generano un errore vengono sempre registrate. In questo modo puoi ridurre in modo significativo i costi associati all'importazione, all'archiviazione e all'elaborazione dei log, senza la perdita degli indicatori di sicurezza chiave.
Conformi a FIPS
Tutti i componenti del piano di controllo nel cluster e i proxy nell'architettura x86 utilizzano moduli di crittografia convalidati FIPS 140-2.
Limitazioni
La sicurezza di Anthos Service Mesh attualmente presenta le seguenti limitazioni:
- L'autenticazione utente che utilizza IAP richiede la pubblicazione di un servizio su internet. IAP e Anthos Service Mesh consentono di configurare criteri che possono limitare l'accesso a utenti e client autorizzati in un intervallo IP consentito. Se scegli di esporre il servizio solo ai client nella stessa rete, devi configurare un motore dei criteri personalizzato per l'autenticazione utente e l'emissione di token.
Passaggi successivi
- Best practice per la sicurezza di Anthos Service Mesh
- Configura la sicurezza del trasporto
- Aggiornare i criteri di autorizzazione