

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.

# Validez et déployez automatiquement les politiques et les rôles IAM à l'aide CodePipeline d'IAM Access Analyzer et de macros AWS CloudFormation
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros"></a>

*Helton Ribeiro et Guilherme Simoes, Amazon Web Services*

## Résumé
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-summary"></a>

Ce modèle décrit les étapes et fournit le code permettant de créer un pipeline de déploiement permettant à vos équipes de développement de créer des politiques et des rôles AWS Identity and Access Management (IAM) dans vos comptes Amazon Web Services (AWS). Cette approche permet à votre organisation de réduire les frais généraux de vos équipes opérationnelles et d'accélérer le processus de déploiement. Il aide également vos développeurs à créer des rôles et des politiques IAM compatibles avec vos contrôles de gouvernance et de sécurité existants.

L'approche de ce modèle utilise [AWS Identity and Access Management Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html) pour valider les politiques IAM que vous souhaitez associer aux rôles IAM et utilise AWS CloudFormation pour déployer les rôles IAM. Toutefois, au lieu de modifier directement le fichier CloudFormation modèle AWS, votre équipe de développement crée des politiques et des rôles IAM au format JSON. Une CloudFormation macro AWS transforme ces fichiers de politique au format JSON en types de ressources AWS CloudFormation IAM avant de commencer le déploiement.

Le pipeline de déploiement (`RolesPipeline`) comporte des étapes de source, de validation et de déploiement. Au cours de la phase source, votre équipe de développement transmet les fichiers JSON contenant la définition des rôles et politiques IAM vers un référentiel AWS CodeCommit . AWS exécute CodeBuild ensuite un script pour valider ces fichiers et les copie dans un compartiment Amazon Simple Storage Service (Amazon S3). Vos équipes de développement n'ayant pas un accès direct au fichier CloudFormation modèle AWS stocké dans un compartiment S3 distinct, elles doivent suivre le processus de création et de validation du fichier JSON.

Enfin, pendant la phase de déploiement, AWS CodeDeploy utilise une CloudFormation pile AWS pour mettre à jour ou supprimer les politiques et les rôles IAM d'un compte.

**Important**  
Le flux de travail de ce modèle est une preuve de concept (POC) et nous vous recommandons de ne l'utiliser que dans un environnement de test. Si vous souhaitez utiliser l'approche de ce modèle dans un environnement de production, consultez les [meilleures pratiques de sécurité dans IAM dans](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) la documentation IAM et apportez les modifications nécessaires à vos rôles IAM et à vos services AWS.

## Conditions préalables et limitations
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif.
+ Un compartiment S3 nouveau ou existant pour le `RolesPipeline` pipeline. Assurez-vous que les informations d'accès que vous utilisez sont autorisées à télécharger des objets dans ce compartiment.
+ Interface de ligne de commande AWS (AWS CLI), installée et configurée. Pour plus d'informations à ce sujet, consultez la section [Installation, mise à jour et désinstallation de l'interface de ligne de commande AWS dans la](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) documentation de l'interface de ligne de commande AWS. 
+ CLI AWS Serverless Application Model (AWS SAM), installée et configurée. Pour plus d'informations à ce sujet, consultez la section [Installation de l'interface de ligne de commande AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) dans la documentation AWS SAM. 
+ Python 3, installé sur votre machine locale. Pour plus d'informations à ce sujet, consultez la [documentation Python](https://www.python.org/).
+ Un client Git, installé et configuré.
+ Le GitHub `IAM roles pipeline` référentiel, cloné sur votre machine locale. 
+ Politiques et rôles IAM existants au format JSON. Pour plus d'informations à ce sujet, consultez le [ReadMe](https://github.com/aws-samples/iam-roles-pipeline/blob/main/README.md)fichier dans le `IAM roles pipeline` référentiel Github.
+ Votre équipe de développeurs ne doit pas être autorisée à modifier les CodeDeploy ressources AWS CodePipeline et AWS de cette solution. CodeBuild

**Limites**
+ Le flux de travail de ce modèle est une preuve de concept (POC) et nous vous recommandons de ne l'utiliser que dans un environnement de test. Si vous souhaitez utiliser l'approche de ce modèle dans un environnement de production, consultez les [meilleures pratiques de sécurité dans IAM dans](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) la documentation IAM et apportez les modifications nécessaires à vos rôles IAM et à vos services AWS.

## Architecture
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-architecture"></a>

