

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 d'autorisations de manière dynamique à l'aide de Terraform
<a name="manage-aws-permission-sets-dynamically-by-using-terraform"></a>

*Vinicius Elias et Marcos Vinicius Pinto Jordão, Amazon Web Services*

## Résumé
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-summary"></a>

AWS IAM Identity Center améliore Gestion des identités et des accès AWS (IAM) en fournissant un hub centralisé pour la gestion de l'accès par authentification unique aux applications cloud Comptes AWS et aux applications cloud. Cependant, la gestion manuelle des [ensembles d'autorisations](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) IAM Identity Center peut devenir de plus en plus complexe et source d'erreurs au fur et à mesure que votre entreprise grandit. Cette complexité peut entraîner des failles de sécurité potentielles et des frais administratifs.

Cette solution vous permet de gérer les ensembles d'autorisations via l'infrastructure en tant que code (IaC) à l'aide d'un pipeline d'intégration continue et de livraison continue (CI/CD) construit en mode natif. Services AWS Il permet une intégration fluide du mécanisme d'attribution des ensembles d'autorisations aux événements AWS Control Tower du cycle de vie ou à un environnement [Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html). Cette approche fournit des configurations d'identité dynamiques pour les nouvelles et les existantes Comptes AWS.

 EventBridge Les règles d'Amazon surveillent les Compte AWS créations et les mises à jour, ce qui permet à vos configurations d'identité de rester synchronisées avec votre structure organisationnelle. Après avoir créé ou mis à jour des comptes dans AWS Control Tower ou AFT, le pipeline est déclenché. Il évalue un ensemble de fichiers JSON avec des définitions d'ensembles d'autorisations et des règles d'attribution. Ensuite, le pipeline applique et synchronise les paramètres sur tous les comptes.

Cette approche présente les avantages suivants :
+ **Cohérence** — Élimine la dérive manuelle des configurations au sein de votre AWS organisation
+ **Auditabilité** : conserve un historique complet de toutes les modifications apportées à la gestion des identités
+ **Évolutivité** — Applique automatiquement les configurations à mesure que votre AWS environnement se développe
+ **Sécurité** — Réduit les erreurs humaines lors de l'attribution des autorisations
+ **Conformité** — Facilite le respect des exigences réglementaires grâce à des modifications documentées et à des règles d'attribution

## Conditions préalables et limitations
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-prereqs"></a>
+ Un environnement multi-comptes avec AWS Control Tower et AWS Organizations configuré. Vous pouvez éventuellement utiliser AFT avec AWS Control Tower.
+ Un administrateur délégué du IAM Identity Center est Compte AWS chargé de recevoir la solution. Pour plus d'informations, consultez la section [Administration déléguée](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) dans la documentation d'IAM Identity Center.
+ Un référentiel de système de contrôle de version (VCS) pour gérer le code principal. Pour un exemple, consultez le GitHub [référentiel](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/tree/main/samples/basic) de la solution.
+  AWS Ressources nécessaires à la gestion du backend Terraform, telles qu'un bucket Amazon Simple Storage Service (Amazon S3) et une table Amazon DynamoDB.

