Cosa sono SPIFFE e SPIRE?
SPIFFE e SPIRE sono due progetti open source pensati per la gestione delle identità in ambienti di elaborazione dinamici e diversificati.
SPIFFE (la cui pronuncia è "spiffi") è l'acronimo di Secure Production Identity Framework for Everyone, e indica il progetto che definisce una struttura per le identità e un approccio alla verifica crittografica degli ID per considerarli attendibili.
SPIRE, abbreviazione di SPIFFE Runtime Environment, è l'ambiente di implementazione di riferimento per SPIFFE.
Combinati, SPIFFE e SPIRE definiscono l'approccio per adottare un'architettura Zero Trust negli ambienti cloud ibridi complessi. La combinazione di SPIFFE e SPIRE contribuisce a risolvere svariati problemi di sicurezza, perché permette di:
- Migliorare la sicurezza delle applicazioni cloud native negli ambienti Kubernetes.
- Migliorare l'autenticazione nelle posizioni di edge computing.
- Gestire le identità per gli agenti IA e altri carichi di lavoro non umani.
Sia SPIFFE che SPIRE sono progetti che hanno raggiunto il livello di maturità Graduated della Cloud Native Computing Foundation (CNCF). Offerto come implementazione di SPIFFE e SPIRE per le aziende, l'operatore Zero Trust Workload Identity Manager di Red Hat® è disponibile in Red Hat OpenShift® come anteprima tecnica.
L’origine dell’analogia con le tartarughe
I sostenitori di SPIFFE a volte descrivono questo approccio come una soluzione al "problema delle tartarughe". Gli autori del progetto SPIFFE hanno persino attinto alla metafora della tartaruga nel titolo di un libro sulla tecnologia.
Esplicitiamo l’analogia descrivendo quindi il problema della tartaruga.
In un antico mito, un personaggio racconta che il mondo poggia sul dorso di una gigantesca tartaruga. Alla richiesta di spiegare su cosa poggi la tartaruga, il personaggio afferma che si trova sul dorso di un'altra tartaruga, ancora più grande. E su cosa poggia l'altra tartaruga? "Ogni tartaruga poggia su un'altra tartaruga!"
Il problema della sicurezza informatica è paragonabile a quello della tartaruga. I segreti, come le password e le chiavi dell'interfaccia di programmazione delle applicazioni (API), fanno sì che diverse piattaforme e servizi possano contare su una fiducia reciproca. La sicurezza dei segreti è affidata a livelli di sicurezza aggiuntivi, come le chiavi di crittografia private e un repository di segreti in cui archiviare le chiavi. E come si protegge il repository dei segreti? Con altri segreti. Non si tratta di tartarughe mitologiche, ma il concetto alla base è lo stesso: ogni segreto poggia su un altro segreto.
Lo standard SPIFFE e l'approccio SPIRE hanno lo scopo di stabilire quale sia il livello di attendibilità finale alla base di tutte le interazioni che avvengono in un sistema.
Quale problema risolvono SPIFFE e SPIRE?
SPIFFE e SPIRE offrono una soluzione per incrementare la sicurezza IT. Insieme, costituiscono un framework che garantisce l'accesso soltanto alle interazioni con identità verificate. Per analogia, possiamo pensare a SPIFFE e SPIRE come all'autenticazione a più fattori per i carichi di lavoro.
SPIFFE: il framework
Il framework SPIFFE definisce le specifiche per l'emissione e la gestione delle identità crittografiche per i servizi nei diversi ambienti. Il fulcro di questo standard è lo SPIFFE Verifiable Identity Document (SVID), una credenziale di breve durata che funge da identità per il carico di lavoro.
In un'architettura Zero Trust, in cui nessun componente è attendibile per impostazione predefinita, SPIFFE consente l'autenticazione dei carichi di lavoro senza ricorrere ai segreti. Quando un carico di lavoro deve interagire con un altro servizio, può presentare il proprio SVID, in genere sotto forma di certificato X.509 o di JSON Web Token (JWT).
Gli altri carichi di lavoro possono quindi verificare lo SVID in locale, ottenendo un'autenticazione peer to peer attendibile senza dover contattare un'autorità centrale per ogni transazione. Il processo ottimizzato semplifica e protegge la comunicazione tra i servizi, mantenendo l'attendibilità tramite un'identità verificabile e standardizzata.
SPIRE: l'ambiente di runtime
SPIRE descrive la modalità necessaria a implementare lo standard SPIFFE, definendo il processo di configurazione delle API che stabiliscono l'attendibilità tra i carichi di lavoro (applicazioni o agenti che inviano una richiesta) e i nodi (server o macchine).
SPIRE attesta sia il carico di lavoro che il nodo, ovvero verifica l’identità tanto dell'applicazione quanto della risorsa, prima di emettere un certificato di firma.
Un server SPIRE funge da autorità di firma per le identità all'interno del proprio dominio SPIFFE, e inoltre tiene traccia delle identità dei carichi di lavoro in un registro.
Oltre al server SPIRE, gli agenti SPIRE vengono eseguiti su ogni nodo in cui viene eseguito un carico di lavoro. Questi agenti gestiscono una cache di SVID e attestano l'identità dei carichi di lavoro. La verifica dello SVID può essere eseguita localmente, utilizzando l'introspezione a livello di kernel. Il carico di lavoro non deve quindi richiedere a un servizio esterno di verificare se un'azione è autorizzata.
SPIRE supporta la federazione, permettendo a diversi sistemi di intercambiare pacchetti di attendibilità che contengono le chiavi pubbliche e le certificazioni necessarie per convalidarle.
Scenario di utilizzo di SPIFFE e SPIRE
SPIFFE e SPIRE facilitano l'autenticazione negli ambienti multicloud distribuiti. Di seguito alcuni degli scenari di utilizzo più comuni:
Autenticazione in ambienti cloud ibridi
Negli ambienti ibridi e multicloud, le applicazioni si estendono spesso su più provider cloud e aree amministrative. Questa condizione complica l'implementazione di comunicazioni attendibili tra i domini.
Con la federazione SPIFFE, i server SPIRE in esecuzione su posizioni diverse possono intercambiare le chiavi pubbliche e i certificati tramite pacchetti di attendibilità, un formato per la raccolta di chiavi pubbliche utilizzato da una determinata autorità SPIFFE emittente. In questo modo, le applicazioni possono stabilire l'attendibilità anche tra provider cloud o ambiti amministrativi diversi, senza chiavi private o configurazioni di rete complesse.
Gestione delle identità in Kubernetes e KubeVirt
In genere, gli ambienti Kubernetes contengono numerosi carichi di lavoro di piccole dimensioni eseguiti in container isolati che devono collaborare tra loro. SPIFFE e SPIRE possono migliorare la sicurezza degli ambienti Kubernetes fornendo l'autenticazione per le applicazioni containerizzate ovunque siano eseguite sulla rete. Questa sicurezza avanzata è adatta anche alle macchine virtuali eseguite su soluzioni basate su KubeVirt, come Red Hat OpenShift Virtualization. Ciò semplifica il controllo granulare degli accessi, un principio chiave dell'architettura Zero Trust.
Flussi di lavoro per gli agenti IA
Gli agenti IA, che ricevono le istruzioni e quindi interagiscono con altri sistemi per raggiungere un obiettivo, hanno una diffusione sempre maggiore. Quando si tratta di informazioni sensibili, tuttavia, adottare gli agenti IA non è semplice. Per garantire l'accesso a un agente IA sono richieste identità solide e verificabili per i carichi di lavoro delle macchine, un aspetto che risulta più complesso nelle piattaforme di cloud ibrido. SPIFFE e SPIRE possono risolvere parte del problema fornendo credenziali verificabili a breve termine con le quali i servizi di IA possono accedere ai dati sensibili in modo controllato.
Attendibilità della service mesh
La service mesh è il livello che gestisce le comunicazioni tra i servizi, in particolare nelle applicazioni containerizzate. Un'implementazione SPIFFE e SPIRE può aggiungere la gestione della sicurezza integrata alle service mesh, consentendo loro di fare affidamento su identità verificabili con la crittografia, e di ottenere un livello di attendibilità che favorisce l'interoperabilità tra sistemi. Inoltre agevola l'applicazione delle policy, sia all'interno che all'esterno della service mesh.
Sicurezza dell'edge computing
Poiché SPIFFE e SPIRE estendono il piano di controllo delle identità agli ambienti locali, possono essere la soluzione ideale per l'edge computing. Gli SVID verificabili con crittografia consentono di eseguire l'autenticazione avanzata in qualsiasi punto della rete, anche per i servizi più remoti distribuiti all'edge.
Come utilizzare SPIFFE e SPIRE in Kubernetes
L'esecuzione delle applicazioni più recenti nel cloud esige un certo livello di automazione. Una delle soluzioni più diffuse è Kubernetes, una piattaforma open source per il deployment, la gestione e la scalabilità delle applicazioni nei container. Kubernetes è alla base di Red Hat OpenShift.
Utilizzando SPIFFE e SPIRE come piano di controllo delle identità, ovvero la "tartaruga alla base" descritta in precedenza, puoi lavorare in Kubernetes con le identità verificabili. Ecco tre aspetti fondamentali da conoscere per utilizzare SPIFFE e SPIRE in Kubernetes:
- SPIRE è il framework per l'implementazione di SPIFFE. È necessario eseguire il deployment dei componenti SPIRE nel cluster Kubernetes. I componenti includono il server SPIRE, che gestisce le identità e la firma, e gli agenti SPIRE, uno in esecuzione su ogni nodo Kubernetes. Questi componenti costituiscono l'infrastruttura di base delle identità e preparano il cluster alla verifica crittografica delle identità. Red Hat Zero Trust Workload Identity Manager può semplificare questo compito negli ambienti Red Hat OpenShift.
- Gli agenti SPIRE eseguono sia l'attestazione dei nodi che dei carichi di lavoro. Per verificarne la legittimità, gli agenti possono ispezionare le caratteristiche di un'applicazione, come lo spazio dei nomi Kubernetes, l'account di servizio o l'immagine del container.
- Dopo l'attestazione, le applicazioni accedono all'API del carico di lavoro SPIFFE locale esposta dall'agente SPIRE per ottenere i propri SVID univoci e di breve durata. Gli SVID aiutano a stabilire le connessioni mTLS (mutual Transport Layer Security) e garantiscono l'attendibilità della comunicazione tra i servizi.
Perché scegliere Red Hat per la sicurezza Zero Trust?
Le soluzioni Red Hat sono progettate per garantire una sicurezza totale, e possono aiutarti a creare un approccio Zero Trust di base per garantire la sovranità dei dati e supportare al contempo il deployment e la gestione di carichi di lavoro cloud native e basati sull'IA. Gli esperti Red Hat possono aiutarti a muovere i primi passi nell'adozione dell'approccio Zero Trust negli ambienti multicloud.
Zero Trust Workload Identity Manager di Red Hat è un operatore di Red Hat OpenShift che semplifica l'installazione e la gestione del ciclo di vita di SPIFFE e SPIRE. Può essere installato su cluster esistenti e il suo funzionamento su Red Hat OpenShift è stato convalidato; è anche supportato da una documentazione completa per l'installazione e la risoluzione dei problemi.