

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 AWS IAM Identity Center autorizzazioni come codice utilizzando AWS CodePipeline
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline"></a>

*André Cavalcante e Claison Amorim, Amazon Web Services*

## Riepilogo
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-summary"></a>

AWS IAM Identity Center ti aiuta a gestire centralmente l'accesso Single Sign-On (SSO) a tutte le tue applicazioni. Account 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 all'ambiente utilizzando set di autorizzazioni. AWS](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) I set di autorizzazioni si applicano agli utenti e ai gruppi federati del tuo archivio di identità 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 le assegnazioni dei set di autorizzazioni a Target Account AWS, alle unità organizzative (OUs) 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 e. AWS CodeBuild AWS CodePipeline Gestisci i set di autorizzazioni e le assegnazioni nei modelli JSON archiviati in un repository remoto. Quando EventBridge le regole di Amazon rilevano una modifica all'archivio o rilevano modifiche agli account nell'unità organizzativa di destinazione, avvia una AWS Lambda funzione. La funzione Lambda avvia la CI/CD pipeline che aggiorna i set di autorizzazioni e le assegnazioni in IAM Identity Center.

## Prerequisiti e limitazioni
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-prereqs"></a>

**Prerequisiti**
+ Un ambiente multi-account gestito come organizzazione in. AWS Organizations Per ulteriori informazioni, vedere [Creazione di un'organizzazione](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_create.html).
+ IAM Identity Center, abilitato e configurato con una fonte di identità. Per ulteriori informazioni, consulta [Getting Started](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) nella documentazione di IAM Identity Center.
+ Un account membro registrato come amministratore delegato per quanto segue: Servizi AWS
  + IAM Identity Center: per istruzioni, consulta [Registrare un account membro](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html#delegated-admin-how-to-register) nella documentazione di IAM Identity Center.
  + AWS Organizations — Per istruzioni, consulta [Amministratore delegato per AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_delegate_policies.html). Questo account deve disporre delle autorizzazioni per elencare e descrivere gli account e. OUs
**Nota**  
È necessario utilizzare lo stesso account dell'amministratore delegato per entrambi i servizi.
+ Autorizzazioni per distribuire gli AWS CloudFormation stack nell'account amministratore delegato di IAM Identity Center e nell'account di gestione dell'organizzazione. Per ulteriori informazioni, consulta [Controllare l'accesso](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) nella documentazione. CloudFormation 
+ Un bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) nell'account amministratore delegato di IAM Identity Center. Carichi il codice dell'artefatto in questo bucket. Per istruzioni, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella documentazione di Amazon S3.
+ L'ID dell'account di gestione dell'organizzazione. Per istruzioni, vedi [Ricerca del tuo Account AWS ID](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
+ Un repository nel tuo host di codice sorgente, ad esempio GitHub.

**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 IDs, l'assegnazione e i tipi principali di IAM Identity Center IDs non possono essere modificati dopo la distribuzione.
+ Questo modello consente di creare e gestire [autorizzazioni personalizzate](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetcustom.html). Non è possibile utilizzare questo modello per gestire o assegnare autorizzazioni [predefinite](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetpredefined.html).
+ Questo modello non può essere utilizzato per gestire un set di autorizzazioni per l'account di gestione dell'organizzazione.

## Architecture
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-architecture"></a>

**Architettura Target**

![Utilizzo di una CI/CD pipeline per gestire i set di autorizzazioni in IAM Identity Center.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/419aaa80-1b97-402d-9c74-c1b8c1ddd1cb/images/1f143bc4-c2c6-4ab6-8615-742fec617f18.png)


Il diagramma mostra il flusso di lavoro seguente:

1. Un utente apporta una delle seguenti modifiche:
   + Esegue il commit di una o più modifiche nell'archivio remoto, ad esempio GitHub
   + Modifica gli account nell'unità organizzativa in AWS Organizations

1. Se l'utente ha apportato una modifica all'archivio remoto al ramo principale, viene avviata la pipeline. 

   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.

1. La funzione Lambda avviata avvia la pipeline CI/CD in. CodePipeline

1. CodePipeline avvia il progetto. `TemplateValidation` CodeBuild Il `TemplateValidation` CodeBuild progetto utilizza uno script Python nel repository remoto per convalidare i modelli di set di autorizzazioni. CodeBuild convalida quanto segue:
   + I nomi dei set di autorizzazioni sono univoci.
   + L'istruzione di assegnazione IDs (`Sid`) è unica.
   + Definizioni delle politiche nel `CustomPolicy` parametro e valide. (Questa convalida utilizza AWS Identity and Access Management Access Analyzer.)
   + Gli Amazon Resource Names (ARNs) delle policy gestite sono validi.

1. Il gruppo di `PermissionSet` azioni del `Deploy` CodeBuild progetto utilizza AWS SDK per Python (Boto3) per eliminare, creare o aggiornare i set di autorizzazioni in IAM Identity Center. Sono interessati solo i set di autorizzazioni con il `SSOPipeline:true` tag. Tutti i set di autorizzazioni gestiti tramite questa pipeline hanno questo tag.

1. Il gruppo di `Assignments` azioni del `Deploy` 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 Amazon S3 nello stesso account.

