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 dans un compte AWS à l'aide d' CodePipelineIAM Access Analyzer et de macros AWS CloudFormation
Créée par Helton Ribeiro (AWS) et Guilherme Simoes (AWS)
Récapitulatif
Remarque : AWS n' CodeCommit est plus disponible pour les nouveaux clients. Les clients actuels d'AWS CodeCommit peuvent continuer à utiliser le service normalement. En savoir plus
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 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 la documentation IAM et apportez les modifications nécessaires à vos rôles IAM et à vos services AWS.
Conditions préalables et limitations
Prérequis
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 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 dans la documentation AWS SAM.
Python 3, installé sur votre machine locale. Pour plus d'informations à ce sujet, consultez la documentation Python
. 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
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 la documentation IAM et apportez les modifications nécessaires à vos rôles IAM et à vos services AWS.
Architecture
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

Le schéma suivant illustre le flux de travail suivant :
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.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é.
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.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.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
Outils
L'interface de ligne de commande AWS (AWS CLI) 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) 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 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) 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
Épopées
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 | Développeur d'applications, AWS général |
Tâche | Description | Compétences requises |
---|---|---|
Déployez le pipeline. |
| Développeur d'applications, AWS général |
Clonez le référentiel du pipeline. |
| Développeur d'applications, AWS général |
Tâche | Description | Compétences requises |
---|---|---|
Testez le RolesPipeline pipeline avec des politiques et des rôles IAM valides. |
| Développeur d'applications, AWS général |
Testez le RolesPipeline pipeline avec des politiques et des rôles IAM non valides. |
| Développeur d'applications, AWS général |
Tâche | Description | Compétences requises |
---|---|---|
Préparez-vous au nettoyage. | Videz les compartiments S3, puis exécutez la | Développeur d'applications, AWS général |
Supprimez la RolesStack pile. |
| Développeur d'applications, AWS général |
Supprimez la RolesPipeline pile. | Pour supprimer la CloudFormation pile | Développeur d'applications, AWS général |
Ressources connexes
Analyseur d'accès IAM - Validation des politiques
(blog d'actualités AWS) Utilisation de CloudFormation macros AWS pour effectuer un traitement personnalisé sur des modèles ( CloudFormation documentation AWS)
Création de fonctions Lambda avec Python (documentation AWS Lambda)