Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Convalida e distribuisci automaticamente le policy e i ruoli IAM in un account AWS utilizzando CodePipeline IAM Access Analyzer e le macro AWS CloudFormation
Creato da Helton Ribeiro (AWS) e Guilherme Simoes (AWS)
Riepilogo
Avviso: AWS non CodeCommit è più disponibile per i nuovi clienti. I clienti esistenti di AWS CodeCommit possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni
Questo modello descrive i passaggi e fornisce il codice per creare una pipeline di distribuzione che consenta ai team di sviluppo di creare policy e ruoli AWS Identity and Access Management (IAM) nei tuoi account Amazon Web Services (AWS). Questo approccio aiuta l'organizzazione a ridurre il sovraccarico per i team operativi e ad accelerare il processo di implementazione. Inoltre, aiuta gli sviluppatori a creare ruoli e policy IAM compatibili con i controlli di governance e sicurezza esistenti.
L'approccio di questo modello utilizza AWS Identity and Access Management Access Analyzer per convalidare le policy IAM da collegare ai ruoli IAM e utilizza AWS CloudFormation per distribuire i ruoli IAM. Tuttavia, invece di modificare direttamente il file CloudFormation modello AWS, il tuo team di sviluppo crea policy e ruoli IAM in formato JSON. Una CloudFormation macro AWS trasforma questi file di policy in formato JSON in tipi di risorse AWS CloudFormation IAM prima di iniziare la distribuzione.
La pipeline di distribuzione (RolesPipeline
) ha fasi di origine, convalida e distribuzione. Durante la fase di origine, il tuo team di sviluppo invia i file JSON che contengono la definizione dei ruoli e delle policy IAM a un repository CodeCommit AWS. AWS esegue CodeBuild quindi uno script per convalidare tali file e li copia in un bucket Amazon Simple Storage Service (Amazon S3). Poiché i tuoi team di sviluppo non hanno accesso diretto al file CloudFormation modello AWS archiviato in un bucket S3 separato, devono seguire il processo di creazione e convalida del file JSON.
Infine, durante la fase di implementazione, AWS CodeDeploy utilizza uno CloudFormation stack AWS per aggiornare o eliminare le policy e i ruoli IAM in un account.
Importante
Il flusso di lavoro di questo pattern è un proof of concept (POC) e ti consigliamo di utilizzarlo solo in un ambiente di test. Se desideri utilizzare l'approccio di questo modello in un ambiente di produzione, consulta le migliori pratiche di sicurezza in IAM nella documentazione IAM e apporta le modifiche necessarie ai tuoi ruoli IAM e ai servizi AWS.
Prerequisiti e limitazioni
Prerequisiti
Un account AWS attivo.
Un bucket S3 nuovo o esistente per la
RolesPipeline
pipeline. Assicurati che le credenziali di accesso che stai utilizzando dispongano delle autorizzazioni per caricare oggetti in questo bucket.AWS Command Line Interface (AWS CLI), installata e configurata. Per ulteriori informazioni su questo argomento, consulta Installazione, aggiornamento e disinstallazione dell'interfaccia a riga di comando di AWS nella documentazione dell'interfaccia a riga di comando di AWS.
AWS Serverless Application Model (AWS SAM) Serverless Application Model (AWS) Cli, installata e configurata. Per ulteriori informazioni su questo argomento, consulta Installazione della CLI di AWS SAM nella documentazione di AWS SAM.
Python 3, installato sul computer locale. Per ulteriori informazioni su questo argomento, consulta la documentazione di Python
. Un client Git, installato e configurato.
Il GitHub
IAM roles pipeline
repository, clonato sul computer locale.Politiche e ruoli IAM esistenti in formato JSON. Per ulteriori informazioni su questo argomento, consulta il ReadMe
file nel repository Github. IAM roles pipeline
Il tuo team di sviluppatori non deve disporre delle autorizzazioni per modificare AWS CodePipeline e CodeDeploy le risorse di questa soluzione. CodeBuild
Limitazioni
Il flusso di lavoro di questo pattern è un proof of concept (POC) e ti consigliamo di utilizzarlo solo in un ambiente di test. Se desideri utilizzare l'approccio di questo modello in un ambiente di produzione, consulta le migliori pratiche di sicurezza in IAM nella documentazione IAM e apporta le modifiche necessarie ai tuoi ruoli IAM e ai servizi AWS.
Architettura
Il diagramma seguente mostra come convalidare e distribuire automaticamente i ruoli e le policy IAM su un account utilizzando IAM Access CodePipeline Analyzer e le macro AWS. CloudFormation

Il diagramma mostra il flusso di lavoro seguente:
Uno sviluppatore scrive file JSON che contengono le definizioni per le politiche e i ruoli IAM. Lo sviluppatore inserisce il codice in un CodeCommit repository e CodePipeline quindi avvia la pipeline.
RolesPipeline
CodeBuild convalida i file JSON utilizzando IAM Access Analyzer. Se vengono rilevati risultati relativi alla sicurezza o agli errori, il processo di distribuzione viene interrotto.
Se non ci sono risultati relativi alla sicurezza o agli errori, i file JSON vengono inviati al bucket S3.
RolesBucket
Una CloudFormation macro AWS implementata come funzione AWS Lambda legge quindi i file JSON dal
RolesBucket
bucket e li trasforma in tipi di risorse AWS IAM. CloudFormationUno CloudFormation stack AWS predefinito installa, aggiorna o elimina le policy e i ruoli IAM nell'account.
Automazione e scalabilità
CloudFormation I modelli AWS che implementano automaticamente questo modello sono forniti nel repository di pipeline dei ruoli GitHub IAM
Strumenti
AWS Command Line Interface (AWS CLI) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
AWS Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.
IAM Access Analyzer ti aiuta a identificare le risorse della tua organizzazione e dei tuoi account, come i bucket S3 o i ruoli IAM, che sono condivisi con un'entità esterna. Questo ti aiuta a identificare gli accessi involontari alle tue risorse e ai tuoi dati.
AWS Serverless Application Model (AWS SAM) Serverless Application Model (AWS SAM) è un framework open source che ti aiuta a creare applicazioni serverless nel cloud AWS.
Codice
Il codice sorgente e i modelli di questo modello sono disponibili nell'archivio della pipeline di ruoli GitHub IAM
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Clonare il repository di esempio. | Clona il repository della pipeline dei ruoli GitHub IAM | Sviluppatore di app, General AWS |
Attività | Descrizione | Competenze richieste |
---|---|---|
Implementa la pipeline. |
| Sviluppatore di app, General AWS |
Clona il repository della pipeline. |
| Sviluppatore di app, General AWS |
Attività | Descrizione | Competenze richieste |
---|---|---|
Testa la RolesPipeline pipeline con policy e ruoli IAM validi. |
| Sviluppatore di app, General AWS |
Testa la RolesPipeline pipeline con policy e ruoli IAM non validi. |
| Sviluppatore di app, General AWS |
Attività | Descrizione | Competenze richieste |
---|---|---|
Preparati per la pulizia. | Svuota i bucket S3 e poi esegui il comando. | Sviluppatore di app, General AWS |
Elimina lo RolesStack stack. |
| Sviluppatore di app, General AWS |
Elimina lo RolesPipeline stack. | Per eliminare lo CloudFormation stack | Sviluppatore di app, General AWS |
Risorse correlate
IAM Access Analyzer - Convalida delle policy
(AWS News Blog) Utilizzo di CloudFormation macro AWS per eseguire elaborazioni personalizzate su modelli ( CloudFormation documentazione AWS)
Creazione di funzioni Lambda con Python (documentazione AWS Lambda)