1. CodeBuild aggiorna i set di autorizzazioni e le assegnazioni in IAM Identity Center.

**Automazione e scalabilità**

Poiché tutti i nuovi account in un ambiente con più account vengono spostati in un'unità organizzativa specifica nel 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 ridimensionamento 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.

## Tools (Strumenti)
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-tools"></a>

**Servizi AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ti aiuta a configurare AWS le risorse, fornirle in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita tra e. Account AWS Regioni AWS
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)è un servizio di compilazione completamente gestito che consente di compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per l'implementazione. 
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)ti aiuta a modellare e configurare rapidamente le diverse fasi di una versione del software e ad automatizzare i passaggi necessari per rilasciare continuamente le modifiche al software.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) è 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, AWS Lambda funzioni, endpoint di invocazione HTTP che utilizzano destinazioni API o bus di eventi in altro modo. Account AWS
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ti aiuta a gestire centralmente l'accesso Single Sign-On (SSO) a tutte le tue applicazioni e a quelle cloud. Account AWS 
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)è un servizio di gestione degli account che consente di consolidare più account Account AWS in un'organizzazione da creare e gestire centralmente.
+ [AWS SDK per Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)è un kit di sviluppo software che ti aiuta a integrare la tua applicazione, libreria o script Python con. Servizi AWS
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Deposito di codice**

Il codice per questo pattern è disponibile nel repository [aws-iam-identity-center-pipeline](https://github.com/aws-samples/aws-iam-identity-center-pipeline). La cartella templates nel repository include modelli di esempio sia per i set di autorizzazioni che per le assegnazioni. Include anche AWS CloudFormation modelli per la distribuzione della CI/CD pipeline e AWS delle risorse negli account di destinazione.

## Best practice
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-best-practices"></a>
+ Prima di iniziare a modificare il set di autorizzazioni e i modelli di assegnazione, si consiglia di pianificare i set di autorizzazioni per l'organizzazione. Considera quali dovrebbero essere le autorizzazioni, a quali account o OUs set di autorizzazioni dovrebbe applicarsi e quali principali di IAM Identity Center (utenti o gruppi) dovrebbero essere interessati dal set di autorizzazioni. I nomi dei set di autorizzazioni, le associazioni IDs e i tipi principali di IAM Identity Center IDs 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e alla sicurezza nella documentazione](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) AWS Identity and Access Management (IAM).

## Epiche
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-epics"></a>

### Pianifica set di autorizzazioni e assegnazioni
<a name="plan-permission-sets-and-assignments"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clonare il repository. | In una shell bash, inserisci il seguente comando. Questo clona il repository [aws-iam-identity-center-pipeline da](https://github.com/aws-samples/aws-iam-identity-center-pipeline). GitHub<pre>git clone https://github.com/aws-samples/aws-iam-identity-center-pipeline.git</pre> | DevOps ingegnere | 
| Definire i set di autorizzazioni. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps ingegnere | 
| Definisci gli incarichi. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps ingegnere | 

### Distribuisci i set di autorizzazioni e le assegnazioni
<a name="deploy-the-permission-sets-and-assignments"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Implementa le risorse nell'account amministratore delegato di IAM Identity Center. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps ingegnere | 
| Distribuisci le risorse nell'account AWS Organizations di gestione. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps ingegnere | 
| Completa la configurazione del repository remoto. | Modifica lo stato della AWS CodeConnections connessione da `PENDING` a`AVAILABLE`. Questa connessione è stata creata quando hai distribuito lo CloudFormation stack. Per istruzioni, consulta [Aggiornare una connessione in sospeso nella documentazione](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html). CodeConnections  | DevOps ingegnere | 
| Carica i file nell'archivio remoto. | Carica tutti i file che hai scaricato dal `aws-samples` repository e modificato nei passaggi precedenti nell'archivio remoto. Le modifiche al `main` ramo avviano la pipeline, che crea o aggiorna i set di autorizzazioni e le assegnazioni. | DevOps ingegnere | 

### Aggiornamento dei set di autorizzazioni e delle assegnazioni
<a name="updating-the-permission-sets-and-assignments"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Aggiorna i set di autorizzazioni e le assegnazioni. | Quando la EventBridge regola `MoveAccount` Amazon rileva modifiche agli account dell'organizzazione, la CI/CD pipeline si avvia automaticamente e aggiorna i set di autorizzazioni. Ad esempio, se aggiungi un account a un'unità organizzativa specificata nel file JSON delle assegnazioni, la CI/CD pipeline applicherà il set di autorizzazioni al nuovo account.<br />Se desideri modificare i set di autorizzazioni e le assegnazioni distribuiti, aggiorna i file JSON e quindi esegui il commit nell'archivio remoto. <br />Tieni presente quanto segue quando utilizzi la CI/CD pipeline per gestire i set di autorizzazioni e le associazioni precedentemente distribuiti:[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps ingegnere | 

## risoluzione dei problemi
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-troubleshooting"></a>


| 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) 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.[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | 

## Risorse correlate
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-resources"></a>
+ [Set di autorizzazioni](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) (documentazione IAM Identity Center)