Best practice per la sicurezza in IAM
Per proteggere le risorse AWS segui queste best practice per AWS Identity and Access Management (IAM).
Argomenti
Segui le best practice per proteggere le credenziali di utente root
Nozioni di base su policy gestite di AWS e passaggio alle autorizzazioni con privilegi minimi
Esaminare e rimuovere regolarmente utenti, ruoli, autorizzazioni, criteri e credenziali inutilizzati
Condizioni d'uso nelle policy IAM per limitare ulteriormente l'accesso
Verifica dell'accesso multi-account e pubblico alle risorse con IAM Access Analyzer
Richiedere agli utenti umani di utilizzare la federazione con un provider di identità per accedere a AWSutilizzando credenziali temporanee
Utenti umani, noti anche come identità umane, sono le persone, gli amministratori, gli sviluppatori, gli operatori e i consumatori delle tue applicazioni. Devono avere un'identità per accedere ai tuoi ambienti e alle tue applicazioni AWS. Gli utenti umani membri dell'organizzazione sono noti anche come identità della forza lavoro. Gli utenti umani possono anche essere utenti esterni con cui collabori e che interagiscono con le tue risorse AWS. Possono farlo tramite un browser Web, un'applicazione client, un'app mobile o strumenti interattivi della riga di comando.
Richiedere agli utenti umani di utilizzare credenziali temporanee per l'accesso a AWS. È possibile utilizzare un provider di identità affinché gli utenti umani possano fornire l'accesso federato ad Account AWS assumendo ruoli, che forniscono credenziali temporanee. Per una gestione centralizzata degli accessi, consigliamo di utilizzare AWS IAM Identity Center (IAM Identity Center ) per gestire l'accesso ai tuoi account e le autorizzazioni all'interno di questi account. Puoi gestire le tue identità utente con IAM Identity Center o gestire le autorizzazioni di accesso per le identità degli utenti in IAM Identity Center da un provider di identità esterno. Per ulteriori informazioni, consulta Che cos'è AWS IAM Identity Center? nella Guida per l'utente di AWS IAM Identity Center.
Per ulteriori informazioni sui ruoli, consulta Termini e concetti dei ruoli.
Richiedere ai carichi di lavoro di utilizzare credenziali temporanee con ruoli IAM per l'accesso a AWS
Un carico di lavoro è una raccolta di risorse e codice che fornisce valore aziendale, ad esempio un'applicazione o un processo di backend. Il carico di lavoro può avere applicazioni, strumenti operativi e componenti che richiedono le credenziali per effettuare richieste ai Servizi AWS, ad esempio richieste di lettura dei dati da Amazon S3.
Quando ti affidi a un servizio di elaborazione AWS, come Amazon EC2 o Lambda, AWS fornisce a tale risorsa di calcolo le credenziali temporanee di un ruolo IAM. Le applicazioni scritte utilizzando un SDK AWS scopriranno e utilizzeranno queste credenziali temporanee per accedere alle risorse AWS e non è necessario distribuire credenziali di lunga durata per un utente IAM ai carichi di lavoro in esecuzione su AWS.
I carichi di lavoro eseguiti all'esterno di AWS, come i server on-premises, i server di altri provider cloud o le piattaforme gestite di integrazione continua e distribuzione continua (CI/CD), possono comunque utilizzare credenziali temporanee. Tuttavia, dovrai fornire queste credenziali temporanee al tuo carico di lavoro. Di seguito sono riportati i modi in cui puoi fornire credenziali temporanee ai tuoi carichi di lavoro:
-
Puoi utilizzare IAM Roles Anywhere per richiedere credenziali AWS temporanee per il tuo carico di lavoro utilizzando un certificato X.509 della tua infrastruttura a chiave pubblica (PKI).
-
Puoi chiamare l'API AWS AWS STS
AssumeRoleWithSAMLper richiedere credenziali AWS temporanee per il tuo carico di lavoro utilizzando un'asserzione SAML di un gestore dell'identità digitale (IdP) esterno configurato all'interno del tuo Account AWS. -
Puoi chiamare l'API AWS AWS STS
AssumeRoleWithWebIdentityper richiedere credenziali AWS temporanee per il tuo carico di lavoro utilizzando un token JSON Web Tokens (JWT) di un gestore dell'identità digitale esterno configurato all'interno del tuo Account AWS. -
Puoi richiedere credenziali AWS temporanee dal tuo dispositivo IoT utilizzando l'autenticazione Mutual Transport Layer Security (MTLS) tramite AWS IoT Core.
Alcuni Servizi AWS supportano anche integrazioni che permettono di fornire credenziali temporanee ai carichi di lavoro esterni ad AWS:
-
Amazon Elastic Container Service (Amazon ECS) Anywhere
ti consente di eseguire attività Amazon ECS sulle tue risorse di calcolo e fornisce credenziali AWS temporanee per le attività Amazon ECS in esecuzione su tali risorse di calcolo. -
Amazon Elastic Kubernetes Service Hybrid Nodes ti consente di unire le tue risorse di calcolo in esecuzione all'esterno di AWS sotto forma di nodi a un cluster Amazon EKS. Amazon EKS può fornire credenziali temporanee ai pod Amazon EKS in esecuzione sulle tue risorse di calcolo.
-
AWS Systems ManagerHybrid Activations ti consente di gestire le risorse di calcolo eseguite all'esterno di AWS tramite SSM e fornisce credenziali AWS temporanee all'agente SSM in esecuzione sulle tue risorse di calcolo.
Richiedere l'autenticazione a più fattori (MFA)
Ti consigliamo di utilizzare i ruoli IAM per utenti umani e carichi di lavoro che accedono alle tue risorse AWS in modo che utilizzino credenziali temporanee. Tuttavia, per gli scenari in cui hai bisogno di utenti IAM o root nel tuo account, richiedi MFA per una maggiore sicurezza. Con MFA, gli utenti dispongono di un dispositivo che genera una risposta a una richiesta di autenticazione. Per completare la procedura di accesso, sono necessarie le credenziali dell'utente e la risposta generata dal dispositivo. Per ulteriori informazioni, consulta Autenticazione a più fattori di AWS in IAM.
Se utilizzi IAM Identity Center per la gestione centralizzata degli accessi per gli utenti umani, potrai utilizzare la funzionalità MFA di IAM Identity Center quando l'origine dell'identità è configurata con l'archivio di identità di IAM Identity Center, AWS Managed Microsoft AD o AD Connector. Per ulteriori informazioni sull'MFA, in IAM Identity Center consulta Autenticazione a più fattori (MFA) nella Guida per l'utente di AWS IAM Identity Center.
Aggiornamento delle chiavi di accesso quando necessario per i casi d'uso che richiedono credenziali a lungo termine
Ove possibile, consigliamo di fare affidamento a credenziali temporanee invece di creare credenziali a lungo termine come le chiavi di accesso. Tuttavia, per gli scenari in cui sono necessari utenti IAM con accesso a livello di programmazione e credenziali a lungo termine, si consiglia di aggiornare le chiavi di accesso all'occorrenza, ad esempio quando un dipendente lascia l'azienda. Ti consigliamo di utilizzare informazioni utilizzate per l'ultimo accesso IAM per aggiornare e rimuovere le chiavi di accesso in modo sicuro. Per ulteriori informazioni, consulta Aggiornare le chiavi di accesso.
Esistono casi d'uso specifici che richiedono credenziali a lungo termine con utenti IAM in AWS. Alcuni dei casi d'uso sono i seguenti:
-
Carichi di lavoro che non possono utilizzare ruoli IAM: è possibile eseguire un carico di lavoro da una posizione che deve accedere a AWS. In alcune situazioni, non puoi utilizzare i ruoli IAM per fornire le credenziali temporanee, ad esempio per i plugin di WordPress. In queste situazioni, per autenticarti a AWS usa le chiavi di accesso a lungo termine dell'utente IAM per quel carico di lavoro.
-
Client AWS di terza parte: se utilizzi strumenti che non supportano l'accesso con IAM Identity Center, come ad esempio fornitori o client AWS di terza parte non ospitati su AWS, utilizza le chiavi di accesso a lungo termine dell'utente IAM.
-
Accesso AWS CodeCommit - Se si utilizza CodeCommit per memorizzare il codice, è possibile utilizzare un utente IAM con chiavi SSH o credenziali specifiche del servizio per CodeCommit per l'autenticazione nei repository. Si consiglia di eseguire questa operazione oltre a utilizzare un utente di IAM Identity Center per l'autenticazione normale. Gli utenti di IAM Identity Center sono le persone della tua forza lavoro che hanno bisogno di accedere ai tuoi Account AWS o alle tue applicazioni cloud. Per consentire agli utenti di accedere ai repository di CodeCommit senza configurare gli utenti IAM, puoi configurare l'utilità git-remote-codecommit. Per ulteriori informazioni sulla creazione di policy IAM e CodeCommit consulta Credenziali IAM per CodeCommit: credenziali Git, chiavi SSH e chiavi di accesso AWS. Per ulteriori informazioni sulla configurazione dell'utility git-remote-codecommit, vedi Connessione a repository AWS CodeCommit con rotazione delle credenziali nella Guida per l'utente di AWS CodeCommit.
-
Accesso ad Amazon Keyspaces (per Apache Cassandra): in una situazione in cui non è possibile utilizzare gli utenti in IAM Identity Center, ad esempio per scopi di test per la compatibilità con Cassandra, puoi utilizzare un utente IAM con credenziali specifiche del servizio per l'autenticazione con Amazon Keyspaces. Gli utenti di IAM Identity Center sono le persone della tua forza lavoro che hanno bisogno di accedere ai tuoi Account AWS o alle tue applicazioni cloud. Puoi anche connetterti ad Amazon Keyspaces utilizzando credenziali temporanee. Per ulteriori informazioni, consulta Utilizzo di credenziali temporanee per connettersi ad Amazon Keyspaces utilizzando un ruolo IAM e il plugin SIGv4 nella Guida per gli sviluppatori di Amazon Keyspaces (per Apache Cassandra).
Segui le best practice per proteggere le credenziali di utente root
Quando crei un file Account AWS stabilisci le credenziali dell'utente root per accedere alla Console di gestione AWS. Proteggi le tue credenziali utente root nello stesso modo in cui proteggeresti altre informazioni personali sensibili. Per comprendere meglio come proteggere e dimensionare i processi degli utenti root, consulta Best practice per gli utenti root per Account AWS.
Assegna le autorizzazioni con privilegi minimi
Quando imposti le autorizzazioni con le policy IAM, concedi solo le autorizzazioni richieste per eseguire un'attività. Puoi farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come autorizzazioni con privilegi minimi. Potresti iniziare con autorizzazioni generiche mentre esplori le autorizzazioni necessarie per il tuo carico di lavoro o il caso d'uso. Man mano che il tuo caso d'uso matura, puoi lavorare per ridurre le autorizzazioni concesse per lavorare con il privilegio minimo. Per ulteriori informazioni sull'utilizzo di IAM per applicare le autorizzazioni, consulta Policy e autorizzazioni in AWS Identity and Access Management.
Nozioni di base su policy gestite di AWS e passaggio alle autorizzazioni con privilegi minimi
Per iniziare a concedere autorizzazioni a utenti e carichi di lavoro, utilizza le policy gestite di AWSche concedono autorizzazioni per molti casi d'uso comuni. Sono disponibili nel tuo Account AWS. Ricorda: le policy gestite di AWS potrebbero non concedere autorizzazioni con privilegi minimi per i tuoi casi d'uso specifici perché sono disponibili per l'uso da parte di tutti i clienti AWS. Ti consigliamo pertanto di ridurre ulteriormente le autorizzazioni definendo Policy gestite dal cliente specifiche per i tuoi casi d'uso. Per ulteriori informazioni, consulta Policy gestite da AWS. Per ulteriori informazioni sulle policy gestite da AWS progettate per funzioni di lavoro specifiche, consulta AWS managed policies for job functions.
Utilizzare IAM Access Analyzer per generare policy con privilegi minimi in base all'attività di accesso
Per concedere solo le autorizzazioni richieste per eseguire un'attività, puoi generare policy in funzione dell'attività di accesso che hai effettuato l'accesso in AWS CloudTrail. IAM Access Analyzer analizza i servizi e le azioni utilizzati dai tuoi ruoli IAM e quindi genera una policy dettagliata che puoi utilizzare. Dopo aver testato ogni policy generata, puoi distribuirla nell'ambiente di produzione. In questo modo si garantisce di concedere solo le autorizzazioni necessarie ai carichi di lavoro. Per ulteriori informazioni sulla generazione delle policy, consulta IAM Access Analyzer policy generation.
Esaminare e rimuovere regolarmente utenti, ruoli, autorizzazioni, criteri e credenziali inutilizzati
Potresti avere utenti, ruoli, autorizzazioni, policy o credenziali IAM che non servono più nel tuo Account AWS. IAM fornisce le ultime informazioni di accesso per aiutarti a identificare gli utenti, i ruoli, le autorizzazioni, le policy e le credenziali che non ti servono più in modo da poterli rimuovere. In questo modo puoi ridurre il numero di utenti, ruoli, autorizzazioni, criteri e credenziali da monitorare. È possibile utilizzare queste informazioni per perfezionare le policy IAM e aderire meglio al principio del privilegio minimo. Per ulteriori informazioni, consulta Perfezionamento delle autorizzazioni in AWS utilizzando le informazioni sull'ultimo accesso.
Condizioni d'uso nelle policy IAM per limitare ulteriormente l'accesso
È possibile specificare le condizioni che stabiliscono che una dichiarazione di policy è attiva. In questo modo, è possibile concedere l'accesso ad azioni e risorse, ma solo se la richiesta di accesso soddisfa condizioni specifiche. Ad esempio, è possibile scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzando TLS. È inoltre possibile utilizzare le condizioni per concedere l'accesso alle azioni di servizio, ma solo se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio CloudFormation. Per ulteriori informazioni, consulta Elementi delle policy JSON IAM: Condition.
Verifica dell'accesso multi-account e pubblico alle risorse con IAM Access Analyzer
Prima di concedere le autorizzazioni per accesso multi-account o pubblico in AWS, si consiglia di verificare se tale accesso è richiesto. Puoi utilizzare IAM Access Analyzer per visualizzare in anteprima e analizzare l'accesso multi-account e pubblico per i tipi di risorse supportati. Puoi farlo esaminando i risultati generati da IAM Access Analyzer. Questi risultati consentono di verificare che i controlli di accesso alle risorse garantiscano l'accesso previsto. Inoltre, quando aggiorni le autorizzazioni pubbliche e multi-account, puoi verificare l'effetto delle modifiche prima di distribuire nuovi controlli di accesso alle tue risorse. Inoltre, IAM Access Analyzer monitora continuamente i tipi di risorse supportati e genera un risultato per le risorse che consentono l'accesso multi-account o pubblico. Per ulteriori informazioni, consulta Anteprima dell'accesso con API IAM Access Analyzer.
Usa IAM Access Analyzer per convalidare le tue policy IAM e garantire autorizzazioni sicure e funzionali
Convalida le policy che crei per assicurarti che aderiscano al Linguaggio policy IAM (JSON) e best practice di IAM. È possibile convalidare le policy utilizzando la validazione delle policy di IAM Access Analyzer. IAM Access Analyzer fornisce oltre 100 controlli delle policy e consigli utili per creare policy sicure e funzionali. Durante la creazione di nuove policy o la modifica di policy esistenti nella console, IAM Access Analyzer fornisce suggerimenti per aiutarti a perfezionare e convalidare le policy prima di salvarle. Inoltre, consigliamo di rivedere e convalidare tutte le policy esistenti. Per ulteriori informazioni, consulta Convalida delle policy per IAM Access Analyzer. Per ulteriori informazioni sui controlli delle policy di IAM Access Analyzer, consulta Documentazione di riferimento sui controlli delle policy di IAM Access Analyzer.
Stabilisci guardrail delle autorizzazioni su più account
Man mano che ridimensioni i carichi di lavoro, separali utilizzando più account gestiti con AWS Organizations. Ti consigliamo di utilizzare le policy di controllo dei servizi (SCP) AWS Organizations per stabilire i guardrail delle autorizzazioni per controllare l'accesso per tutti i principali (utenti e i ruoli IAM) in tutti i tuoi account. Ti consigliamo di utilizzare le policy di controllo delle risorse (RCP) AWS Organizations per stabilire i guardrail delle autorizzazioni per controllare l'accesso alle risorse AWS in tutta l'organizzazione. Le SCP e le RCP sono tipi di policy dell'organizzazione che possono essere utilizzati per gestire le autorizzazioni nell'organizzazione a livello di organizzazione, unità organizzativa o account AWS.
Tuttavia, le SCP e le RCP da sole non sono sufficienti a concedere le autorizzazioni a principali e risorse nella tua organizzazione. Nessuna autorizzazione viene concessa dalle SCP e dalle RCP. Per concedere le autorizzazioni, è necessario collegare le policy basate su identità o le policy basate su risorse agli utenti o ai ruoli IAM o alle risorse degli account. Per ulteriori informazioni, consulta Elementi costitutivi SRA: AWS Organizations, account e guardrail.
Utilizzare i limiti delle autorizzazioni per delegare la gestione delle autorizzazioni all'interno di un account
In alcuni scenari, è possibile che tu intenda delegare la gestione delle autorizzazioni all'interno di un account ad altri. Ad esempio, potresti consentire agli sviluppatori di creare e gestire ruoli per i loro carichi di lavoro. Quando deleghi le autorizzazioni ad altri, usa Limiti delle autorizzazioni per impostare le autorizzazioni massime delegate. Un limite delle autorizzazioni è una funzione avanzata per l'utilizzo di una policy gestita per impostare il numero massimo di autorizzazioni che una policy basata su identità può concedere a un ruolo IAM. Il limite delle autorizzazioni non concedere l'accesso di per sé. Per ulteriori informazioni, consulta Limiti delle autorizzazioni per le entità IAM.