SEC03-BP09 Condivisione sicura delle risorse con terze parti
La sicurezza dell'ambiente cloud non si ferma alla tua organizzazione. L'organizzazione potrebbe affidare a terzi la gestione di una parte dei dati. La gestione dei permessi per il sistema gestito da terzi deve seguire la pratica dell'accesso just-in-time utilizzando il principio del privilegio minimo con credenziali temporanee. Lavorando a stretto contatto con una terza parte, puoi ridurre congiuntamente la portata dell'impatto e il rischio di accesso non intenzionale.
Risultato desiderato: le credenziali AWS Identity and Access Management (IAM) a lungo termine, le chiavi di accesso IAM e le chiavi segrete associate a un utente possono essere utilizzate da chiunque, purché le credenziali siano valide e attive. L'utilizzo di credenziali temporanee e di un ruolo IAM consente di migliorare la sicurezza generale riducendo l'impegno per la manutenzione delle credenziali a lungo termine, compresi i costi di gestione e di funzionamento di questi dati sensibili. Utilizzando un identificatore univoco universale (UUID) per l'ID esterno nella policy di attendibilità IAM e mantenendo sotto il proprio controllo le policy IAM collegate al ruolo IAM, puoi sottoporre a audit e verificare che l'accesso concesso a terzi non sia troppo permissivo. Per una guida prescrittiva sull'analisi delle risorse condivise dall'esterno, consulta SEC03-BP07 Analisi dell'accesso pubblico e multi-account.
Anti-pattern comuni:
-
Utilizzo della policy di attendibilità IAM predefinita senza alcuna condizione.
-
Utilizzo di credenziali IAM e chiavi di accesso a lungo termine.
-
Riutilizzo di ID esterni.
Livello di rischio associato se questa best practice non fosse adottata: medio
Guida all'implementazione
In alcuni casi, può essere necessario condividere le risorse al di fuori di AWS Organizations o concedere a terzi l'accesso alle risorse stesse. Ad esempio, una terza parte potrebbe fornire una soluzione di monitoraggio che necessita di accedere alle risorse del tuo account. In questi casi, devi creare un ruolo IAM multi-account con i soli privilegi necessari alla terza parte. Inoltre, devi definire una policy di attendibilità utilizzando la condizione di ID esterno. L'utilizzo di un ID esterno da parte tua o della terza parte può comportare la generazione di un ID univoco per ogni cliente, terza parte o tenancy. Una volta creato, l'ID univoco non deve essere controllato da nessuno, se non da te. La terza parte deve implementare un processo per collegare l'ID esterno al cliente in modo sicuro, verificabile e riproducibile.
Puoi anche utilizzare IAM Roles Anywhere per gestire ruoli IAM per le applicazioni esterne ad AWS che utilizzano le API AWS.
Se la terza parte non ha più bisogno di accedere al tuo ambiente, rimuovi il ruolo. Evita di fornire a terze parti credenziali a lungo termine. Mantieni la visibilità degli altri servizi AWS che supportano la condivisione. Ad esempio, AWS Well-Architected Tool consente la condivisione di un carico di lavoro con altri Account AWS e AWS Resource Access Manager ti aiuta a condividere in modo sicuro una risorsa AWS di tua proprietà con altri account.
Passaggi dell'implementazione
-
Utilizzare i ruoli multi-account per fornire l'accesso agli account esterni.
I ruoli multi-account riducono la quantità di informazioni sensibili archiviate da account esterni e da terze parti per l'assistenza ai propri clienti. I ruoli multi-account consentono di concedere l'accesso alle risorse AWS del proprio account in modo sicuro a terzi, come i AWS Partner o altri account dell'organizzazione, mantenendo la possibilità di gestire e sottoporre a audit tale accesso.
La terza parte può fornire il servizio da un'infrastruttura ibrida o, in alternativa, estrarre i dati in una sede esterna. IAM Roles Anywhere consente ai carichi di lavoro di terze parti di interagire in modo sicuro con i carichi di lavoro AWS e di ridurre ulteriormente la necessità di credenziali a lungo termine.
Non devi utilizzare credenziali a lungo termine o chiavi di accesso associate agli utenti per fornire accesso ad account esterni. Per fornire l'accesso multi-account invece, occorre utilizzare i ruoli multi-account.
-
Utilizzare un ID esterno con terze parti.
L'utilizzo di un ID esterno consente di designare chi può assumere un ruolo in una policy di attendibilità IAM. La policy di attendibilità può richiedere che l'utente che assume il ruolo dichiari la condizione e l'obiettivo in cui sta operando. Inoltre, il proprietario dell'account può consentire l'assunzione del ruolo solo in determinate circostanze. La funzione principale dell'ID esterno è quella di affrontare e prevenire il problema del confused deputy.
Utilizza un ID esterno se sei il proprietario di un Account AWS e hai configurato un ruolo per una terza parte che accede ad altri Account AWS oltre al tuo, oppure quando ti trovi nella posizione di assumere ruoli per conto di diversi clienti. Collabora con la terza parte o con il AWS Partner per stabilire una condizione di ID esterno da includere nelle policy di attendibilità IAM.
-
Utilizzare ID esterni universalmente univoci.
Implementa un processo che generi un valore univoco casuale per un ID esterno, ad esempio un identificatore univoco universale (UUID). Una terza parte che riutilizza gli ID esterni tra diversi clienti non risolve il problema del confused deputy, perché il cliente A potrebbe essere in grado di visualizzare i dati del cliente B utilizzando l'ARN del ruolo del cliente B insieme all'ID esterno duplicato. In un ambiente multi-tenant, in cui una terza parte supporta più clienti con diversi Account AWS, la terza parte deve utilizzare un ID univoco diverso come ID esterno per ogni Account AWS. La terza parte è responsabile del rilevamento di ID esterni duplicati e della mappatura sicura di ciascun cliente al rispettivo ID esterno. La terza parte deve verificare di poter assumere il ruolo solo quando specifica l'ID esterno. La terza parte deve astenersi dal memorizzare l'ARN del ruolo del cliente e l'ID esterno fino a quando non è richiesto l'ID esterno.
L'ID esterno non viene trattato come un segreto, ma non deve essere un valore facilmente individuabile, come un numero di telefono, un nome o un ID di account. Rendi l'ID esterno un campo di sola lettura, in modo che non possa essere modificato per rappresentare la configurazione.
L'ID esterno può essere generato da te o dalla terza parte. Definisci un processo per stabilire chi è responsabile della generazione dell'ID. Indipendentemente dall'entità che crea l'ID esterno, la terza parte fa rispettare l'unicità e i formati in modo coerente tra i clienti.
-
Rendere obsolete le credenziali a lungo termine fornite dal cliente.
Rendi obsoleto l'uso di credenziali a lungo termine e utilizza ruoli multi-account oppure IAM Roles Anywhere. Se devi utilizzare credenziali a lungo termine, stabilisci un piano per migrare verso l'accesso basato sui ruoli. Per dettagli sulla gestione delle chiavi, consulta Identity Management (Gestione dell'identità). Collaborare inoltre con il team dell'Account AWS e con la terza parte per stabilire un runbook di mitigazione dei rischi. Per una guida prescrittiva sulla risposta e la mitigazione dell'impatto potenziale di un incidente di sicurezza, consulta Incident response (Risposta agli incidenti).
-
Verifica che l'impostazione abbia una guida prescrittiva o sia automatizzata.
La policy creata per l'accesso multi-account deve seguire il principio del privilegio minimo. La terza parte deve fornire un documento sulla policy del ruolo o un meccanismo di configurazione automatica che utilizzi un modello AWS CloudFormation o un equivalente per l'utente. In questo modo si riduce la possibilità di errori associati alla creazione manuale della policy e si offre una traccia verificabile. Per ulteriori informazioni sull'utilizzo di un modello AWS CloudFormation per creare ruoli trasversali agli account, consulta Cross-Account Roles
(Ruoli multi-account). La terza parte deve fornire un meccanismo di configurazione automatizzato e verificabile. Tuttavia, utilizzando il documento della policy sui ruoli che delinea gli accessi necessari, è possibile automatizzare l'impostazione del ruolo. Con un modello AWS CloudFormation o equivalente, è necessario monitorare le modifiche con il rilevamento delle derive come parte della pratica di audit.
-
Account per le modifiche.
La struttura del tuo account, la tua necessità di una terza parte o l'offerta di servizi che ti viene fornita possono cambiare. Occorre anticipare i cambiamenti e i fallimenti e pianificare di conseguenza con le persone, i processi e le tecnologie adeguati. Sottoponi periodicamente a audit il livello di accesso fornito e implementa metodi di rilevamento per avvisare l'utente di cambiamenti inattesi. Monitora e sottoponi a audit l'uso del ruolo e del datastore degli ID esterni. Devi essere pronto a revocare l'accesso a terzi, in modo temporaneo o permanente, in seguito a modifiche o modelli di accesso imprevisti. Inoltre, valuta l'impatto dell'operazione di revoca, compreso il tempo necessario per eseguirla, le persone coinvolte, il costo e l'impatto su altre risorse.
Per una guida prescrittiva sui metodi di rilevamento, consulta Best practice di rilevamento.
Risorse
Best practice correlate:
Documenti correlati:
-
How to use trust policies with IAM roles
(Come utilizzare le policy di attendibilità con i ruoli IAM) -
How do I access resources in another Account AWS using IAM?
(Come faccio ad accedere alle risorse di un altro account AWS utilizzando IAM?) -
Come utilizzare un ID esterno quando si concede a una terza parte l'accesso alle proprie risorse AWS
-
Collecting Information from AWS CloudFormation Resources Created in External Accounts with Custom Resources
(Raccolta di informazioni dalle risorse AWS CloudFormation create in account esterni con risorse personalizzate) -
Securely Using External ID for Accessing AWS Accounts Owned by Others
(Utilizzo sicuro dell'ID esterno per l'accesso agli account AWS di proprietà di altri) -
Extend IAM roles to workloads outside of IAM with IAM Roles Anywhere
(Estendere i ruoli IAM a carichi di lavoro esterni a IAM con IAM Roles Anywhere)
Video correlati:
-
How do I allow users or roles in a separate Account AWS access to my Account AWS?
(Come posso consentire agli utenti o ai ruoli di un account AWS separato di accedere al mio account AWS?) -
AWS re:Invent 2018: Become an IAM Policy Master in 60 Minutes or Less
(Diventa un IAM Policy Master in 60 minuti) -
AWS Knowledge Center Live: IAM Best Practices and Design Decisions
(Knowledge Center AWS in diretta: best practice e decisioni di progettazione IAM)
Esempi correlati:
-
Well-Architected Lab - Lambda cross account IAM role assumption (Level 300)
[Well-Architected Lab: Assunzione di ruoli IAM per account incrociati Lambda (livello 300)] -
Configure cross-account access to Amazon DynamoDB (Configurare l'accesso multi-account ad Amazon DynamoDB)
-
AWS STS Network Query Tool
(Strumento di consultazione della rete AWS STS)