

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Gérez les ensembles AWS IAM Identity Center d'autorisations sous forme de code en utilisant AWS CodePipeline
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline"></a>

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

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

AWS IAM Identity Center vous permet de gérer de manière centralisée l'accès par authentification unique (SSO) à toutes vos applications Comptes AWS et applications. Vous pouvez créer et gérer les identités des utilisateurs dans IAM Identity Center, ou vous pouvez connecter une source d'identité existante, telle qu'un domaine Microsoft Active Directory ou un fournisseur d'identité externe (IdP). [IAM Identity Center fournit une expérience d'administration unifiée permettant de définir, de personnaliser et d'attribuer un accès précis à votre AWS environnement à l'aide d'ensembles d'autorisations.](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) Les ensembles d'autorisations s'appliquent aux utilisateurs et aux groupes fédérés à partir de votre banque d'identités IAM Identity Center ou de votre IdP externe.

Ce modèle vous aide à gérer les ensembles d'autorisations IAM Identity Center sous forme de code dans votre environnement multi-comptes géré en tant qu'organisation dans. AWS Organizations Avec ce modèle, vous pouvez obtenir les résultats suivants :
+ Création, suppression et mise à jour d'ensembles d'autorisations
+ Créez, mettez à jour ou supprimez des attributions d'ensembles d'autorisations pour Target Comptes AWS, les unités organisationnelles (OUs) ou la racine de votre organisation.

Pour gérer les autorisations et les attributions d'IAM Identity Center sous forme de code, cette solution déploie un pipeline d'intégration et de livraison continues (CI/CD) qui utilise et. AWS CodeBuild AWS CodePipeline Vous gérez les ensembles d'autorisations et les attributions dans les modèles JSON que vous stockez dans un référentiel distant. Lorsque EventBridge les règles Amazon détectent une modification du référentiel ou détectent des modifications apportées aux comptes dans l'unité d'organisation cible, une AWS Lambda fonction démarre. La fonction Lambda lance le CI/CD pipeline qui met à jour les ensembles d'autorisations et les attributions dans IAM Identity Center.

## Conditions préalables et limitations
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-prereqs"></a>

**Conditions préalables**
+ Un environnement multi-comptes géré en tant qu'organisation dans AWS Organizations. Pour plus d'informations, consultez la section [Création d'une organisation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_create.html).
+ IAM Identity Center, activé et configuré avec une source d'identité. Pour plus d'informations, consultez [Getting Started](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) dans la documentation d'IAM Identity Center.
+ Un compte de membre enregistré en tant qu'administrateur délégué pour les tâches suivantes Services AWS :
  + IAM Identity Center : pour obtenir des instructions, voir [Enregistrer un compte membre](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html#delegated-admin-how-to-register) dans la documentation du IAM Identity Center.
  + AWS Organizations — Pour obtenir des instructions, consultez la section [Administrateur délégué pour AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_delegate_policies.html). Ce compte doit être autorisé à répertorier et à décrire les comptes et OUs.
**Note**  
Vous devez utiliser le même compte que l'administrateur délégué pour les deux services.
+ Autorisations permettant de déployer AWS CloudFormation des piles dans le compte d'administrateur délégué d'IAM Identity Center et dans le compte de gestion de l'organisation. Pour plus d'informations, consultez la section [Contrôle de l'accès](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) dans la CloudFormation documentation.
+ Un compartiment Amazon Simple Storage Service (Amazon S3) dans le compte d'administrateur délégué d'IAM Identity Center. Vous chargez le code de l'artefact dans ce compartiment. Pour obtenir des instructions, consultez [la section Création d'un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dans la documentation Amazon S3.
+ L'identifiant du compte de gestion de l'organisation. Pour obtenir des instructions, consultez [la section Trouver votre Compte AWS identifiant](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
+ Un référentiel dans votre hôte de code source, tel que GitHub.

**Limites**
+ Ce modèle ne peut pas être utilisé pour gérer ou attribuer des ensembles d'autorisations pour des environnements à compte unique ou pour des comptes qui ne sont pas gérés en tant qu'organisation dans AWS Organizations.
+ Les noms des ensembles d'autorisations, les IDs attributions et les principaux types de centres d'identité IAM IDs ne peuvent pas être modifiés après le déploiement.
+ Ce modèle vous permet de créer et de gérer [des autorisations personnalisées](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetcustom.html). Vous ne pouvez pas utiliser ce modèle pour gérer ou attribuer des [autorisations prédéfinies](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetpredefined.html).
+ Ce modèle ne peut pas être utilisé pour gérer un ensemble d'autorisations pour le compte de gestion de l'organisation.

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

**Architecture cible**

![Utilisation d'un CI/CD pipeline pour gérer les ensembles d'autorisations dans IAM Identity Center.](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/419aaa80-1b97-402d-9c74-c1b8c1ddd1cb/images/1f143bc4-c2c6-4ab6-8615-742fec617f18.png)


Le schéma suivant illustre le flux de travail suivant :

1. Un utilisateur effectue l'une des modifications suivantes :
   + Valide une ou plusieurs modifications apportées au référentiel distant, telles que GitHub
   + Modifie les comptes de l'unité d'organisation dans AWS Organizations

1. Si l'utilisateur a transféré une modification du référentiel distant à la branche principale, le pipeline démarre. 

   Si l'utilisateur a modifié les comptes dans l'unité d'organisation, la `MoveAccount` EventBridge règle détecte le changement et lance une fonction Lambda dans le compte de gestion de l'organisation.

1. La fonction Lambda initiée démarre le CI/CD pipeline dans. CodePipeline

1. CodePipeline lance le `TemplateValidation` CodeBuild projet. Le `TemplateValidation` CodeBuild projet utilise un script Python dans le référentiel distant pour valider les modèles d'ensembles d'autorisations. CodeBuild valide les éléments suivants :
   + Les noms des ensembles d'autorisations sont uniques.
   + Les instructions d'affectation IDs (`Sid`) sont uniques.
   + Définitions de politique dans le `CustomPolicy` paramètre et valides. (Cette validation utilise AWS Identity and Access Management Access Analyzer.)
   + Les Amazon Resource Names (ARNs) des politiques gérées sont valides.

1. Le groupe `PermissionSet` d'actions du `Deploy` CodeBuild projet permet de AWS SDK pour Python (Boto3) supprimer, de créer ou de mettre à jour les ensembles d'autorisations dans IAM Identity Center. Seuls les ensembles d'autorisations comportant le `SSOPipeline:true` tag sont concernés. Tous les ensembles d'autorisations gérés via ce pipeline possèdent cette balise.

1. Le groupe `Assignments` d'action du `Deploy` CodeBuild projet utilise Terraform pour supprimer, créer ou mettre à jour les attributions dans IAM Identity Center. Les fichiers d'état du backend Terraform sont stockés dans un compartiment Amazon S3 du même compte.

1. CodeBuild met à jour les ensembles d'autorisations et les attributions dans IAM Identity Center.

**Automatisation et évolutivité**

Étant donné que tous les nouveaux comptes d'un environnement multi-comptes sont déplacés vers une unité organisationnelle spécifique AWS Organizations, cette solution s'exécute automatiquement et accorde les ensembles d'autorisations requis à tous les comptes que vous spécifiez dans les modèles d'attribution. Aucune automatisation ou action de dimensionnement supplémentaire n'est nécessaire.

Dans les grands environnements, le nombre de demandes d'API adressées à IAM Identity Center peut ralentir le fonctionnement de cette solution. Terraform et Boto3 gèrent automatiquement la régulation afin de minimiser toute dégradation des performances.

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

**Services AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)vous aide à configurer les AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie à travers Comptes AWS et Régions AWS.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)est un service de génération entièrement géré qui vous aide à compiler le code source, à exécuter des tests unitaires et à produire des artefacts prêts à être déployés. 
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)vous permet de modéliser et de configurer rapidement les différentes étapes d'une version logicielle et d'automatiser les étapes nécessaires à la publication continue des modifications logicielles.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources. Par exemple, des AWS Lambda fonctions, des points de terminaison d'invocation HTTP utilisant des destinations d'API ou des bus d'événements dans d'autres. Comptes AWS
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)vous permet de gérer de manière centralisée l'accès par authentification unique (SSO) à toutes vos applications Comptes AWS et à celles du cloud.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)est un service de gestion de comptes qui vous aide à Comptes AWS en regrouper plusieurs au sein d'une organisation que vous créez et gérez de manière centralisée.
+ [AWS SDK pour Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)est un kit de développement logiciel qui vous aide à intégrer votre application, bibliothèque ou script Python à Services AWS.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

**Référentiel de code**

Le code de ce modèle est disponible dans le référentiel [aws-iam-identity-center-pipeline](https://github.com/aws-samples/aws-iam-identity-center-pipeline). Le dossier des modèles du référentiel contient des exemples de modèles pour les ensembles d'autorisations et les attributions. Il inclut également des AWS CloudFormation modèles pour déployer le CI/CD pipeline et AWS les ressources dans les comptes cibles.

## Bonnes pratiques
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-best-practices"></a>
+ Avant de commencer à modifier le jeu d'autorisations et les modèles d'attribution, nous vous recommandons de planifier des ensembles d'autorisations pour votre organisation. Déterminez quelles devraient être les autorisations, à quels comptes ou OUs ensemble d'autorisations devraient s'appliquer, et quels principaux du centre d'identité IAM (utilisateurs ou groupes) devraient être concernés par l'ensemble d'autorisations. Les noms des ensembles d'autorisations, les associations IDs et les types principaux du centre d'identité IAM IDs ne peuvent pas être modifiés après le déploiement.
+ Respectez le principe du moindre privilège et accordez les autorisations minimales requises pour effectuer une tâche. Pour plus d'informations, consultez les sections [Accorder le moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) et [Bonnes pratiques en matière de sécurité](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) dans la documentation Gestion des identités et des accès AWS (IAM).

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

### Planifier les ensembles d'autorisations et les attributions
<a name="plan-permission-sets-and-assignments"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Pour cloner le référentiel. | Dans un shell bash, entrez la commande suivante. Cela clone le référentiel [aws-iam-identity-center-pipeline à partir](https://github.com/aws-samples/aws-iam-identity-center-pipeline) de. GitHub<pre>git clone https://github.com/aws-samples/aws-iam-identity-center-pipeline.git</pre> | DevOps ingénieur | 
| Définissez les ensembles d'autorisations. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps ingénieur | 
| Définissez les missions. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps ingénieur | 

### Déployer les ensembles d'autorisations et les attributions
<a name="deploy-the-permission-sets-and-assignments"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez des ressources dans le compte d'administrateur délégué d'IAM Identity Center. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps ingénieur | 
| Déployez des ressources dans le compte AWS Organizations de gestion. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps ingénieur | 
| Terminez la configuration du référentiel distant. | Modifiez le statut de la AWS CodeConnections connexion de `PENDING` à`AVAILABLE`. Cette connexion a été créée lorsque vous avez déployé la CloudFormation pile. Pour obtenir des instructions, consultez la section [Mettre à jour une connexion en attente](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) dans la CodeConnections documentation.  | DevOps ingénieur | 
| Téléchargez des fichiers dans le référentiel distant. | Téléchargez tous les fichiers que vous avez téléchargés depuis le `aws-samples` référentiel et modifiés au cours des étapes précédentes vers le référentiel distant. Les modifications apportées à la `main` branche démarrent le pipeline, qui crée ou met à jour les ensembles d'autorisations et les attributions. | DevOps ingénieur | 

### Mise à jour des ensembles d'autorisations et des attributions
<a name="updating-the-permission-sets-and-assignments"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Mettez à jour les ensembles d'autorisations et les attributions. | Lorsque la EventBridge règle `MoveAccount` Amazon détecte des modifications apportées aux comptes de l'organisation, le CI/CD pipeline démarre automatiquement et met à jour les ensembles d'autorisations. Par exemple, si vous ajoutez un compte à une unité d'organisation spécifiée dans le fichier JSON des attributions, le CI/CD pipeline appliquera l'ensemble d'autorisations au nouveau compte.<br />Si vous souhaitez modifier les ensembles d'autorisations et les attributions déployés, mettez à jour les fichiers JSON, puis validez-les dans le référentiel distant. <br />Notez les points suivants lorsque vous utilisez le CI/CD pipeline pour gérer des ensembles d'autorisations et des associations précédemment déployés :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps ingénieur | 

## Résolution des problèmes
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Erreurs d’accès refusé | Vérifiez que vous disposez des autorisations requises pour déployer les CloudFormation modèles et les ressources qui y sont définies. Pour plus d'informations, consultez la section [Contrôle de l'accès](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) dans la CloudFormation documentation. | 
| Erreurs de pipeline lors de la phase de validation | Cette erreur apparaît en cas d'erreur dans l'ensemble d'autorisations ou les modèles d'attribution.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | 

## Ressources connexes
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-resources"></a>
+ [Ensembles d'autorisations](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) (documentation IAM Identity Center)