SEC03-BP02 Concessione dell'accesso con privilegio minimo - Framework AWSWell-Architected

SEC03-BP02 Concessione dell'accesso con privilegio minimo

È una best practice concedere alle identità soltanto il livello di accesso di cui hanno bisogno, specificando le operazioni che possono effettuare, le risorse su cui possono operare e a quali condizioni. Affidati a gruppi e attributi di identità per impostare in modo dinamico le autorizzazioni su vasta scala, anziché definire le autorizzazioni per i singoli utenti. Ad esempio, puoi concedere a un gruppo di sviluppatori le autorizzazioni per gestire solo le risorse del loro progetto. In questo modo, se uno sviluppatore lascia il progetto, il suo accesso viene revocato in automatico senza modificare le policy di accesso sottostanti.

Risultato desiderato: gli utenti dispongono solo delle autorizzazioni necessarie per svolgere il proprio lavoro. Gli utenti dovrebbero avere accesso solo agli ambienti di produzione per eseguire un'attività specifica in un intervallo temporale limitato e l'accesso dovrebbe essere revocato una volta completata l'attività. Le autorizzazioni devono essere revocate quando non sono più necessarie, incluso se un utente passa a un progetto o a un ruolo professionale diverso. I privilegi di amministratore devono essere riservati a un piccolo gruppo di amministratori fidati. Le autorizzazioni vanno riviste con regolarità per evitare che si accumulino. Account di sistemi o di macchine devono disporre del numero minimo di autorizzazioni necessarie per portare a termine un'attività.

Anti-pattern comuni:

  • L'impostazione predefinita è la concessione delle autorizzazioni di amministratore agli utenti.

  • Utilizzo dell'utente root per le attività quotidiane.

  • Creazione di policy eccessivamente permissive, ma senza privilegi completi di amministratore.

  • Mancata revisione delle autorizzazioni per capire se consentono l'accesso privilegio minimo.

Livello di rischio associato se questa best practice non fosse adottata: elevato

Guida all'implementazione

Secondo il principio del privilegio minimo, le identità dovrebbero essere autorizzate a eseguire solo il più piccolo insieme di azioni necessarie per lo svolgimento di un'attività specifica. In questo modo usabilità, efficienza e sicurezza sono bilanciate. Seguendo questo principio si limitano gli accessi indesiderati e si può monitorare chi accede a quali risorse. Per impostazione predefinita, ruoli e utenti IAM non dispongono di autorizzazioni. Per impostazione predefinita, l'utente root dispone dell'accesso completo e deve essere strettamente controllato, monitorato e utilizzato solo per le attività che richiedono l'accesso root.

Le policy IAM consentono di concedere in modo esplicito le autorizzazioni ai ruoli IAM o a risorse specifiche. Ad esempio, le policy basate su identità possono essere collegate ai gruppi IAM, mentre i bucket S3 possono essere controllati da policy basate su risorse.

Quando crei e colleghi una policy IAM, puoi specificare le azioni del servizio, le risorse e le condizioni che devono essere vere affinché AWS consenta o neghi l'accesso. AWS supporta una varietà di condizioni che contribuiscono a ridurre l'accesso. Ad esempio, con la chiave di condizione PrincipalOrgID, puoi negare azioni se il richiedente non fa parte della tua organizzazione AWS.

Puoi anche controllare le richieste effettuate dai servizi AWS per tuo conto, ad esempio AWS CloudFormation per la creazione di una funzione AWS Lambda, utilizzando la chiave di condizione CalledVia. Dovresti disporre di tipi diversi di policy su più livelli per definire un livello di difesa ben radicato e limitare le autorizzazioni complessive dei tuoi utenti. Puoi anche limitare le autorizzazioni che possono essere concesse e le relative condizioni. Ad esempio, puoi consentire ai team applicativi di creare le proprie policy IAM per i sistemi che creano, ma devi anche applicare un limite delle autorizzazioni per circoscrivere le autorizzazioni massime ricevibili dal sistema.

