Panoramica
La gestione delle identità e degli accessi (IAM) è un metodo centralizzato e coerente che permette di gestire le identità utente (persone, servizi e server), automatizzare i controlli di accesso e soddisfare i requisiti di conformità in ambienti tradizionali e containerizzati. Quando ad esempio i dipendenti che lavorano da remoto utilizzano una rete privata virtuale (VPN) per accedere alle risorse aziendali, stanno mettendo in pratica una soluzione IAM.
Il metodo IAM si inserisce in una strategia più ampia volta a garantire il giusto livello di accesso per ciascun utente, soprattutto quando si ha a che fare con più istanze cloud. I framework IAM, che assicurano la gestione centralizzata delle identità fra i diversi ambienti bare metal, virtuali, cloud ibridi ed edge, contribuiscono in maniera significativa a ridurre i rischi di sicurezza e di conformità.
I vantaggi dei metodi IAM
I metodi IAM controllano l'accesso ai dati, alle applicazioni e alle risorse in ambienti cloud e on premise, basandosi sull'identità dell'utente o dell'applicazione e su criteri definiti a livello amministrativo. Sono presenti in ogni fase del ciclo di vita DevOps e proteggono contro gli accessi al sistema e i movimenti laterali non autorizzati.
Alcuni degli elementi chiave dei metodi IAM sono:
Autenticazione: verificare le identità di utenti, servizi e applicazioni.
Autorizzazione: garantire che gli utenti autenticati riescano ad accedere a risorse e funzioni specifiche.
Provider di identità, archivi protetti di segreti e moduli di protezione hardware (HSM): strumenti che aiutano i team DevOps a gestire e proteggere le credenziali, le chiavi, i certificati e i segreti, garantendo la sicurezza dei dati inattivi e di quelli in movimento.
Provenienza: verificare l'identità o l'autenticità di un codice o di un'immagine mediante una firma digitale o un certificato di autenticazione.
Date le continue evoluzioni che investono il settore della sicurezza, i metodi IAM prevedono anche funzionalità supplementari come l'intelligenza artificiale (IA), il machine learning (ML) e l'autenticazione biometrica.
Autenticazione: gestire le identità utente
Con autenticazione si intende il processo di conferma e verifica dell'identità di un utente. L'identità utente, o identità digitale, è un insieme di informazioni che servono per autenticare una persona, un servizio o perfino un dispositivo IoT perché possa accedere a determinati dati e reti aziendali. Pensiamo a un caso molto elementare: quando una persona accede a un sistema inserendo una password, il sistema verifica l'identità della persona che sta tentando l'accesso esaminando l'informazione fornita (la password).
Il processo di autenticazione però non si limita alla verifica delle informazioni di accesso, ma permette anche agli amministratori IT di monitorare e gestire le attività in tutta l'infrastruttura e tra i servizi.
Gli approcci per l'implementazione di criteri di sicurezza che permettano di rafforzare la protezione dell'ambiente senza compromettere l'usabilità sono moltissimi. Tra i più conosciuti ricordiamo il Single Sign-On (SSO) e l'autenticazione a più fattori (MFA).
SSO: per poter accedere ai vari servizi, dispositivi e server è necessaria un'autenticazione separata. SSO configura un servizio di identità centralizzato che i servizi configurati possono verificare per gli utenti verificati. Gli utenti devono autenticarsi una sola volta e possono accedere a più servizi.
MFA: si tratta di un livello di sicurezza supplementare che prevede la verifica con più metodi di autenticazione prima di poter accedere al sistema. Per questo metodo si consiglia l'uso di dispositivi crittografici, come token fisici o smart card, oppure la configurazione di metodi di autenticazione come RADIUS, PKINIT, password OTP e password rafforzate.
Esistono anche altri strumenti interni all'infrastruttura che si possono sfruttare per snellire la gestione delle identità, soprattutto in ambienti complessi o distribuiti come il cloud o le pipeline CI/CD, dove è difficile riuscire a implementare sistemi di autenticazione degli utenti davvero efficaci. Ad esempio i ruoli di sistema si dimostrano particolarmente utili in ambienti DevSecOps. I flussi di lavoro di configurazione automatizzati, coerenti e ripetibili aiutano gli amministratori IT a risparmiare tempo e risorse, riducendo il carico e le attività manuali legate al deployment, all'amministrazione delle identità e al provisioning/deprovisioning.
Autorizzazione: definire gli accessi
Se l'autenticazione serve a identificare l'utente che sta cercando di accedere a un servizio, l'autorizzazione serve invece a stabilire ciò che quell'utente può o non può fare nel servizio, ad esempio se può modificare, creare o eliminare le informazioni.
I controlli di accesso arricchiscono la gestione delle identità assegnando a ciascuna identità utente una serie di privilegi di accesso predeterminati. In genere questi controlli sono assegnati durante la configurazione dell'account o il provisioning degli utenti e operano secondo il principio del "privilegio minimo", una colonna portante del modello Zero Trust.
Il privilegio minimo consiste nel limitare i privilegi di accesso e di azione al minimo indispensabile: gli utenti possono accedere soltanto alle risorse di cui hanno effettivamente bisogno per uno scopo specifico, come un progetto o un'attività, e sono abilitati a svolgere solo le azioni necessarie. I criteri di accesso possono anche imporre un vincolo temporale, per cui una determinata risorsa resterà disponibile all'utente solo per un lasso di tempo limitato.
Ad esempio, un dipendente sarà autorizzato ad accedere a un numero maggiore di risorse aziendali rispetto ai fornitori esterni, ai partner o ai clienti. Quando il livello di accesso degli utenti subisce qualche variazione, gli amministratori IT si occupano di apportare le modifiche necessarie nel database delle identità.
Tra i sistemi di gestione degli accessi che seguono l'approccio del privilegio minimo ricordiamo la gestione degli accessi privilegiati (PAM) e il controllo degli accessi basato sui ruoli (RBAC).
Il sistema PAM è un tipo di controllo di accesso decisivo. In genere gli amministratori e i membri dei team DevOps preposti a questo compito sono anche gli utenti con meno restrizioni di accesso di tutta l'organizzazione e sono autorizzati a modificare le applicazioni enterprise, i database, i sistemi e i server.
Il sistema RBAC definisce i ruoli, o raccolte di utenti, e concede loro l'accesso alle risorse e alle funzioni sulla base delle loro mansioni. Il sistema RBAC rende l'applicazione dei diritti di accesso coerente e chiara, semplificando l'amministrazione e l'onboarding e riducendo l'accumulo dei privilegi. Inoltre, consente di risparmiare tempo e risorse automatizzando l'assegnazione dei diritti di accesso in base al ruolo dell'utente all'interno dell'organizzazione.
Scegliere la soluzione IAM più adatta
IAM fornisce un livello di sicurezza integrato durante il flusso di sviluppo delle app ed è fondamentale per l'implementazione di DevSecOps nell'organizzazione. È uno degli elementi essenziali per creare un approccio su più livelli alla sicurezza negli ambienti bare metal, virtuali, container e cloud.
È importante garantire che il sistema IAM sia in grado di supportare le soluzioni per più ambienti e carichi di lavoro. Ciò include l'implementazione di IAM in tutte le attività di sviluppo, test, operazioni e monitoraggio delle applicazioni.
Considerando la vasta offerta di soluzioni IAM, ecco alcuni consigli per restringere la scelta:
Conduci un auditing dei sistemi nuovi e di quelli tradizionali per stabilire se l'organizzazione esegue sia applicazioni on premise che nel cloud.
Identifica eventuali lacune nella sicurezza sia da parte di stakeholder interni che di terze parti.
Definisci le tipologie di utente e i loro privilegi di accesso specifici.
Dopo aver stabilito le esigenze dell'organizzazione in termini di sicurezza, sarà più chiaro quale soluzione IAM adottare. Alcune delle opzioni principali includono: soluzioni standalone, servizi di identità gestiti o servizi di sottoscrizione cloud, come l'Identity-as-a-Service (IDaaS), di terze parti.
La soluzione IAM di Red Hat
Red Hat® Enterprise Linux® offre un'esperienza di autenticazione semplificata, affidabile e coerente in tutto l'ambiente di cloud ibrido open source. Comprende le capacità di gestione centralizzata delle identità (IdM) che permettono di autenticare gli utenti e adottare il sistema RBAC utilizzando un'unica interfaccia scalabile per tutto il datacenter.
La gestione delle identità con Red Hat Enterprise Linux consente di:
Semplificare notevolmente l'infrastruttura di gestione delle identità.
Soddisfare i moderni requisiti di conformità, come PCI DSS, USGCB e STIG.
Ridurre gli accessi non autorizzati e la proliferazione dei privilegi di accesso superflui.
Creare le basi per un ambiente operativo basato su cloud e container, dinamico e scalabile.
Preconfigurare i controlli di accesso sui nuovi sistemi, sulle macchine virtuali e sui container.
Ridurre il costo delle operazioni di routine e il carico di lavoro legato alla sicurezza.
La gestione centralizzata delle identità su Red Hat Enterprise Linux permette anche di integrare Microsoft Active Directory, il protocollo LDAP per l'interrogazione e la modifica dei servizi di directory e altre soluzioni IAM di terze parti attraverso delle interfacce di programmazione delle applicazioni (API) standard. È inoltre possibile gestire l'autenticazione e l'autorizzazione dei servizi in maniera centralizzata sfruttando le tecniche di autenticazione e autorizzazione basate su certificati.
Red Hat Enterprise Linux fornisce capacità di automazione, sicurezza e gestione del ciclo di vita; i prodotti multilivello in esecuzione sulla piattaforma, come Red Hat OpenShift®, ereditano le stesse tecnologie di sicurezza di Red Hat Enterprise Linux ed estendono la sicurezza informatica integrata allo sviluppo di applicazioni containerizzate.