**Limites**
+ Le pipeline utilise des ressources AWS natives et l'open source Terraform. Le pipeline n'est pas prêt à faire appel à des écosystèmes tiers.
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, consultez la section [AWS Services par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez [Points de terminaison de service et quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien correspondant au service.

## Architecture
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-architecture"></a>

Le schéma suivant montre les composants et le flux de travail de ce modèle.

![\[Composants et flux de travail pour gérer les ensembles d'autorisations AWS à l'aide de Terraform.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/69dc79c7-b4cd-4ad0-b0d2-d58cf0c7adaa/images/649e299c-1142-405a-8982-4a6b2e595d53.png)


**AWS Control Tower flux d'événements**

La solution commence par l'intégration des événements provenant de l'un ou de l'autre AWS Control Tower ou de l'AFT. Le choix entre l'un ou l'autre service est effectué au moment de la mise en œuvre par le biais d'une définition de variable. Quelle que soit la méthode utilisée, le pipeline est déclenché chaque fois qu'un compte est créé ou mis à jour. Le pipeline réconcilie les politiques stockées dans le référentiel de gestion des ensembles d'autorisations.

Les événements du AWS Control Tower cycle de vie sont les suivants :
+ `CreateManagedAccount`— Lorsqu'un nouveau compte est créé
+ `UpdateManagedAccount`— Lorsqu'un compte existant est mis à jour

**Routage des événements**

EventBridge sert de service central de traitement des événements, capturant les événements générés dans le AWS Control Tower compte. Lorsque des événements se produisent, ils EventBridge sont acheminés de manière intelligente vers un bus d'événements centralisé dans le compte de solution. AWS Control Tower les événements du cycle de vie suivent des modèles de routage distincts. Si AFT est défini comme source d'événements, le compte de gestion AFT gère les événements à la place du AWS Control Tower compte. Cette architecture axée sur les événements permet de répondre automatiquement aux changements organisationnels sans intervention manuelle.

**Processus d'intégration AFT**

Lorsque les événements AWS Control Tower du cycle de vie atteignent le compte de gestion de l'AFT, ils déclenchent automatiquement plusieurs processus en aval intrinsèques à l'AFT. Une fois le processus de personnalisation du compte AFT terminé, celui-ci publie un message dans la rubrique dédiée `aft-notifications` Amazon Simple Notification Service (Amazon SNS). Cette rubrique déclenche la `aft-new-account-forward-event` AWS Lambda fonction implémentée par cette solution. La fonction Lambda envoie l'événement au bus d'événements du compte de solution, où il est utilisé pour démarrer le pipeline.

**L'infrastructure en tant que pipeline de code**

Le pipeline de solutions fonctionne comme un mécanisme de déploiement entièrement automatisé. Le AWS CodePipeline service surveille en permanence les modifications apportées au référentiel. Lors de la détection de nouveaux validations, il lance automatiquement le flux de travail de déploiement et lance un processus séquentiel comprenant des phases de validation et d'exécution. Le système exécute des `plan` opérations Terraform pour identifier les modifications proposées, suivies de `apply` commandes Terraform pour implémenter ces modifications dans l'environnement. AWS Notamment, le pipeline fonctionne sans aucune porte d'approbation manuelle. Cette approche permet un déploiement rapide des modifications de l'infrastructure tout en maintenant l'auditabilité grâce aux journaux de pipeline et aux fichiers d'état Terraform.

Le pipeline s'appuie sur AWS CodeBuild l'exécution des opérations Terraform dans un environnement contrôlé avec les autorisations appropriées. Grâce à cette approche IaC, le pipeline peut effectuer des opérations complètes de gestion des autorisations, notamment :
+ Créez de nouveaux ensembles d'autorisations.
+ Mettez à jour les ensembles d'autorisations existants.
+ Supprimez les ensembles d'autorisations inutiles.
+ Gérez l'attribution de ces autorisations entre les comptes et les groupes au sein des AWS organisations.

Pour maintenir la cohérence de l'infrastructure et éviter les modifications contradictoires, la solution implémente le système de gestion de l'état du backend Terraform à l'aide d'un bucket Amazon S3 et d'une table Amazon DynamoDB dédiée. Cette approche fournit un emplacement de stockage permanent pour les fichiers d'état Terraform et des mécanismes de verrouillage d'état pour empêcher les modifications simultanées des mêmes ressources.

Le code principal de Terraform utilise le module AWS `permission-sets` Terraform officiel. Ce module permet de gérer dynamiquement les ensembles d'autorisations dans IAM Identity Center, sur la base de modèles d'ensembles d'autorisations.

**Gestion du contrôle à la source**

Les modèles d'ensembles d'autorisations (fichiers JSON) résident dans un système de contrôle de version externe GitHub, tel que celui qui fournit un référentiel centralisé pour les configurations de gestion des identités. Cette approche établit une source unique de vérité pour les définitions des ensembles d'autorisations, tout en permettant un développement collaboratif grâce à des pratiques de révision de code standard. Les utilisateurs autorisés peuvent apporter des modifications à ces modèles conformément aux processus de gestion des changements organisationnels. Ces validations constituent le principal déclencheur du pipeline de déploiement automatisé, initiant le processus de mise à jour de l'infrastructure.

Pour un exemple de configuration des ensembles d'autorisations à l'aide du fichier JSON du référentiel, voir [Informations supplémentaires](#manage-aws-permission-sets-dynamically-by-using-terraform-additional).

## Outils
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-tools"></a>

**Services 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 CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html)permet aux AWS ressources et aux services CodePipeline, tels que la connexion à des référentiels de code externes, tels que GitHub.
+ [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.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) est un outil open source qui vous permet d'interagir Services AWS par le biais de commandes dans votre interface de ligne de commande.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)vous aide à configurer et à gérer un environnement AWS multi-comptes, conformément aux meilleures pratiques prescriptives.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) est un service de base de données NoSQL entièrement géré, offrant des performances rapides, prévisibles et évolutives.
+ [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
+ [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
+ [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 Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
+ [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.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail. Il active les notifications push pour les événements de gestion des comptes, garantissant ainsi que les parties concernées sont informées des modifications ou actions importantes au sein du système.
+ [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.

**Autres outils**
+ [Terraform](https://www.terraform.io/) est un outil d'infrastructure en tant que code (IaC) HashiCorp qui vous aide à créer et à gérer des ressources cloud et sur site.

**Référentiel de code**

Le code de ce modèle est disponible dans l'organisation AWS Samples ou GitHub dans le référentiel [sample-terraform-aws-permission-sets-pipeline](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline).

## Bonnes pratiques
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-best-practices"></a>
+ Identifiez toujours les versions des modules et fournisseurs Terraform utilisés pour exécuter le code en production.
+ Utilisez un outil d'analyse de code statique, tel que [Checkov](https://www.checkov.io/), pour scanner votre code puis résoudre les problèmes de sécurité.
+ 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/best-practices.html) dans la documentation IAM.

## Épopées
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-epics"></a>

### Créez les prérequis (facultatif)
<a name="create-the-prerequisites-optional"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez des ressources de backend Terraform. | Si vous n'avez pas encore créé vos AWS ressources de backend Terraform, suivez les étapes suivantes pour créer un compartiment Amazon S3 (`s3-tf-backend-{ACCOUNT_ID}`) et une table DynamoDB (). `ddb-tf-backend`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws s3api create-bucket --bucket s3-tf-backend-{ACCOUNT_ID}<br />aws s3api put-bucket-versioning --bucket s3-tf-backend-{ACCOUNT_ID} --versioning-configuration Status=Enabled<br />aws dynamodb create-table --table-name ddb-tf-backend --attribute-definitions AttributeName=LockID,AttributeType=S --key-schema AttributeName=LockID,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1</pre> | Administrateur AWS | 
| Créez un rôle multicompte. | Vous devez fournir un rôle IAM entre comptes dans la configuration du fournisseur `event-source-account` Terraform AWS . Si vous n'avez pas encore créé ce rôle, procédez comme suit pour le créer :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws iam create-role \<br />    --role-name CrossAccountRole \<br />    --assume-role-policy-document '{<br />        "Version": "2012-10-17",		 	 	 <br />        "Statement": [<br />            {<br />                "Effect": "Allow",<br />                "Principal": {<br />                    "AWS": "arn:aws:iam::{ACCOUNT_ID}:root"<br />                },<br />                "Action": "sts:AssumeRole"<br />            }<br />        ]<br />    }'</pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws iam attach-role-policy \<br />    --role-name CrossAccountRole \<br />    --policy-arn arn:aws:iam::aws:policy/AdministratorAccess</pre>Cet exemple utilise la politique [AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html)IAM AWS gérée. Si vous préférez, vous pouvez utiliser une politique plus spécifique. | Administrateur AWS | 

### Préparer le référentiel des ensembles d'autorisations
<a name="prepare-the-permission-set-repository"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un référentiel dédié. | Cette tâche suppose que vous utilisez GitHub. Créez un référentiel dédié pour stocker le code principal de Terraform et les fichiers JSON du modèle d'ensemble d'autorisations. | DevOps ingénieur | 
| Préparez le code du jeu d'autorisations. | Pour plus d'informations sur la manière dont vous pouvez structurer les fichiers suivants, consultez l'[exemple de code](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/tree/main/samples/basic) dans le référentiel de solutions :─ main.tf─ outputs.tf─ providers.jinja3\$1─ modèlesCopiez le contenu, conservez les `providers.jinja` valeurs et apportez les modifications nécessaires aux autres fichiers. Par exemple, ajoutez des fichiers modèles d'ensembles d'autorisations `templates` ou épinglez la version du `aws-ia/permission-sets/aws` module dans le `main.tf` fichier. | DevOps ingénieur | 
| Validez vos modifications. | Validez et envoyez les modifications au référentiel que vous avez créé précédemment. Enregistrez le nom du référentiel et son GitHub organisation, par exemple`myorg/aws-ps-pipeline`. | DevOps ingénieur | 

### Préparez le code de déploiement
<a name="prepare-the-deployment-code"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Téléchargez le contenu. | Téléchargez (clonez) le contenu depuis le [référentiel](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline) de solutions. | DevOps ingénieur | 
| Renseignez les variables. | Créez un `terraform.tfvars` fichier et ajoutez les variables nécessaires suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>repository_name                 = "myorg/aws-ps-pipeline"<br />branch_name                     = "main"<br />vcs_provider                    = "github"<br />account_lifecycle_events_source = "CT"</pre>Pour plus d'informations sur les options de variables supplémentaires, consultez le fichier [variables.tf](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/blob/main/variables.tf) dans le référentiel de ce modèle. GitHub  | DevOps ingénieur | 
| Ajustez la configuration du backend Terraform. | Dans le `backend.tf` fichier, remplacez les espaces réservés par vos propres valeurs. Utilisez la page d' AWS Control Tower accueil Région AWS et indiquez les noms du bucket Amazon S3 et de la table DynamoDB créés précédemment.<pre>terraform {<br />  required_version = ">=1.6"<br />  backend "s3" {<br />    region         = "{region}"<br />    bucket         = "{bucket_name}"<br />    key            = "terraform.tfstate"<br />    dynamodb_table = "{table_name}"<br />    encrypt        = "true"<br />  }<br />}</pre>Si vous préférez, vous pouvez utiliser votre propre configuration de backend Terraform. | DevOps ingénieur | 
| Ajustez la configuration du fournisseur Terraform. | Dans le `providers.tf` fichier, remplacez les espaces réservés par vos propres informations. Utilisez la région d' AWS Control Tower origine et fournissez l'ARN du rôle IAM entre comptes créé précédemment pour le `event-source-account` fournisseur.<pre>provider "aws" {<br />  region = "{region}"<br />}<br /><br />provider "aws" {<br />  alias  = "event-source-account"<br />  region = "{region}"<br />  assume_role {<br />    role_arn = "{role_arn}"<br />  }<br />}<br /></pre> | DevOps ingénieur | 

### Déployez la solution manuellement
<a name="deploy-the-solution-manually"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Sélectionnez le Compte AWS. | Nous vous recommandons de déployer la solution dans le compte d'administrateur délégué d'IAM Identity Center. Toutefois, vous pouvez également le déployer dans le compte AWS Organizations de gestion.Pour vous connecter au compte sélectionné dans la même région que l'instance IAM Identity Center, utilisez le AWS CLI. Assurez-vous que le rôle IAM que vous utilisez est autorisé à assumer le rôle spécifié pour le `event-source-account` fournisseur dans les étapes précédentes. De plus, ce rôle doit avoir accès aux AWS ressources utilisées dans la configuration du backend Terraform. | Administrateur AWS | 
| Exécutez Terraform manuellement. | Pour initialiser, planifier et appliquer les configurations, exécutez les commandes Terraform suivantes dans l'ordre indiqué :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | DevOps ingénieur | 
| Vérifiez les résultats du déploiement. | Dans le compte d'administrateur délégué d'IAM Identity Center, vérifiez que le `aws-ps-pipeline` pipeline a été créé. Vérifiez également qu'il existe une AWS CodeConnections connexion avec le statut **En attente**. | AWS DevOps | 
| Terminez la CodeConnections configuration. | Pour terminer la CodeConnections configuration, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)Le pipeline devrait désormais avoir accès au référentiel des ensembles d'autorisations.Pour obtenir des instructions détaillées, voir [Mettre à jour une connexion en attente](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) dans la documentation de la console Developer Tools.  | AWS DevOps | 

### Choisissez un flux d'exécution du pipeline pour tester la solution
<a name="choose-a-pipeline-execution-flow-to-test-the-solution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Exécutez le pipeline par AWS Control Tower ou les mises à jour AFT. | Une fois qu'un compte est créé ou modifié en utilisant AWS Control Tower ou AFT (selon le type d'événements du cycle de vie que vous avez choisi), le pipeline démarre. | Administrateur AWS | 
| Exécutez le pipeline en modifiant le code. | Après avoir modifié le code et l'avoir validé dans la `main` branche, le pipeline démarre. | AWS DevOps | 
| Exécutez le pipeline manuellement. | Pour démarrer le pipeline manuellement, utilisez la fonction [de modification de version](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-rerun-manually.html) dans AWS CodePipeline. | AWS DevOps | 

## Résolution des problèmes
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Accès refusé | Vérifiez que vous disposez des autorisations requises pour déployer la solution. | 
| CodeConnections problèmes | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 
| Problèmes d'exécution du pipeline | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 
| Problèmes de déploiement des ensembles d'autorisations | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 

## Ressources connexes
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-resources"></a>

**Service AWS documentation**
+ [AWS IAM Identity Center Guide de l'utilisateur](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
+ [Gestion Comptes AWS à l'aide d'ensembles d'autorisations](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) (documentation IAM Identity Center)

**Autres ressources**
+ [AWS Module d'ensembles d'autorisations](https://registry.terraform.io/modules/aws-ia/permission-sets/aws/latest) (Terraform)

## Informations supplémentaires
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-additional"></a>

**Fichier JSON avec un exemple d'ensemble d'autorisations**

L'exemple suivant montre comment configurer un ensemble d'autorisations à l'aide du fichier JSON du référentiel :

```
{
  "Name": "ps-billing", // Permission set identifier
  "Comment": "Sample permission set for billing access", // Comment to document the purpose of the permission set
  "Description": "Billing access in AWS", // Detailed description
  "SessionDuration": "PT4H", // Session duration = 4 hours (ISO 8601 format)
  "ManagedPolicies": [ // List of AWS IAM managed policies
    "arn:aws:iam::aws:policy/job-function/Billing",
    "arn:aws:iam::aws:policy/job-function/SupportUser",
    "arn:aws:iam::aws:policy/AWSSupportAccess",
    "arn:aws:iam::aws:policy/job-function/ViewOnlyAccess"
  ],
  "CustomerPolicies": [], // References to IAM policies previously created
  "CustomPolicy": {}, // Inline IAM policy defined directly in the permission set
  "PermissionBoundary": {  // AWS or customer managed IAM policy to be used as boundary
    "ManagedPolicy": "",
    "CustomerPolicy": ""
  },
  "Assignments": [ // Define the assignment rules
    {
      "all_accounts": true, // Apply to ALL active AWS accounts in organization
      "principal": "G_BILLING_USERS", // Group/user name in Identity Center
      "type": "GROUP", // Can be "GROUP" or "USER"
      "account_id": [], // List of AWS account ID (empty since all_accounts=true)
      "account_ou": [], // List of AWS Organizational Unit IDs with target AWS accounts
      "account_tag": [] // List of tags (key:value) to match AWS Organization accounts tags
    }
  ]
}
```

Pour plus d'informations, consultez le schéma JSON dans la documentation du [module AWS Permission Sets](https://registry.terraform.io/modules/aws-ia/permission-sets/aws/latest#json-file-templates) sur le site Web de Terraform.

**Astuces**
+ Vous pouvez utiliser les [blocs d'importation](https://developer.hashicorp.com/terraform/language/import) Terraform pour importer un ensemble d'autorisations existant dans la solution.
+ Vous pouvez utiliser AFT pour implémenter le pipeline AWS d'ensembles d'autorisations dans un compte délégué. Pour plus d'informations, consultez [AFT Blueprints](https://awslabs.github.io/aft-blueprints/index.html).