Passaggi dell'implementazione

  • Implementa policy con privilegio minimo: assegna policy di accesso con privilegio minimo a ruoli e gruppi IAM in modo da rispecchiare il ruolo o la funzione dell'utente che hai definito.

  • Prendi in considerazione l'utilizzo di policy AWS gestite per le funzioni lavorative. Quando inizi a creare policy di autorizzazioni dettagliate, può essere difficile sapere da dove iniziare. AWS dispone di policy gestite per ruoli professionali comuni, ad esempio contabili, amministratori di database e data scientist. Queste policy possono contribuire a limitare l'accesso degli utenti e, al contempo, definiscono come implementare le policy di privilegio minimo.

  • Rimuovi le autorizzazioni non necessarie: rimuovi le autorizzazioni non necessarie e riduci le policy eccessivamente permissive. La generazione di policy per IAM Access Analyzer è utile per perfezionare le policy delle autorizzazioni.

  • Assicurati che gli utenti abbiano un accesso limitato agli ambienti di produzione: gli utenti devono avere accesso agli ambienti di produzione solo in presenza di un caso d'uso valido. Una volta eseguite le attività specifiche che richiedono l'accesso alla produzione, l'accesso dell'utente deve essere revocato. Limitare l'accesso agli ambienti di produzione contribuisce a evitare eventi indesiderati con impatto sulla produzione e contiene gli effetti di accessi involontari.

  • Prendi in considerazione i limiti delle autorizzazioni: un limite delle autorizzazioni è una funzionalità per utilizzare una policy gestita che imposta il numero massimo di autorizzazioni che una policy basata su identità può concedere a un'entità IAM. Il limite delle autorizzazioni di un'entità consente di eseguire solo le operazioni consentite dalle sue policy basate su identità e dai suoi limiti delle autorizzazioni.  

  • Prendi in considerazione i tag delle risorse per le autorizzazioni: puoi concedere l'accesso in base allo scopo della risorsa, al proprietario, all'ambiente o ad altri criteri servendoti di un modello di controllo degli accessi basato sugli attributi che utilizza i tag delle risorse. Ad esempio, puoi usare tag di risorse per diversificare gli ambienti di produzione e sviluppo. Tramite questi tag puoi limitare gli sviluppatori all'ambiente di sviluppo. Abbinando policy su tag e autorizzazioni, puoi ottenere l'accesso a risorse dettagliate senza dover definire policy personalizzate e complesse per ogni funzione professionale.

  • Usa le policy di controllo dei servizi per AWS Organizations. Le policy di controllo dei servizi monitorano a livello centrale il numero massimo di autorizzazioni disponibili per gli account membri della tua organizzazione. È importante notare che le policy di controllo dei servizi consentono di limitare le autorizzazioni dell'utente root negli account membri. Prendi anche in considerazione la possibilità di usare AWS Control Tower, che offre controlli gestiti prescrittivi che arricchiscono AWS Organizations. Puoi anche definire i tuoi controlli in Control Tower.

  • Stabilisci una policy del ciclo di vita degli utenti per la tua organizzazione: le policy del ciclo di vita degli utenti definiscono le attività da eseguire in caso di onboarding degli utenti in AWS, cambiamento di ruolo o ambito lavorativo o cessata necessità di accedere a AWS. Le revisioni delle autorizzazioni vanno eseguite in ogni fase del ciclo di vita di un utente per verificare che siano sufficientemente restrittive e per evitare che si accumulino.

  • Stabilisci una pianificazione regolare per la revisione delle autorizzazioni e la rimozione di eventuali autorizzazioni non necessarie: devi rivedere con regolarità l'accesso degli utenti per verificare che gli stessi non dispongano di un accesso eccessivamente permissivo. AWS Config e IAM Access Analyzer sono utili per l'esecuzione di audit delle autorizzazioni degli utenti.

  • Stabilisci una matrice dei ruoli professionali: una matrice dei ruoli professionali visualizza i vari ruoli e i livelli di accesso richiesti all'interno della tua impronta AWS. Tramite una matrice dei ruoli professionali puoi definire e separare le autorizzazioni in base alle responsabilità degli utenti all'interno dell'organizzazione. Utilizza i gruppi anziché applicare le autorizzazioni direttamente a singoli utenti o ruoli.  

Risorse

Documenti correlati:

Video correlati:

Esempi correlati: