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 d'autorisations AWS IAM Identity Center sous forme de code en utilisant AWS CodePipeline
Créée par Andre Cavalcante (AWS) et Claison Amorim () AWS
Référentiel de code : aws-iam-identity-center -pipeline | Environnement : Production | Technologies : sécurité, identité, conformité ; DevOps |
AWSservices : AWS CodeBuild ; AWS CodeCommit AWS CodePipeline ; Centre AWS IAM d'identité |
Récapitulatif
AWSIAMIdentity Center (successeur de AWS Single Sign-On) vous permet de gérer de manière centralisée l'accès par authentification unique (SSO) à tous vos AWS comptes 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). IAMIdentity 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. Les ensembles d'autorisations s'appliquent aux utilisateurs et aux groupes fédérés de votre banque AWS IAM d'identités Identity Center ou de votre IdP externe.
Ce modèle vous permet de 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 AWS les comptes cibles, les unités organisationnelles (OUs) ou la racine de votre organisation.
Pour gérer les autorisations et les attributions IAM d'Identity Center sous forme de code, cette solution déploie un pipeline d'intégration continue et de livraison continue (CI/CD) qui utilise AWS CodeCommit, AWS CodeBuild et. AWS CodePipeline Vous gérez les ensembles d'autorisations et les attributions dans les JSON modèles que vous stockez dans le CodeCommit référentiel. 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 fonction AWS Lambda démarre. La fonction Lambda lance le pipeline CI/CD qui met à jour les ensembles d'autorisations et les attributions dans Identity Center. IAM
Conditions préalables et limitations
Prérequis
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.
IAMIdentity Center, activé et configuré avec une source d'identité. Pour plus d'informations, consultez Getting Started dans la documentation IAM d'Identity Center.
Un compte de membre enregistré en tant qu'administrateur délégué pour IAM Identity Center. Pour obtenir des instructions, consultez la section Enregistrer un compte membre dans la documentation IAM d'Identity Center.
Autorisations permettant de déployer AWS CloudFormation des piles dans le compte d'administrateur délégué IAM d'Identity Center et dans le compte de gestion de l'organisation. Pour plus d'informations, consultez la section Contrôle de l'accès dans la CloudFormation documentation.
Un bucket Amazon Simple Storage Service (Amazon S3) dans l'administrateur délégué d'Identity Center pour télécharger le code de l'artefact. Pour obtenir des instructions, consultez la section Création d'un bucket.
L'identifiant du compte de gestion de l'organisation. Pour obtenir des instructions, consultez la section Trouver l'identifiant de votre AWS compte.
Limites
Ce modèle ne peut pas être utilisé pour gérer ou attribuer des ensembles d'autorisations pour les environnements à compte unique ou pour les 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 IAM d'Identity Center 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. Vous ne pouvez pas utiliser ce modèle pour gérer ou attribuer des autorisations prédéfinies.
Ce modèle ne peut pas être utilisé pour gérer un ensemble d'autorisations pour le compte de gestion de l'organisation.
Architecture
Pile technologique
AWS CodeBuild
AWS CodeCommit
AWS CodePipeline
Amazon EventBridge
AWSCentre d'identité
AWSLambda
AWSOrganisations
Architecture cible
Le schéma suivant illustre le flux de travail suivant :
Un utilisateur effectue l'une des modifications suivantes :
Valide une ou plusieurs modifications apportées au CodeCommit référentiel
Modifie les comptes de l'unité organisationnelle (UO) dans AWS Organizations
Si l'utilisateur a apporté une modification au CodeCommit référentiel, la
CodeChange
EventBridge règle détecte la modification et lance une fonction Lambda dans le compte d'administrateur délégué IAM d'Identity Center. La règle ne réagit pas aux modifications apportées à certains fichiers du référentiel, tels que leREADME.md
fichier.Si l'utilisateur a modifié les comptes de l'unité organisationnelle, la
MoveAccount
EventBridge règle détecte le changement et lance une fonction Lambda dans le compte de gestion de l'organisation.La fonction Lambda initiée démarre le pipeline CI/CD dans. CodePipeline
CodePipeline lance le
CodebuildTemplateValidation
CodeBuild projet.Le
CodebuildTemplateValidation
CodeBuild projet utilise un script Python dans le CodeCommit référentiel 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.
Le
CodebuildPermissionSet
CodeBuild projet utilise Python (Boto3) AWS SDK pour supprimer, créer ou mettre à jour les ensembles d'autorisations dans IAM Identity Center. Seuls les ensembles d'autorisations comportant leSSOPipeline:true
tag sont concernés. Tous les ensembles d'autorisations gérés via ce pipeline possèdent cette balise.Le
CodebuildAssignments
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 S3 du même compte.CodeBuild joue un
lookup
IAM rôle dans le compte de gestion de l'organisation. Il appelle les organisations et identitystoreAPIs afin de répertorier les ressources nécessaires pour accorder ou révoquer des autorisations. 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 dans 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 API demandes 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
AWSservices
AWS CloudFormationvous 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, quels que soient les AWS comptes et les régions.
AWS CodeBuildest 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 CodeCommitest un service de contrôle de version qui vous permet de stocker et de gérer de manière privée des référentiels Git, sans avoir à gérer votre propre système de contrôle de source.
AWS CodePipelinevous 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 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, les fonctions AWS Lambda, les points de terminaison HTTP d'invocation utilisant des API destinations ou les bus d'événements dans d'autres comptes. AWS
AWSIAMIdentity Center vous permet de gérer de manière centralisée l'accès par authentification unique (SSO) à tous vos AWS comptes et applications cloud.
AWSOrganizations est un service de gestion de comptes qui vous aide à consolider plusieurs AWS comptes au sein d'une organisation que vous créez et gérez de manière centralisée.
AWSSDKfor Python (Boto3)
est un kit de développement logiciel qui vous aide à intégrer votre application, bibliothèque ou script Python à des AWS services. Amazon Simple Storage Service (Amazon S3) 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
Bonnes pratiques
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 IAM d'identité (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'IAMidentité 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 et Bonnes pratiques en matière de sécurité dans la IAM documentation.
Épopées
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
| DevOps ingénieur |
Définissez les ensembles d'autorisations. |
| DevOps ingénieur |
Définissez les missions. |
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Téléchargez les fichiers dans un compartiment S3. |
| DevOps ingénieur |
Déployez des ressources dans le compte d'administrateur délégué d'IAMIdentity Center. |
| DevOps ingénieur |
Déployez les ressources dans le compte de gestion de AWS l'organisation. |
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Mettez à jour les ensembles d'autorisations et les attributions. | Lorsque la EventBridge règle Si vous souhaitez modifier les ensembles d'autorisations et les attributions déployés, mettez à jour les JSON fichiers, puis validez-les dans le CodeCommit référentiel du compte d'administrateur délégué IAM d'Identity Center. Pour obtenir des instructions, consultez la section Créer un commit dans la CodeCommit documentation. Notez les points suivants lorsque vous utilisez le pipeline CI/CD pour gérer des ensembles d'autorisations et des associations précédemment déployés :
| DevOps ingénieur |
Résolution des problèmes
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 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.
|
Ressources connexes
Ensembles d'autorisations (documentation IAM Identity Center)