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à.
Gestisci i set di autorizzazioni di AWS IAM Identity Center come codice utilizzando AWS CodePipeline
Creato da Andre Cavalcante (AWS) e Claison Amorim (AWS)
Archivio aws-iam-identity-centerdi | Ambiente: produzione | Tecnologie: sicurezza, identità, conformità; DevOps |
Servizi AWS: AWS CodeBuild; AWS CodeCommit; AWS CodePipeline; AWS IAM Identity Center |
Riepilogo
AWS IAM Identity Center (successore di AWS Single Sign-On) ti aiuta a gestire centralmente l'accesso Single Sign-On (SSO) a tutti i tuoi account e applicazioni AWS. Puoi creare e gestire le identità degli utenti in IAM Identity Center oppure puoi connettere una fonte di identità esistente, come un dominio Microsoft Active Directory o un provider di identità esterno (IdP). IAM Identity Center offre un'esperienza di amministrazione unificata per definire, personalizzare e assegnare un accesso granulare al tuo ambiente AWS utilizzando set di autorizzazioni. I set di autorizzazioni si applicano agli utenti e ai gruppi federati del tuo archivio di identità AWS IAM Identity Center o del tuo IdP esterno.
Questo modello ti aiuta a gestire i set di autorizzazioni IAM Identity Center come codice nel tuo ambiente multi-account gestito come organizzazione in AWS Organizations. Con questo modello, puoi ottenere quanto segue:
Creare, eliminare e aggiornare i set di autorizzazioni
Crea, aggiorna o elimina assegnazioni di set di autorizzazioni destinate ad account AWS, unità organizzative (OU) o alla radice dell'organizzazione.
Per gestire le autorizzazioni e le assegnazioni di IAM Identity Center come codice, questa soluzione implementa una pipeline di integrazione e distribuzione continua (CI/CD) che utilizza AWS, AWS e CodeCommit AWS. CodeBuild CodePipeline Gestisci i set di autorizzazioni e le assegnazioni nei modelli JSON archiviati nel repository. CodeCommit Quando EventBridge le regole di Amazon rilevano una modifica al repository o rilevano modifiche agli account nell'unità organizzativa di destinazione, avvia una funzione AWS Lambda. La funzione Lambda avvia la pipeline CI/CD che aggiorna i set di autorizzazioni e le assegnazioni in IAM Identity Center.
Prerequisiti e limitazioni
Prerequisiti
Un ambiente multi-account gestito come organizzazione in AWS Organizations. Per ulteriori informazioni, consulta Creazione di un'organizzazione.
IAM Identity Center, abilitato e configurato con una fonte di identità. Per ulteriori informazioni, consulta Getting Started nella documentazione di IAM Identity Center.
Un account membro registrato come amministratore delegato per IAM Identity Center. Per istruzioni, consulta Registrare un account membro nella documentazione di IAM Identity Center.
Autorizzazioni per distribuire gli CloudFormation stack AWS nell'account amministratore delegato di IAM Identity Center e nell'account di gestione dell'organizzazione. Per ulteriori informazioni, consulta Controllare l'accesso nella documentazione. CloudFormation
Un bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) nell'Identity Center ha delegato l'amministratore a caricare il codice dell'artefatto. Per istruzioni, consulta Creazione di un bucket.
L'ID dell'account di gestione dell'organizzazione. Per istruzioni, consulta Finding your AWS account ID.
Limitazioni
Questo modello non può essere utilizzato per gestire o assegnare set di autorizzazioni per ambienti con account singolo o per account che non sono gestiti come organizzazione in AWS Organizations.
I nomi dei set di autorizzazioni, gli ID di assegnazione e i tipi e gli ID principali di IAM Identity Center non possono essere modificati dopo la distribuzione.
Questo modello consente di creare e gestire autorizzazioni personalizzate. Non è possibile utilizzare questo modello per gestire o assegnare autorizzazioni predefinite.
Questo modello non può essere utilizzato per gestire un set di autorizzazioni per l'account di gestione dell'organizzazione.
Architettura
Stack tecnologico
AWS CodeBuild
AWS CodeCommit
AWS CodePipeline
Amazon EventBridge
AWS Identity Center
AWS Lambda
AWS Organizations
Architettura Target
![Utilizzo della pipeline CI/CD e del CodeCommit repository AWS per gestire i set di autorizzazioni in AWS IAM Identity Center.](images/pattern-img/419aaa80-1b97-402d-9c74-c1b8c1ddd1cb/images/3d671cf3-329b-4292-aa2d-1027886074f4.png)
Il diagramma mostra il flusso di lavoro seguente:
Un utente apporta una delle seguenti modifiche:
Apporta una o più modifiche al repository CodeCommit
Modifica gli account nell'unità organizzativa (OU) in AWS Organizations
Se l'utente ha apportato una modifica all' CodeCommit archivio, la
CodeChange
EventBridge regola rileva la modifica e avvia una funzione Lambda nell'account amministratore delegato di IAM Identity Center. La regola non reagisce alle modifiche di determinati file del repository, ad esempio il file.README.md
Se l'utente ha modificato gli account nell'unità organizzativa, la
MoveAccount
EventBridge regola rileva la modifica e avvia una funzione Lambda nell'account di gestione dell'organizzazione.La funzione Lambda avviata avvia la pipeline CI/CD in. CodePipeline
CodePipeline
CodebuildTemplateValidation
CodeBuild avvia il progetto.Il
CodebuildTemplateValidation
CodeBuild progetto utilizza uno script Python nel CodeCommit repository per convalidare i modelli di set di autorizzazioni. CodeBuild convalida quanto segue:I nomi dei set di autorizzazioni sono univoci.
Gli ID dell'istruzione di assegnazione (
Sid
) sono unici.Definizioni delle politiche nel
CustomPolicy
parametro e valide. (Questa convalida utilizza AWS Identity and Access Management Access Analyzer).Gli Amazon Resource Names (ARN) delle policy gestite sono validi.
Il
CodebuildPermissionSet
CodeBuild progetto utilizza AWS SDK for Python (Boto3) per eliminare, creare o aggiornare i set di autorizzazioni in IAM Identity Center. Sono interessati solo i set di autorizzazioni con il tag.SSOPipeline:true
Tutti i set di autorizzazioni gestiti tramite questa pipeline hanno questo tag.Il
CodebuildAssignments
CodeBuild progetto utilizza Terraform per eliminare, creare o aggiornare le assegnazioni in IAM Identity Center. I file di stato del backend Terraform sono archiviati in un bucket S3 nello stesso account.CodeBuild assume un ruolo
lookup
IAM nell'account di gestione dell'organizzazione. Richiama le organizzazioni e le API identitystoreper elencare le risorse necessarie per concedere o revocare le autorizzazioni. CodeBuild aggiorna i set di autorizzazioni e le assegnazioni in IAM Identity Center.
Automazione e scalabilità
Poiché tutti i nuovi account in un ambiente multi-account vengono spostati in un'unità organizzativa specifica in AWS Organizations, questa soluzione viene eseguita automaticamente e concede i set di autorizzazioni richiesti a tutti gli account specificati nei modelli di assegnazione. Non sono necessarie automazioni o azioni di scalabilità aggiuntive.
In ambienti di grandi dimensioni, il numero di richieste API a IAM Identity Center potrebbe rallentare l'esecuzione di questa soluzione. Terraform e Boto3 gestiscono automaticamente il throttling per ridurre al minimo qualsiasi peggioramento delle prestazioni.
Strumenti
Servizi AWS
AWS ti CloudFormation aiuta a configurare le risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita su account e regioni AWS.
AWS CodeBuild è un servizio di build completamente gestito che ti aiuta a compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per la distribuzione.
AWS CodeCommit è un servizio di controllo delle versioni che consente di archiviare e gestire archivi Git in modo privato, senza dover gestire il proprio sistema di controllo del codice sorgente.
AWS ti CodePipeline aiuta a modellare e configurare rapidamente le diverse fasi di un rilascio di software e ad automatizzare i passaggi necessari per rilasciare continuamente le modifiche al software.
Amazon EventBridge è un servizio di bus eventi senza server che ti aiuta a connettere le tue applicazioni con dati in tempo reale provenienti da una varietà di fonti. Ad esempio, funzioni AWS Lambda, endpoint di invocazione HTTP che utilizzano destinazioni API o bus di eventi in altri account AWS.
AWS IAM Identity Center ti aiuta a gestire centralmente l'accesso Single Sign-On (SSO) a tutti i tuoi account AWS e applicazioni cloud.
AWS Organizations è un servizio di gestione degli account che ti aiuta a consolidare più account AWS in un'organizzazione da creare e gestire centralmente.
AWS SDK for Python (
Boto3) è un kit di sviluppo software che ti aiuta a integrare l'applicazione, la libreria o lo script Python con i servizi AWS. Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
Repository di codice
Il codice per questo pattern è disponibile nel repository aws-iam-identity-center-pipeline
Best practice
Prima di iniziare a modificare il set di autorizzazioni e i modelli di assegnazione, ti consigliamo di pianificare i set di autorizzazioni per la tua organizzazione. Considerate quali devono essere le autorizzazioni, a quali account o unità organizzative deve applicarsi il set di autorizzazioni e quali principali di IAM Identity Center (utenti o gruppi) devono essere interessati dal set di autorizzazioni. I nomi dei set di autorizzazioni, gli ID delle associazioni e i tipi e gli ID principali di IAM Identity Center non possono essere modificati dopo la distribuzione.
Rispetta il principio del privilegio minimo e concedi le autorizzazioni minime necessarie per eseguire un'attività. Per ulteriori informazioni, consulta le best practice relative alla concessione dei privilegi minimi e alla sicurezza nella documentazione IAM.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Clonare il repository. | In una shell bash, inserisci il seguente comando. Questo clona il repository aws-iam-identity-center-pipeline da
| DevOps ingegnere |
Definire i set di autorizzazioni. |
| DevOps ingegnere |
Definisci gli incarichi. |
| DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Carica i file in un bucket S3. |
| DevOps ingegnere |
Implementa le risorse nell'account amministratore delegato di IAM Identity Center. |
| DevOps ingegnere |
Distribuisci risorse nell'account di gestione di AWS Organization. |
| DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Aggiorna i set di autorizzazioni e le assegnazioni. | Quando la EventBridge regola Se desideri modificare i set di autorizzazioni e le assegnazioni distribuiti, aggiorna i file JSON e poi esegui il commit nell' CodeCommit archivio nell'account amministratore delegato di IAM Identity Center. Per istruzioni, consulta Creare un commit nella documentazione. CodeCommit Tenete presente quanto segue quando utilizzate la pipeline CI/CD per gestire i set di autorizzazioni e le associazioni precedentemente distribuiti:
| DevOps ingegnere |
Risoluzione dei problemi
Problema | Soluzione |
---|---|
Errori di accesso negato | Conferma di disporre delle autorizzazioni necessarie per distribuire i CloudFormation modelli e le risorse definite al loro interno. Per ulteriori informazioni, consulta Controllo dell'accesso nella CloudFormation documentazione. |
Errori della pipeline nella fase di convalida | Questo errore viene visualizzato se sono presenti errori nel set di autorizzazioni o nei modelli di assegnazione.
|
Risorse correlate
Set di autorizzazioni (documentazione IAM Identity Center)