

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.

# Personnalisez les noms de rôles par défaut en utilisant des AWS CDK aspects et des trappes d'échappement
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches"></a>

*SANDEEP SINGH et James Jacob, Amazon Web Services*

## Résumé
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-summary"></a>

Ce modèle montre comment personnaliser les noms par défaut des rôles créés par AWS Cloud Development Kit (AWS CDK) des constructions. La personnalisation des noms de rôles est souvent nécessaire si votre organisation est soumise à des contraintes spécifiques basées sur des conventions de dénomination. Par exemple, votre organisation peut définir des [limites d'autorisations Gestion des identités et des accès AWS (IAM) ou des](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) [politiques de contrôle des services (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) qui nécessitent un préfixe spécifique dans les noms de rôles. Dans de tels cas, les noms de rôle par défaut générés par AWS CDK les constructions peuvent ne pas respecter ces conventions et devront peut-être être modifiés. Ce modèle répond à ces exigences en utilisant des [trappes d'évacuation et des](https://docs.aws.amazon.com/cdk/v2/guide/cfn-layer.html) [aspects](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html) dans le AWS CDK. Vous utilisez des trappes d'échappement pour définir des noms de rôles personnalisés, et des aspects pour appliquer un nom personnalisé à tous les rôles, afin de garantir le respect des politiques et des contraintes de votre organisation.

## Conditions préalables et limitations
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS
+ [Prérequis spécifiés dans la documentation AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites)

**Limites**
+ Les aspects filtrent les ressources en fonction des types de ressources, de sorte que tous les rôles partagent le même préfixe. Si vous avez besoin de préfixes de rôle différents pour différents rôles, un filtrage supplémentaire basé sur d'autres propriétés est nécessaire. Par exemple, pour attribuer différents préfixes aux rôles associés à des AWS Lambda fonctions, vous pouvez filtrer en fonction d'attributs ou de balises de rôle spécifiques, et appliquer un préfixe pour les rôles liés à Lambda et un autre préfixe pour les autres rôles.
+ Les noms de rôle IAM ont une longueur maximale de 64 caractères. Les noms de rôles modifiés doivent donc être rognés pour respecter cette restriction.
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, voir [Services AWS par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez la page [Points de terminaison et quotas du service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien vers le service.

## Architecture
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-architecture"></a>

**Pile technologique cible**
+ AWS CDK
+ AWS CloudFormation

**Architecture cible**

![Architecture permettant d'utiliser des trappes d'échappement et des aspects pour personnaliser les noms de rôles attribués par AWS CDK.](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/c149d8d2-1da6-4680-ab0b-e5051b69688c/images/15e56ca5-f150-4522-b374-8ee2dcc655a9.png)

+ Une AWS CDK application se compose d'une ou de plusieurs CloudFormation piles, qui sont synthétisées et déployées pour gérer les AWS ressources.
+ Pour modifier une propriété d'une ressource AWS CDK gérée qui n'est pas exposée par une construction de couche 2 (L2), vous utilisez une trappe d'échappement pour remplacer les CloudFormation propriétés sous-jacentes (dans ce cas, le nom du rôle) et un aspect pour appliquer le rôle à toutes les ressources de l' AWS CDK application pendant le processus de synthèse de la pile. AWS CDK 

## Outils
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-tools"></a>

**Services AWS**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)est un framework de développement logiciel qui vous aide à définir et à provisionner AWS Cloud l'infrastructure dans le code.
+ [AWS CDK L'interface de ligne de commande (AWS CDK CLI)](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) (également appelée boîte à AWS CDK outils) est un kit de développement cloud en ligne de commande qui vous permet d'interagir avec votre AWS CDK application. La `cdk` commande CLI est le principal outil d'interaction avec votre AWS CDK application. Il exécute votre application, interroge le modèle d'application que vous avez défini, produit et déploie les CloudFormation modèles générés par le. AWS CDK
+ [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 dans toutes Comptes AWS les régions.

**Référentiel de code**

Le code source et les modèles de ce modèle sont disponibles dans le référentiel GitHub [CDK Aspects Override](https://github.com/aws-samples/cdk-aspects-override).

## Bonnes pratiques
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-best-practices"></a>

Consultez les [meilleures pratiques d'utilisation de l' AWS CDK in pour TypeScript créer des projets IaC](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/introduction.html) sur le site Web **AWS **Prescriptive Guidance.

## Épopées
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-epics"></a>

### Installation de la AWS CDK CLI
<a name="install-the-cdk-cli"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez la AWS CDK CLI. | Pour installer la AWS CDK CLI globalement, exécutez la commande suivante :<pre>npm install -g aws-cdk</pre> | AWS DevOps | 
| Vérifiez la version. | Exécutez la commande  :<pre>cdk --version</pre><br />Vérifiez que vous utilisez la version 2 de la AWS CDK CLI. | AWS DevOps | 
| Démarrez l' AWS CDK environnement. | Avant de déployer les CloudFormation modèles, préparez le compte et le compte Région AWS que vous souhaitez utiliser. Exécutez la commande  :<pre>cdk bootstrap <account>/<Region></pre><br />Pour plus d'informations, consultez la section [AWS CDK bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) dans la AWS documentation. | AWS DevOps | 

### Déployez l' AWS CDK application pour démontrer l'utilisation des aspects
<a name="deploy-the-cdk-app-to-demonstrate-the-use-of-aspects"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez le projet. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.html) | AWS DevOps | 
| Déployez des piles avec des noms de rôle par défaut attribués par le AWS CDK. | Déployez deux CloudFormation piles (`ExampleStack1`et`ExampleStack2`) contenant les fonctions Lambda et leurs rôles associés :<pre>npm run deploy:ExampleAppWithoutAspects</pre><br />Le code ne transmet pas explicitement les propriétés des rôles. Les noms des rôles seront donc construits par le AWS CDK.<br />Pour un exemple de sortie, consultez la section [Informations supplémentaires](#customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional). | AWS DevOps | 
| Déployez des piles comportant des aspects. | Au cours de cette étape, vous appliquez un aspect qui applique une convention de nom de rôle en ajoutant un préfixe à tous les rôles IAM déployés dans le projet. AWS CDK L'aspect est défini dans le `lib/aspects.ts` fichier. L'aspect utilise une trappe d'échappement pour remplacer le nom du rôle en ajoutant un préfixe. L'aspect est appliqué aux piles du `bin/app-with-aspects.ts` fichier. Le préfixe du nom de rôle utilisé dans cet exemple est`dev-unicorn`.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.html)<br />Pour un exemple de sortie, consultez la section [Informations supplémentaires](#customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional). | AWS DevOps | 

### nettoyer des ressources ;
<a name="clean-up-resources"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez vos AWS CloudFormation piles. | Une fois que vous avez fini d'utiliser ce modèle, exécutez la commande suivante pour nettoyer les ressources afin d'éviter des coûts supplémentaires :<pre>cdk destroy --all -f && cdk --app npx ts-node bin/app-with-aspects.ts' destroy --all -f </pre> | AWS DevOps | 

## Résolution des problèmes
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Vous rencontrez des problèmes lors de l'utilisation du AWS CDK. | Consultez la section [Résolution AWS CDK des problèmes courants](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html) dans la AWS CDK documentation. | 

## Ressources connexes
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-resources"></a>
+ [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/)
+ [AWS CDK documentation](https://docs.aws.amazon.com/cdk/)
+ [AWS CDK sur GitHub](https://github.com/aws/aws-cdk)
+ [Trappes d'évacuation](https://docs.aws.amazon.com/cdk/v2/guide/cfn-layer.html)
+ [Aspects et AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html)

## Informations supplémentaires
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional"></a>

**Noms de rôles créés par CloudFormation Without Aspects**

```
Outputs:
ExampleStack1WithoutAspects.Function1RoleName = example-stack1-without-as-Function1LambdaFunctionSe-y7FYTY6FXJXA
ExampleStack1WithoutAspects.Function2RoleName = example-stack1-without-as-Function2LambdaFunctionSe-dDZV4rkWqWnI
...

Outputs:
ExampleStack2WithoutAspects.Function3RoleName = example-stack2-without-as-Function3LambdaFunctionSe-ygMv49iTyMq0
```

**Noms de rôles créés par CloudFormation with aspects**

```
Outputs:
ExampleStack1WithAspects.Function1RoleName = dev-unicorn-Function1LambdaFunctionServiceRole783660DC
ExampleStack1WithAspects.Function2RoleName = dev-unicorn-Function2LambdaFunctionServiceRole2C391181
...

Outputs:
ExampleStack2WithAspects.Function3RoleName = dev-unicorn-Function3LambdaFunctionServiceRole4CAA721C
```