Le schéma suivant explique comment valider et déployer automatiquement les rôles et les politiques IAM sur un compte à l'aide CodePipeline de l'analyseur d'accès IAM et des macros AWS. CloudFormation 

![\[Étapes de validation et de déploiement des politiques et des rôles IAM dans un compte AWS.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/df1add4d-f211-43e3-8976-5314da75f627/images/832bebaf-27a0-4949-9c30-99fc4c9982b8.png)


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

1. Un développeur écrit des fichiers JSON contenant les définitions des politiques et des rôles IAM. Le développeur envoie le code vers un CodeCommit référentiel CodePipeline , puis lance le `RolesPipeline` pipeline.

1. CodeBuild valide les fichiers JSON à l'aide d'IAM Access Analyzer. En cas de détection de problèmes de sécurité ou d'erreur, le processus de déploiement est arrêté.

1. S'il n'y a aucun résultat lié à la sécurité ou à une erreur, les fichiers JSON sont envoyés au `RolesBucket` compartiment S3.

1. Une CloudFormation macro AWS implémentée en tant que fonction AWS Lambda lit ensuite les fichiers JSON depuis le `RolesBucket` compartiment et les transforme en types de ressources AWS CloudFormation IAM.

1. Une CloudFormation pile AWS prédéfinie installe, met à jour ou supprime les politiques et les rôles IAM du compte. 

**Automatisation et mise à l'échelle**

 CloudFormation Les modèles AWS qui déploient automatiquement ce modèle sont fournis dans le référentiel du [pipeline de rôles GitHub IAM](https://github.com/aws-samples/iam-roles-pipeline).

## Outils
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-tools"></a>
+ [L'interface de ligne de commande AWS (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) est un outil open source qui vous permet d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.
+ [IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) vous aide à identifier les ressources de votre organisation et les comptes, tels que les compartiments S3 ou les rôles IAM, qui sont partagés avec une entité externe. Cela vous permet d'identifier les accès involontaires à vos ressources et à vos données.
+ [AWS Serverless Application Model (AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html)) est un framework open source qui vous aide à créer des applications sans serveur dans le cloud AWS.

**Code**

Le code source et les modèles de ce modèle sont disponibles dans le référentiel de [pipelines de rôles GitHub IAM](https://github.com/aws-samples/iam-roles-pipeline).

## Épopées
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-epics"></a>

### Cloner le référentiel
<a name="clone-the-repository"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
|  Clonez le référentiel d'échantillons. | Clonez le référentiel de [pipelines de rôles GitHub IAM](https://github.com/aws-samples/iam-roles-pipeline) sur votre machine locale. | Développeur d'applications, AWS général | 

### Déployer le RolesPipeline pipeline
<a name="deploy-the-rolespipeline-pipeline"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez le pipeline. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros.html) | Développeur d'applications, AWS général | 
| Clonez le référentiel du pipeline. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros.html) | Développeur d'applications, AWS général | 

### Testez le RolesPipeline pipeline
<a name="test-the-rolespipeline-pipeline"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Testez le RolesPipeline pipeline avec des politiques et des rôles IAM valides. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros.html) | Développeur d'applications, AWS général | 
| Testez le RolesPipeline pipeline avec des politiques et des rôles IAM non valides. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros.html) | Développeur d'applications, AWS général | 

### Nettoyage de vos ressources
<a name="clean-up-your-resources"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Préparez-vous au nettoyage. | Videz les compartiments S3, puis exécutez la `destroy` commande. | Développeur d'applications, AWS général | 
| Supprimez la RolesStack pile. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros.html) | Développeur d'applications, AWS général | 
| Supprimez la RolesPipeline pile. | Pour supprimer la CloudFormation pile `RolesPipeline` AWS, suivez les instructions du [ReadMe](https://github.com/aws-samples/iam-roles-pipeline/blob/main/README.md)fichier dans le `IAM roles pipeline` référentiel Github. | Développeur d'applications, AWS général | 

## Ressources connexes
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-resources"></a>
+ [Analyseur d'accès IAM - Validation des politiques](https://aws.amazon.com/blogs/aws/iam-access-analyzer-update-policy-validation/) (blog d'actualités AWS)
+ [Utilisation de CloudFormation macros AWS pour effectuer un traitement personnalisé sur des modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) ( CloudFormation documentation AWS)
+ [Création de fonctions Lambda avec Python (documentation](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html) AWS Lambda)