

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.

# Infrastructures
<a name="infrastructure-pattern-list"></a>

**Topics**
+ [Accédez à un hôte bastion à l'aide du gestionnaire de session et d'Amazon EC2 Instance Connect](access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.md)
+ [Centralisation de la résolution DNS à l'aide AWS Managed Microsoft AD et sur site de Microsoft Active Directory](centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.md)
+ [Centralisez la surveillance à l'aide d'Amazon CloudWatch Observability Access Manager](centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.md)
+ [Vérifiez les EC2 instances pour les balises obligatoires au lancement](check-ec2-instances-for-mandatory-tags-at-launch.md)
+ [Nettoyez les ressources de AWS Account Factory for Terraform (AFT) en toute sécurité après la perte du fichier d'état](clean-up-aft-resources-safely-after-state-file-loss.md)
+ [Créez un pipeline dans les régions AWS qui ne prennent pas en charge AWS CodePipeline](create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline.md)
+ [Personnalisez les noms de rôles par défaut en utilisant des AWS CDK aspects et des trappes d'échappement](customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.md)
+ [Déployez un cluster Cassandra sur Amazon EC2 avec une statique privée IPs pour éviter le rééquilibrage](deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.md)
+ [Étendez votre accès VRFs à AWS en utilisant AWS Transit Gateway Connect](extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.md)
+ [Recevez des notifications Amazon SNS lorsque l'état clé d'une clé AWS KMS change](get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.md)
+ [Préservez l'espace IP routable dans les conceptions VPC multi-comptes pour les sous-réseaux autres que les charges de travail](preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets.md)
+ [Provisionner un produit Terraform à l'aide AWS Service Catalog d'un référentiel de code](provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.md)
+ [Comptes AWS Enregistrez-en plusieurs avec une seule adresse e-mail à l'aide d'Amazon SES](register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.md)
+ [Configuration de la résolution DNS pour les réseaux hybrides dans un environnement AWS à compte unique](set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment.md)
+ [Configurez automatiquement des robots UiPath RPA sur Amazon à l'aide EC2 d'AWS CloudFormation](set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.md)
+ [Configuration d'une PeopleSoft architecture à haute disponibilité sur AWS](set-up-a-highly-available-peoplesoft-architecture-on-aws.md)
+ [Configurer la reprise après sinistre pour Oracle JD Edwards EnterpriseOne avec AWS Elastic Disaster Recovery](set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.md)
+ [Configurer la détection des CloudFormation dérives dans une organisation multirégionale et multi-comptes](set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.md)
+ [Importation réussie d'un compartiment S3 en tant que CloudFormation stack AWS](successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.md)
+ [Synchronisez les données entre les systèmes de fichiers Amazon EFS dans différentes régions AWS à l'aide d'AWS DataSync](synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.md)
+ [AWS Infrastructure de test à l'aide LocalStack de tests Terraform](test-aws-infra-localstack-terraform.md)
+ [Mettez à niveau les clusters SAP Pacemaker de ENSA1 ENSA2](upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.md)
+ [Utilisez des zones de disponibilité cohérentes VPCs sur les différents comptes AWS](use-consistent-availability-zones-in-vpcs-across-different-aws-accounts.md)
+ [Utiliser l'utilisateur IDs dans les politiques IAM pour le contrôle d'accès et l'automatisation](use-user-ids-iam-policies-access-control-automation.md)
+ [Validez le code Account Factory pour Terraform (AFT) localement](validate-account-factory-for-terraform-aft-code-locally.md)
+ [Plus de modèles](infrastructure-more-patterns-pattern-list.md)

# Accédez à un hôte bastion à l'aide du gestionnaire de session et d'Amazon EC2 Instance Connect
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect"></a>

*Piotr Chotkowski et Witold Kowalik, Amazon Web Services*

## Résumé
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-summary"></a>

Un *hôte bastion*, parfois appelé *boîte de saut*, est un serveur qui fournit un point d'accès unique depuis un réseau externe aux ressources situées sur un réseau privé. Un serveur exposé à un réseau public externe, tel qu'Internet, présente un risque de sécurité potentiel en cas d'accès non autorisé. Il est important de sécuriser et de contrôler l'accès à ces serveurs.

Ce modèle décrit comment vous pouvez utiliser [Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) et [Amazon EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html) pour vous connecter en toute sécurité à un hôte bastion Amazon Elastic Compute Cloud (Amazon EC2) déployé dans votre Compte AWS. Le gestionnaire de session est une fonctionnalité de AWS Systems Manager. Les avantages de ce modèle incluent :
+ L'hôte bastion déployé ne possède aucun port entrant ouvert exposé à l'Internet public. Cela réduit la surface d'attaque potentielle.
+ Vous n'avez pas besoin de stocker et de gérer des clés Secure Shell (SSH) à long terme dans votre Compte AWS. Au lieu de cela, chaque utilisateur génère une nouvelle paire de clés SSH chaque fois qu'il se connecte à l'hôte Bastion. Gestion des identités et des accès AWS Les politiques (IAM) associées aux informations d' AWS identification de l'utilisateur contrôlent l'accès à l'hôte Bastion.

**Public visé**

Ce modèle est destiné aux lecteurs ayant une connaissance de base d'Amazon EC2, d'Amazon Virtual Private Cloud (Amazon VPC) et de Hashicorp Terraform.

## Conditions préalables et limitations
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS
+ AWS Command Line Interface (AWS CLI) version 2, [installée](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) et [configurée](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ Plug-in de gestion de session pour le AWS CLI, [installé](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)
+ [Terraform CLI, installée](https://developer.hashicorp.com/terraform/cli)
+ Stockage pour l'[état](https://developer.hashicorp.com/terraform/language/state) Terraform, tel qu'un bucket Amazon Simple Storage Service (Amazon S3) et une table Amazon DynamoDB servant de backend distant pour stocker l'état Terraform. Pour plus d'informations sur l'utilisation de backends distants pour l'état Terraform, consultez [Amazon S3 Backends](https://www.terraform.io/language/settings/backends/s3) (documentation Terraform). Pour un exemple de code qui configure la gestion de l'état à distance avec un backend Amazon S3, consultez [remote-state-s3-backend](https://registry.terraform.io/modules/nozaq/remote-state-s3-backend/aws/latest) (Terraform Registry). Notez les critères suivants :
  + Le compartiment Amazon S3 et la table DynamoDB doivent se trouver dans le même emplacement. Région AWS
  + Lors de la création de la table DynamoDB, la clé de partition doit `LockID` être (distinguez majuscules et minuscules) et le type de clé de partition doit l'être. `String` Tous les autres paramètres du tableau doivent être à leurs valeurs par défaut. Pour plus d'informations, reportez-vous aux sections [À propos des clés primaires](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey) et [Création d'une table](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/getting-started-step-1.html) dans la documentation DynamoDB.
+ Un client SSH, installé

**Limites**
+ Ce modèle est conçu comme une preuve de concept (PoC) ou comme base pour un développement ultérieur. Il ne doit pas être utilisé sous sa forme actuelle dans les environnements de production. Avant le déploiement, ajustez l'exemple de code dans le référentiel en fonction de vos besoins et de votre cas d'utilisation.
+ Ce modèle suppose que l'hôte bastion cible utilise Amazon Linux 2 comme système d'exploitation. Bien qu'il soit possible d'utiliser d'autres Amazon Machine Images (AMIs), ce modèle ne s'applique pas aux autres systèmes d'exploitation.
**Note**  
Le support d'Amazon Linux 2 touche à sa fin. Pour plus d'informations, consultez [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).
+ Dans ce modèle, l'hôte bastion est situé dans un sous-réseau privé sans passerelle NAT ni passerelle Internet. Cette conception isole l' EC2 instance Amazon de l'Internet public. Vous pouvez ajouter une configuration réseau spécifique qui lui permet de communiquer avec Internet. Pour plus d'informations, consultez [Connecter votre cloud privé virtuel (VPC) à d'autres réseaux](https://docs.aws.amazon.com/vpc/latest/userguide/extend-intro.html) dans la documentation Amazon VPC. De même, conformément au [principe du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege), l'hôte du bastion n'a accès à aucune autre ressource de votre site, Compte AWS sauf si vous lui accordez explicitement des autorisations. Pour plus d'informations, consultez la section [Politiques basées sur les ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) dans la documentation IAM.

**Versions du produit**
+ Version 2 de l'interface de ligne de commande AWS
+ Terraform version 1.3.9

## Architecture
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-architecture"></a>

**Pile technologique cible**
+ Un VPC avec un seul sous-réseau privé
+ Les points de [terminaison VPC d'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) suivants :
  + `amazonaws.<region>.ssm`— Le point de terminaison du AWS Systems Manager service.
  + `amazonaws.<region>.ec2messages`— Systems Manager utilise ce point de terminaison pour passer des appels depuis l'agent SSM vers le service Systems Manager.
  + `amazonaws.<region>.ssmmessages`— Le gestionnaire de session utilise ce point de terminaison pour se connecter à votre EC2 instance Amazon via un canal de données sécurisé.
+ Une EC2 instance `t3.nano` Amazon exécutant Amazon Linux 2
+ Rôle IAM et profil d'instance
+ Groupes de sécurité Amazon VPC et règles de groupe de sécurité pour les points de terminaison et l'instance Amazon EC2 

**Architecture cible**

![\[Schéma d'architecture de l'utilisation du gestionnaire de session pour accéder à un hôte bastion.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/a02aed20-1852-4c91-902f-f553795006e2/images/819c503b-7eec-4a9c-862b-b87107d50dc1.png)


Le schéma montre le processus suivant :

1. L'utilisateur assume un rôle IAM autorisé à effectuer les opérations suivantes :
   + Authentifier, autoriser et se connecter à l'instance Amazon EC2 
   + Démarrer une session avec le gestionnaire de session

1. L'utilisateur lance une session SSH via le gestionnaire de session.

1. Le gestionnaire de session authentifie l'utilisateur, vérifie les autorisations dans les politiques IAM associées, vérifie les paramètres de configuration et envoie un message à l'agent SSM pour ouvrir une connexion bidirectionnelle.

1. L'utilisateur transmet la clé publique SSH à l'hôte Bastion via les métadonnées Amazon. EC2 Cela doit être fait avant chaque connexion. La clé publique SSH reste disponible pendant 60 secondes.

1. L'hôte Bastion communique avec les points de terminaison VPC de l'interface pour Systems Manager et Amazon. EC2

1. L'utilisateur accède à l'hôte Bastion via le gestionnaire de session en utilisant un canal de communication bidirectionnel crypté TLS 1.2.

**Automatisation et évolutivité**

Les options suivantes sont disponibles pour automatiser le déploiement ou faire évoluer cette architecture :
+ Vous pouvez déployer l'architecture via un pipeline d'intégration et de livraison continues (CI/CD).
+ Vous pouvez modifier le code pour changer le type d'instance de l'hôte Bastion.
+ Vous pouvez modifier le code pour déployer plusieurs hôtes bastions. Dans le `bastion-host/main.tf` fichier, dans le bloc de `aws_instance` ressources, ajoutez le `count` méta-argument. Pour plus d'informations, consultez la documentation [Terraform](https://developer.hashicorp.com/terraform/language/meta-arguments/count).

## Outils
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-tools"></a>

**Services AWS**
+ [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.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fournit une capacité de calcul évolutive dans le AWS Cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
+ [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 Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)vous aide à gérer vos applications et votre infrastructure exécutées dans le AWS Cloud. Il simplifie la gestion des applications et des ressources, réduit le délai de détection et de résolution des problèmes opérationnels et vous aide à gérer vos AWS ressources en toute sécurité à grande échelle. Ce modèle utilise le [Gestionnaire de session](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html), une fonctionnalité de Systems Manager.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer AWS des ressources dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous pourriez exécuter dans votre propre centre de données et présente l'avantage d'utiliser l'infrastructure évolutive d' AWS.

**Autres outils**
+ [HashiCorp Terraform](https://www.terraform.io/docs) est un outil d'infrastructure en tant que code (IaC) qui vous aide à utiliser le code pour provisionner et gérer l'infrastructure et les ressources du cloud. Ce modèle utilise la [CLI Terraform](https://developer.hashicorp.com/terraform/cli).

**Référentiel de code**

Le code de ce modèle est disponible dans l'[hôte GitHub Access a bastion à l'aide du gestionnaire de session et du référentiel Amazon EC2 Instance Connect](https://github.com/aws-samples/secured-bastion-host-terraform).

## Bonnes pratiques
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-best-practices"></a>
+ Nous vous recommandons d'utiliser des outils d'analyse de code automatisés pour améliorer la sécurité et la qualité du code. Ce modèle a été scanné à l'aide de [Checkov](https://www.checkov.io/), un outil d'analyse de code statique pour IaC. Nous vous recommandons au minimum d'effectuer des contrôles de validation et de formatage de base à l'aide des commandes `terraform validate` et `terraform fmt -check -recursive` Terraform.
+ Il est recommandé d'ajouter des tests automatisés pour IaC. Pour plus d'informations sur les différentes approches pour tester le code Terraform, consultez [Testing HashiCorp Terraform (article de blog Terraform](https://www.hashicorp.com/blog/testing-hashicorp-terraform)).
+ Lors du déploiement, Terraform utilise l' EC2 instance Amazon qui remplace chaque fois qu'une nouvelle version de l'[AMI Amazon Linux 2 est détectée](https://aws.amazon.com/marketplace/pp/prodview-zc4x2k7vt6rpu?sr=0-1&ref_=beagle&applicationId=AWSMPContessa). Cela déploie la nouvelle version du système d'exploitation, y compris les correctifs et les mises à niveau. Si le calendrier de déploiement est peu fréquent, cela peut présenter un risque de sécurité car l'instance ne dispose pas des derniers correctifs. Il est important de mettre à jour et d'appliquer fréquemment des correctifs de sécurité aux EC2 instances Amazon déployées. Pour plus d'informations, consultez la section [Gestion des mises à jour sur Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/update-management.html).
+ Ce modèle étant une preuve de concept, il utilise des politiques AWS gérées, telles que`AmazonSSMManagedInstanceCore`. AWS les politiques gérées couvrent les cas d'utilisation courants mais n'accordent pas d'autorisations de moindre privilège. Selon les besoins de votre cas d'utilisation, nous vous recommandons de créer des politiques personnalisées qui accordent des autorisations de moindre privilège pour les ressources déployées dans cette architecture. Pour plus d'informations, voir [Commencer avec les politiques AWS gérées et passer aux autorisations du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-use-aws-defined-policies).
+ Utilisez un mot de passe pour protéger l'accès aux clés SSH et stockez les clés dans un emplacement sécurisé.
+ Configurez la journalisation et la surveillance pour l'hôte du bastion. La journalisation et la surveillance sont des éléments importants de la maintenance des systèmes, tant du point de vue opérationnel que de la sécurité. Il existe plusieurs manières de surveiller les connexions et l'activité dans votre hôte Bastion. Pour plus d'informations, consultez les rubriques suivantes dans la documentation de Systems Manager :
  + [Surveillance AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring.html)
  + [Connexion et surveillance AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/logging-and-monitoring.html)
  + [Activité des sessions d'audit](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-auditing.html)
  + [Journalisation de l’activité de session](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging.html)

## Épopées
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-epics"></a>

### Déployez les ressources
<a name="deploy-the-resources"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le référentiel de code. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingénieur, développeur | 
| Initialisez le répertoire de travail Terraform. | Cette étape n'est nécessaire que pour le premier déploiement. Si vous redéployez le modèle, passez à l'étape suivante.Dans le répertoire racine du dépôt cloné, entrez la commande suivante, où :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html)<pre>terraform init \<br />    -backend-config="bucket=$S3_STATE_BUCKET" \<br />    -backend-config="key=$PATH_TO_STATE_FILE" \<br />    -backend-config="region=$AWS_REGION</pre>Vous pouvez également ouvrir le fichier **config.tf** et, dans la `terraform` section, fournir ces valeurs manuellement. | DevOps ingénieur, Développeur, Terraform | 
| Déployez les ressources. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingénieur, Développeur, Terraform | 

### Configuration de l'environnement local
<a name="set-up-the-local-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez la connexion SSH. | Mettez à jour le fichier de configuration SSH pour autoriser les connexions SSH via le gestionnaire de session. Pour obtenir des instructions, consultez [Autoriser les connexions SSH pour le gestionnaire de session](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html#ssh-connections-enable). Cela permet aux utilisateurs autorisés de saisir une commande proxy qui démarre une session du gestionnaire de session et transfère toutes les données via une connexion bidirectionnelle. | DevOps ingénieur | 
| Générez les clés SSH. | Entrez la commande suivante pour générer une paire de clés SSH privées et publiques locales. Vous utilisez cette paire de clés pour vous connecter à l'hôte Bastion.<pre>ssh-keygen -t rsa -f my_key</pre> | DevOps ingénieur, développeur | 

### Connectez-vous à l'hôte Bastion à l'aide du gestionnaire de session
<a name="connect-to-the-bastion-host-by-using-sesh"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Obtenez l'ID de l'instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | AWS général | 
| Envoyez la clé publique SSH. | Dans cette section, vous allez télécharger la clé publique vers les [métadonnées d'instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) de l'hôte Bastion. Une fois la clé téléchargée, vous avez 60 secondes pour établir une connexion avec l'hôte du bastion. Au bout de 60 secondes, la clé publique est supprimée. Pour plus d'informations, consultez la section [Dépannage](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-troubleshooting) de ce modèle. Effectuez rapidement les étapes suivantes pour éviter que la clé ne soit supprimée avant de vous connecter à l'hôte Bastion.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | AWS général | 
| Connectez-vous à l'hôte Bastion. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html)Il existe d'autres options pour ouvrir une connexion SSH avec l'hôte Bastion. Pour plus d'informations, consultez la section Autres *approches pour établir une connexion SSH avec l'hôte Bastion* dans la section [Informations supplémentaires](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-additional) de ce modèle. | AWS général | 

### (Facultatif) Nettoyer
<a name="optional-clean-up"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez les ressources déployées. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingénieur, Développeur, Terraform | 

## Résolution des problèmes
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| `TargetNotConnected`erreur lors de la tentative de connexion à l'hôte bastion | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | 
| `Permission denied`erreur lors de la tentative de connexion à l'hôte bastion | Une fois la clé publique téléchargée sur l'hôte du bastion, vous n'avez que 60 secondes pour établir la connexion. Après 60 secondes, la clé est automatiquement supprimée et vous ne pouvez pas l'utiliser pour vous connecter à l'instance. Dans ce cas, vous pouvez répéter l'étape pour renvoyer la clé à l'instance. | 

## Ressources connexes
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-resources"></a>

**AWS documentation**
+ [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)(documentation de Systems Manager)
+ [Installez le plugin Session Manager pour AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) (documentation Systems Manager)
+ [Autoriser les connexions SSH pour Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html#ssh-connections-enable) (documentation Systems Manager)
+ [À propos de l'utilisation d' EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html) ( EC2 documentation Amazon)
+ [Connectez-vous à l'aide d' EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-methods.html) ( EC2 documentation Amazon)
+ [Gestion des identités et des accès pour Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-iam.html) ( EC2 documentation Amazon)
+ [Utilisation d'un rôle IAM pour accorder des autorisations aux applications exécutées sur des EC2 instances Amazon](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) (documentation IAM)
+ [Bonnes pratiques de sécurité dans l'IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (documentation IAM)
+ [Contrôlez le trafic vers les ressources à l'aide de groupes de sécurité](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) (documentation Amazon VPC)

**Autres ressources**
+ [Page Web du développeur Terraform](https://developer.hashicorp.com/terraform)
+ [Commande : valider](https://developer.hashicorp.com/terraform/cli/commands/validate) (documentation Terraform)
+ [Commande : fmt (documentation](https://developer.hashicorp.com/terraform/cli/commands/fmt) Terraform)
+ [Tester HashiCorp Terraform](https://www.hashicorp.com/blog/testing-hashicorp-terraform) (HashiCorp article de blog)
+ [Page Web de Checkov](https://www.checkov.io/)

## Informations supplémentaires
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-additional"></a>

**Autres approches pour établir une connexion SSH avec l'hôte Bastion**

*Réacheminement de port*

Vous pouvez utiliser `-D 8888` cette option pour ouvrir une connexion SSH avec une redirection de port dynamique. Pour plus d'informations, consultez les [instructions](https://explainshell.com/explain?cmd=ssh+-i+%24PRIVATE_KEY_FILE+-D+8888+ec2-user%40%24INSTANCE_ID) sur explainshell.com. Voici un exemple de commande permettant d'ouvrir une connexion SSH à l'aide de la redirection de port.

```
ssh -i $PRIVATE_KEY_FILE -D 8888 ec2-user@$INSTANCE_ID
```

Ce type de connexion ouvre un proxy SOCKS qui peut transférer le trafic depuis votre navigateur local via l'hôte Bastion. Si vous utilisez Linux ou macOS, pour voir toutes les options, entrez`man ssh`. Cela affiche le manuel de référence SSH.

*En utilisant le script fourni*

Au lieu d'exécuter manuellement les étapes décrites dans *Connect to the bastion host by using Session Manager* dans la section [Epics](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-epics), vous pouvez utiliser le script **connect.sh** inclus dans le référentiel de code. Ce script génère la paire de clés SSH, transmet la clé publique à l' EC2 instance Amazon et établit une connexion avec l'hôte Bastion. Lorsque vous exécutez le script, vous transmettez le tag et le nom de la clé en tant qu'arguments. Voici un exemple de commande permettant d'exécuter le script.

```
./connect.sh sandbox-dev-bastion-host my_key
```

# Centralisation de la résolution DNS à l'aide AWS Managed Microsoft AD et sur site de Microsoft Active Directory
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory"></a>

*Brian Westmoreland, Amazon Web Services*

## Résumé
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-summary"></a>

Ce modèle fournit des conseils pour centraliser la résolution DNS dans un environnement AWS multi-comptes en utilisant à la fois AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) et Amazon Route 53. Dans ce modèle, l'espace de noms AWS DNS est un sous-domaine de l'espace de noms DNS local. Ce modèle fournit également des conseils sur la façon de configurer les serveurs DNS locaux pour transférer les requêtes AWS lorsque la solution DNS locale utilise Microsoft Active Directory.  

## Conditions préalables et limitations
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-prereqs"></a>

**Conditions préalables**
+ Un environnement AWS multi-comptes configuré à l'aide AWS Organizations de.
+ Connectivité réseau établie entre Comptes AWS.
+ Connectivité réseau établie entre AWS et l'environnement sur site (en utilisant AWS Direct Connect ou tout type de connexion VPN).
+ AWS Command Line Interface (AWS CLI) configuré sur un poste de travail local.
+ AWS Resource Access Manager (AWS RAM) utilisé pour partager les règles de Route 53 entre les comptes. Par conséquent, le partage doit être activé dans l' AWS Organizations environnement, comme décrit dans la section [Epics](#centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-epics).

**Limites**
+ AWS Managed Microsoft AD L'édition standard est limitée à 5 partages.
+ AWS Managed Microsoft AD L'édition Enterprise est limitée à 125 actions.
+ La solution dans ce modèle se limite à Régions AWS ce support via le partage AWS RAM.

**Versions du produit**
+ Microsoft Active Directory s'exécute sous Windows Server 2008, 2012, 2012 R2 ou 2016.

## Architecture
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-architecture"></a>

**Architecture cible**

![\[Architecture pour une résolution DNS centralisée sur AWS.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/91430e2a-f7f6-4dbe-9fe7-8abed1f764a7/images/9b5fc51d-590b-468f-80f7-1949f3b3b258.png)


Dans cette conception, AWS Managed Microsoft AD est installé dans les services partagés Compte AWS. Bien qu'il ne s'agisse pas d'une exigence, ce modèle suppose cette configuration. Si vous configurez AWS Managed Microsoft AD différemment Compte AWS, vous devrez peut-être modifier les étapes de la section [Epics](#centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-epics) en conséquence.

Cette conception utilise les résolveurs Route 53 pour prendre en charge la résolution de noms grâce aux règles Route 53. Si la solution DNS sur site utilise le DNS Microsoft, la création d'une règle de transfert conditionnelle pour l'espace de noms AWS (`aws.company.com`), qui est un sous-domaine de l'espace de noms DNS de l'entreprise (`company.com`), n'est pas simple. Si vous essayez de créer un redirecteur conditionnel traditionnel, une erreur se produira. Cela est dû au fait que Microsoft Active Directory est déjà considéré comme faisant autorité pour tous les sous-domaines de. `company.com` Pour contourner cette erreur, vous devez d'abord créer une délégation pour `aws.company.com` déléguer l'autorité de cet espace de noms. Vous pouvez ensuite créer le redirecteur conditionnel.

Le cloud privé virtuel (VPC) de chaque compte parlé peut avoir son propre espace de noms DNS unique basé sur l'espace de noms racine. AWS Dans cette conception, chaque compte Spoke ajoute une abréviation du nom du compte à l'espace de noms AWS de base. Une fois que les zones hébergées privées dans le compte parlé ont été créées, les zones sont associées au VPC local dans le compte parlé ainsi qu'au VPC dans le compte réseau central. AWS Cela permet au compte du AWS réseau central de répondre aux requêtes DNS relatives aux comptes parlés. Ainsi, Route 53 et Route AWS Managed Microsoft AD travaillent ensemble pour partager la responsabilité de la gestion de l'espace de AWS noms (`aws.company.com`).

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

Cette conception utilise les points de terminaison Route 53 Resolver pour redimensionner les requêtes DNS entre AWS et votre environnement sur site. Chaque point de terminaison Route 53 Resolver comprend plusieurs interfaces réseau élastiques (réparties sur plusieurs zones de disponibilité), et chaque interface réseau peut traiter jusqu'à 10 000 requêtes par seconde. Route 53 Resolver prend en charge jusqu'à 6 adresses IP par point de terminaison. Au total, cette conception prend en charge jusqu'à 60 000 requêtes DNS par seconde réparties sur plusieurs zones de disponibilité pour une haute disponibilité.  

De plus, ce modèle tient automatiquement compte de la future croissance interne AWS. Il n'est pas nécessaire de modifier les règles de transfert DNS configurées sur site pour prendre en charge les nouvelles zones hébergées privées VPCs et leurs zones associées qui sont ajoutées à AWS. 

## Outils
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-tools"></a>

**Services AWS**
+ [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)permet à vos charges de travail et à vos AWS ressources sensibles aux annuaires d'utiliser Microsoft Active Directory dans le. AWS Cloud
+ [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.
+ [AWS Resource Access Manager (AWS RAM)](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) vous permet de partager vos ressources en toute sécurité afin Comptes AWS de réduire les frais opérationnels et de garantir visibilité et auditabilité.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) est un service Web DNS hautement disponible et évolutif.

**Outils**
+ [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. Dans ce modèle, le AWS CLI est utilisé pour configurer les autorisations Route 53.

## Épopées
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-epics"></a>

### Création et partage d'un AWS Managed Microsoft AD répertoire
<a name="create-and-share-an-managed-ad-directory"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrateur AWS | 
| Partagez le répertoire. | Une fois le répertoire créé, partagez-le avec d'autres membres Comptes AWS de l' AWS organisation. Pour obtenir des instructions, consultez la section [Partager votre répertoire](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step2_share_directory.html) dans le *Guide d'AWS Directory Service administration*.  AWS Managed Microsoft AD L'édition standard est limitée à 5 partages. L'édition Enterprise est limitée à 125 actions. | Administrateur AWS | 

### Configurer Route 53
<a name="configure-r53"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez des résolveurs Route 53. | Les résolveurs Route 53 facilitent la résolution des requêtes DNS entre AWS et le centre de données sur site.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html)Bien que l'utilisation du compte AWS réseau central VPC ne soit pas obligatoire, les étapes restantes supposent cette configuration. | Administrateur AWS | 
| Créez les règles de la Route 53. | Votre cas d'utilisation spécifique peut nécessiter un grand nombre de règles Route 53, mais vous devrez configurer les règles suivantes comme référence :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html)Pour plus d'informations, consultez [la section Gestion des règles de transfert](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html) dans le *Guide du développeur de Route 53*. | Administrateur AWS | 
| Configurez un profil Route 53. | Un profil Route 53 est utilisé pour partager les règles avec les comptes Spoke.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrateur AWS | 

### Configuration du DNS Active Directory sur site
<a name="configure-on-premises-active-directory-dns"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez la délégation. | Utilisez le composant logiciel enfichable Microsoft DNS (`dnsmgmt.msc`) pour créer une nouvelle délégation pour l'espace de `company.com` noms dans Active Directory. Le nom du domaine délégué doit être`aws`. Cela constitue le nom de domaine complet (FQDN) de la délégation`aws.company.com`. Utilisez les adresses IP des contrôleurs de AWS Managed Microsoft AD domaine pour les valeurs IP du serveur de noms, et `server.aws.company.com` utilisez-les pour le nom. (Cette délégation est uniquement destinée à la redondance, car un redirecteur conditionnel sera créé pour cet espace de noms qui aura priorité sur la délégation.) | Active Directory | 
| Créez le redirecteur conditionnel. | Utilisez le composant logiciel enfichable Microsoft DNS (`dnsmgmt.msc`) pour créer un nouveau redirecteur conditionnel pour. `aws.company.com`  Utilisez les adresses IP des résolveurs Route 53 AWS entrants dans le DNS central Compte AWS pour la cible du redirecteur conditionnel.   | Active Directory | 

### Créez des zones hébergées privées Route 53 pour Spoke Comptes AWS
<a name="create-r53-private-hosted-zones-for-spoke-aws-accounts"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez les zones hébergées privées Route 53. | Créez une zone hébergée privée Route 53 dans chaque compte Spoke. Associez cette zone hébergée privée au VPC du compte Spoke. Pour connaître les étapes détaillées, consultez [la section Création d'une zone hébergée privée](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) dans le *Guide du développeur de Route 53*. | Administrateur AWS | 
| Créez des autorisations. | Utilisez le AWS CLI pour créer une autorisation pour le compte AWS VPC du réseau central. Exécutez cette commande à partir du contexte de chaque rayon Compte AWS :<pre>aws route53 create-vpc-association-authorization --hosted-zone-id <hosted-zone-id> \<br />   --vpc VPCRegion=<region>,VPCId=<vpc-id></pre>où :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrateur AWS | 
| Créez des associations. | Créez l'association de zone hébergée privée Route 53 pour le compte VPC du AWS réseau central à l'aide du. AWS CLI Exécutez cette commande depuis le contexte du compte AWS réseau central :<pre>aws route53 associate-vpc-with-hosted-zone --hosted-zone-id <hosted-zone-id> \<br />   --vpc VPCRegion=<region>,VPCId=<vpc-id></pre>où :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory.html) | Administrateur AWS | 

## Ressources connexes
<a name="centralize-dns-resolution-by-using-aws-managed-microsoft-ad-and-on-premises-microsoft-active-directory-resources"></a>
+ [Simplifiez la gestion du DNS dans un environnement multi-comptes avec Route 53 Resolver](https://aws.amazon.com/blogs/security/simplify-dns-management-in-a-multiaccount-environment-with-route-53-resolver/) (AWS article de blog)
+ [Création de votre AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_create_directory.html) (AWS Directory Service documentation)
+ [Partage d'un AWS Managed Microsoft AD répertoire](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step2_share_directory.html) (AWS Directory Service documentation)
+ [Qu'est-ce que c'est Amazon Route 53 Resolver ?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html) (documentation Amazon Route 53)
+ [Création d'une zone hébergée privée](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) (documentation Amazon Route 53)
+ [Que sont les profils Amazon Route 53 ?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/profiles.html) (documentation Amazon Route 53)

# Centralisez la surveillance à l'aide d'Amazon CloudWatch Observability Access Manager
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager"></a>

*Anand Krishna Varanasi, JAGDISH KOMAKULA, Ashish Kumar, Jimmy Morgan, Sarat Chandra Pothula, Vivek Thangamuthu et Balaji Vedagiri, Amazon Web Services*

## Résumé
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-summary"></a>

L'observabilité est essentielle à la surveillance, à la compréhension et au dépannage des applications. Les applications qui couvrent plusieurs comptes, comme les AWS Control Tower implémentations de zones de landing zone, génèrent un grand nombre de journaux et de données de suivi. Pour résoudre rapidement les problèmes ou comprendre les analyses des utilisateurs ou les analyses commerciales, vous avez besoin d'une plateforme d'observabilité commune à tous les comptes. L'Amazon CloudWatch Observability Access Manager vous permet d'accéder à plusieurs journaux de comptes et de les contrôler à partir d'un emplacement central.

Vous pouvez utiliser le gestionnaire d'accès à l'observabilité pour consulter et gérer les journaux de données d'observabilité générés par les comptes sources. Les comptes sources sont des comptes individuels Comptes AWS qui génèrent des données d'observabilité pour leurs ressources. Les données d'observabilité sont partagées entre les comptes sources et les comptes de surveillance. Les données d'observabilité partagées peuvent inclure des métriques dans Amazon CloudWatch, des logs dans Amazon CloudWatch Logs et des traces in AWS X-Ray. Pour plus d'informations, consultez la [documentation d'Observability Access Manager](https://docs.aws.amazon.com/OAM/latest/APIReference/Welcome.html).

Ce modèle est destiné aux utilisateurs dont les applications ou les infrastructures s'exécutent en plusieurs parties Comptes AWS et qui ont besoin d'un emplacement commun pour consulter les journaux. Il explique comment configurer Observability Access Manager à l'aide de Terraform, pour surveiller l'état et l'état de santé de ces applications ou infrastructures. Vous pouvez installer cette solution de plusieurs manières :
+ En tant que module Terraform autonome que vous configurez manuellement
+ En utilisant un pipeline d'intégration continue et de livraison continue (CI/CD)
+ En s'intégrant à d'autres solutions telles que [AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html)

Les instructions de la section [Epics](#centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-epics) couvrent la mise en œuvre manuelle. Pour les étapes d'installation d'AFT, consultez le fichier README du référentiel GitHub [Observability Access Manager](https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform).

## Conditions préalables et limitations
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-prereqs"></a>

**Conditions préalables**
+ [Terraform](https://www.terraform.io/) installé ou référencé dans votre système ou dans des pipelines automatisés. (Nous vous recommandons d'utiliser la [dernière version](https://releases.hashicorp.com/terraform/).)
+ Un compte que vous pouvez utiliser comme compte de surveillance centralisé. D'autres comptes créent des liens vers le compte de surveillance central afin de consulter les journaux.
+ (Facultatif) Un référentiel de code source tel qu' GitHubAtlassian Bitbucket ou un système similaire. AWS CodeCommit Un référentiel de code source n'est pas nécessaire si vous utilisez des CI/CD pipelines automatisés.
+ (Facultatif) Autorisations permettant de créer des pull requests (PRs) pour la révision du code et la collaboration en matière de code dans GitHub.

**Limites**

Observability Access Manager dispose des quotas de service suivants, qui ne peuvent pas être modifiés. Tenez compte de ces quotas avant de déployer cette fonctionnalité. Pour plus d'informations, consultez la section [Quotas de CloudWatch service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html) dans la CloudWatch documentation.
+ **Liens vers des comptes sources** : vous pouvez associer chaque compte source à un maximum de cinq comptes de surveillance.
+ **Réservoirs** : vous pouvez créer plusieurs récepteurs pour un compte, mais un seul récepteur par compte Région AWS est autorisé.

En outre :
+ Les cuvettes et les liens doivent être créés de la même manière Région AWS ; ils ne peuvent pas être interrégionaux.

**Surveillance entre régions et entre comptes**

Pour la surveillance entre régions et entre comptes, vous pouvez choisir l'une des options suivantes :
+ Créez des [ CloudWatch tableaux de bord inter-comptes et interrégionaux pour les](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html) alarmes et les métriques. Cette option ne prend pas en charge les journaux et les traces.
+ Implémentez la [journalisation centralisée](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html) à l'aide d'Amazon OpenSearch Service.
+ Créez un récepteur par région à partir de tous les comptes locataires, envoyez les métriques vers un compte de surveillance centralisé (comme décrit dans ce modèle), puis utilisez des [flux de CloudWatch métriques](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html) pour envoyer les données vers une destination externe commune ou vers des produits de surveillance tiers tels que Datadog, Dynatrace, Sumo Logic, Splunk ou New Relic.

## Architecture
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-architecture"></a>

**Composants**

CloudWatch Observability Access Manager se compose de deux composants principaux qui permettent l'observabilité entre comptes :
+ Un *récepteur* permet aux comptes source d'envoyer des données d'observabilité au compte de surveillance central. Un récepteur fournit essentiellement une passerelle à laquelle les comptes source peuvent se connecter. Il ne peut y avoir qu'une seule passerelle ou connexion réceptrice, et plusieurs comptes peuvent s'y connecter.
+ Chaque compte source possède un *lien vers* la jonction de la passerelle réceptrice, et les données d'observabilité sont envoyées via ce lien. Vous devez créer un récepteur avant de créer des liens à partir de chaque compte source.

**Architecture**

Le schéma suivant illustre Observability Access Manager et ses composants.

![\[Architecture pour une observabilité entre comptes avec des puits et des liens.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/00603763-4f99-456e-85e7-a80d803b087d/images/5188caf9-348b-4d91-b560-2b3d6ea81191.png)


## Outils
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-tools"></a>

**Services AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) vous CloudWatch aide à surveiller les indicateurs de vos AWS ressources et des applications que vous utilisez AWS en temps réel.
+ [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.
+ [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.

**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.
+ [AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) met en place un pipeline Terraform pour vous aider à provisionner et à personnaliser des comptes dans. AWS Control Tower Vous pouvez éventuellement utiliser AFT pour configurer Observability Access Manager à grande échelle sur plusieurs comptes.

**Référentiel de code**

Le code de ce modèle est disponible dans le référentiel GitHub [Observability Access Manager](https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform).

## Bonnes pratiques
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-best-practices"></a>
+ Dans AWS Control Tower les environnements, marquez le compte de journalisation comme compte de surveillance central (récepteur).
+ Si plusieurs organisations possèdent plusieurs comptes AWS Organizations, nous vous recommandons d'inclure les organisations plutôt que les comptes individuels dans la politique de configuration. Si vous avez un petit nombre de comptes ou si les comptes ne font pas partie d'une organisation dans la politique de configuration du récepteur, vous pouvez décider d'inclure des comptes individuels à la place.

## Épopées
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-epics"></a>

### Configuration du module d'évier
<a name="set-up-the-sink-module"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Pour cloner le référentiel. | Clonez le référentiel GitHub Observability Access Manager :<pre>git clone https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform</pre> | AWS DevOps, administrateur du cloud, administrateur AWS | 
| Spécifiez les valeurs des propriétés du module récepteur. | Dans le `main.tf` fichier (dans le `deployments/aft-account-customizations/LOGGING/terraform/`**** dossier du référentiel), spécifiez les valeurs des propriétés suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Pour plus d'informations, consultez [AWS::Oam::Sink](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-sink.html)la CloudFormation documentation. | AWS DevOps, administrateur du cloud, administrateur AWS | 
| Installez le module d'évier. | Exportez les informations d'identification du compte Compte AWS que vous avez sélectionné comme compte de surveillance et installez le module récepteur Observability Access Manager :<pre>Terraform Init<br />Terrafom Plan<br />Terraform Apply</pre> | AWS DevOps, administrateur du cloud, administrateur AWS | 

### Configuration du module de liaison
<a name="set-up-the-link-module"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Spécifiez les valeurs des propriétés du module de liaison. | Dans le `main.tf ` fichier (dans le `deployments/aft-account-customizations/LOGGING/terraform/`**** dossier du référentiel), spécifiez les valeurs des propriétés suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Pour plus d'informations, consultez [AWS::Oam::Link](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-oam-link.html)la CloudFormation documentation. | AWS DevOps, administrateur du cloud, architecte du cloud | 
| Installez le module de liaison pour les comptes individuels. | Exportez les informations d'identification des comptes individuels et installez le module de lien Observability Access Manager :<pre>Terraform Plan<br />Terraform Apply</pre>Vous pouvez configurer le module de liaison individuellement pour chaque compte ou utiliser [AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) pour installer automatiquement ce module sur un grand nombre de comptes. | AWS DevOps, administrateur du cloud, architecte du cloud | 

### Approuver sink-to-link les connexions
<a name="approve-sink-to-link-connections"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Vérifiez le message d'état. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Sur la droite, vous devriez voir le message d'état **Monitoring account enabled** avec une coche verte. Cela signifie que le compte de surveillance dispose d'un récepteur Observability Access Manager auquel les liens des autres comptes se connecteront. |  | 
| Approuvez les link-to-sink connexions. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Pour plus d'informations, consultez la section [Lier les comptes de surveillance aux comptes sources](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account-Setup.html) dans la CloudWatch documentation. | AWS DevOps, administrateur du cloud, architecte du cloud | 

### Vérifier les données d'observabilité entre comptes
<a name="verify-cross-account-observability-data"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Afficher les données entre comptes. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html) | AWS DevOps, administrateur du cloud, architecte du cloud | 

### (Facultatif) Permettre aux comptes source de faire confiance au compte de surveillance
<a name="optional-enable-source-accounts-to-trust-monitoring-account"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Consultez les métriques, les tableaux de bord, les journaux, les widgets et les alarmes d'autres comptes. | En tant que fonctionnalité supplémentaire,**** vous pouvez partager les CloudWatch métriques, les tableaux de bord, les journaux, les widgets et les alarmes avec d'autres comptes. Chaque compte utilise un rôle IAM appelé **CloudWatch- CrossAccountSharingRole ** pour accéder à ces données.Les comptes sources entretenant une relation de confiance avec le compte de surveillance central peuvent assumer ce rôle et consulter les données du compte de surveillance.CloudWatch fournit un exemple de CloudFormation script pour créer le rôle. Choisissez **Gérer le rôle dans IAM** et exécutez ce script dans les comptes sur lesquels vous souhaitez consulter les données.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": [<br />                    "arn:aws:iam::XXXXXXXXX:root",<br />                    "arn:aws:iam::XXXXXXXXX:root",<br />                    "arn:aws:iam::XXXXXXXXX:root",<br />                    "arn:aws:iam::XXXXXXXXX:root"<br />                ]<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}</pre>Pour plus d'informations, consultez la section [Activation de la fonctionnalité multi-comptes CloudWatch dans](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html#enable-cross-account-cross-Region) la CloudWatch documentation. | AWS DevOps, administrateur du cloud, architecte du cloud | 

### (Facultatif) Afficher les comptes entre les régions à partir du compte de surveillance
<a name="optional-view-cross-account-cross-region-from-the-monitoring-account"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez un accès entre comptes et entre régions. | Dans le compte de surveillance central, vous pouvez éventuellement ajouter un sélecteur de compte pour passer facilement d'un compte à l'autre et consulter leurs données sans avoir à vous authentifier.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager.html)Pour plus d'informations, consultez la [section CloudWatch Console entre comptes et régions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html) dans la CloudWatch documentation. | AWS DevOps, administrateur du cloud, architecte du cloud | 

## Ressources connexes
<a name="centralize-monitoring-by-using-amazon-cloudwatch-observability-access-manager-resources"></a>
+ [CloudWatch observabilité entre comptes (documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html) Amazon CloudWatch )
+ [Référence d'API Amazon CloudWatch Observability Access Manager](https://docs.aws.amazon.com/OAM/latest/APIReference/Welcome.html) ( CloudWatch documentation Amazon)
+ [Ressource : aws\$1oam\$1sink](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/oam_sink) (documentation Terraform)
+ [Source de données : aws\$1oam\$1link](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/oam_link) (documentation Terraform)
+ [CloudWatchObservabilityAccessManager](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/oam.html)(documentation AWS Boto3)

# Vérifiez les EC2 instances pour les balises obligatoires au lancement
<a name="check-ec2-instances-for-mandatory-tags-at-launch"></a>

*Susanne Kangnoh et l'architecte Mathur, Amazon Web Services*

## Résumé
<a name="check-ec2-instances-for-mandatory-tags-at-launch-summary"></a>

Amazon Elastic Compute Cloud (Amazon EC2) fournit une capacité de calcul évolutive dans le cloud Amazon Web Services (AWS). Avec Amazon, vous EC2 n'avez plus besoin d'investir dans du matériel dès le départ, ce qui vous permet de développer et de déployer des applications plus rapidement.

Vous pouvez utiliser le balisage pour classer vos ressources AWS de différentes manières. EC2 le balisage d'instance est utile lorsque votre compte comporte de nombreuses ressources et que vous souhaitez identifier rapidement une ressource spécifique en fonction des balises. Vous pouvez attribuer des métadonnées personnalisées à vos EC2 instances à l'aide de balises. Une balise se compose d'une clé et d'une valeur définies par l'utilisateur. Nous vous recommandons de créer un ensemble cohérent de balises pour répondre aux exigences de votre organisation. 

Ce modèle fournit un CloudFormation modèle AWS pour vous aider à surveiller les EC2 instances pour détecter des balises spécifiques. Le modèle crée un événement Amazon CloudWatch Events qui surveille l'AWS CloudTrail **TagResource**ou les **UntagResource**événements, afin de détecter le balisage ou le retrait de balises d'une nouvelle EC2 instance. Si une balise prédéfinie est absente, elle appelle une fonction AWS Lambda, qui envoie un message de violation à l'adresse e-mail que vous fournissez, à l'aide d'Amazon Simple Notification Service (Amazon SNS). 

## Conditions préalables et limitations
<a name="check-ec2-instances-for-mandatory-tags-at-launch-prerequisites-and-limitations"></a>

**Conditions préalables**
+ Un compte AWS actif.
+ Un bucket Amazon Simple Storage Service (Amazon S3) pour télécharger le code Lambda fourni.
+ Adresse e-mail à laquelle vous souhaitez recevoir des notifications de violation.

**Limites**
+ Cette solution prend en charge CloudTrail **TagResource**nos **UntagResource**événements. Il ne crée pas de notifications pour d'autres événements.
+ Cette solution vérifie uniquement les clés de balise. Il ne surveille pas les valeurs clés.

## Architecture
<a name="check-ec2-instances-for-mandatory-tags-at-launch-architecture"></a>

**Architecture** **du flux de travail**

![\[Workflow diagram showing Services AWS interaction for EC2 instance monitoring and notification.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/9cd74141-a87f-419e-94b3-0b28fd04a018/images/b48fd21b-a86b-4ec7-b9f6-4f1a64999437.png)


 

**Automatisation et évolutivité**
+ Vous pouvez utiliser le CloudFormation modèle AWS à plusieurs reprises pour différents comptes et régions AWS. Vous ne devez exécuter le modèle qu'une seule fois dans chaque région ou compte.

## Outils
<a name="check-ec2-instances-for-mandatory-tags-at-launch-tools"></a>

**Services AWS**
+ [Amazon EC2](https://aws.amazon.com/ec2/) — Amazon Elastic Compute Cloud (Amazon EC2) est un service Web qui fournit une capacité de calcul sécurisée et redimensionnable dans le cloud. Il est conçu pour faciliter le cloud computing à l'échelle du Web pour les développeurs.
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) CloudTrail est un service AWS qui vous aide en matière de gouvernance, de conformité, d'audit opérationnel et de gestion des risques de votre compte AWS. Les actions entreprises par un utilisateur, un rôle ou un service AWS sont enregistrées sous forme d'événements dans CloudTrail. 
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) — Amazon CloudWatch Events fournit un flux quasi en temps réel d'événements système décrivant les modifications apportées aux ressources AWS. CloudWatch Events prend connaissance des changements opérationnels au fur et à mesure qu'ils se produisent et prend les mesures correctives nécessaires, en envoyant des messages pour répondre à l'environnement, en activant des fonctions, en apportant des modifications et en capturant des informations d'état. 
+ [AWS Lambda — Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui prend en charge l'exécution de code sans qu'il soit nécessaire de configurer ou de gérer des serveurs. Lambda exécute le code uniquement lorsque cela est nécessaire et se met à l’échelle automatiquement, qu’il s’agisse de quelques requêtes par jour ou de milliers de requêtes par seconde. 
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html) — Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets hautement évolutif qui peut être utilisé pour un large éventail de solutions de stockage, notamment les sites Web, les applications mobiles, les sauvegardes et les lacs de données.
+ [Amazon SNS —](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) Amazon Simple Notification Service (Amazon SNS) est un service Web qui permet aux applications, aux utilisateurs finaux et aux appareils d'envoyer et de recevoir instantanément des notifications depuis le cloud.

**Code**

Ce modèle inclut une pièce jointe contenant deux fichiers :
+ `index.zip`est un fichier compressé qui inclut le code Lambda pour ce modèle.
+ `ec2-require-tags.yaml`est un CloudFormation modèle qui déploie le code Lambda.

Consultez la section *Epics* pour plus d'informations sur l'utilisation de ces fichiers.

## Épopées
<a name="check-ec2-instances-for-mandatory-tags-at-launch-epics"></a>

### Déployer le code Lambda
<a name="deploy-the-lambda-code"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Téléchargez le code dans un compartiment S3. | Créez un nouveau compartiment S3 ou utilisez un compartiment S3 existant pour télécharger le `index.zip` fichier joint (code Lambda). Ce compartiment doit se trouver dans la même région AWS que les ressources (EC2 instances) que vous souhaitez surveiller. | Architecte du cloud | 
| Déployez le CloudFormation modèle. | Ouvrez la console Cloudformation dans la même région AWS que le compartiment S3 et déployez le `ec2-require-tags.yaml` fichier fourni dans la pièce jointe. Dans l'épopée suivante, fournissez des valeurs pour les paramètres du modèle.   | Architecte du cloud | 

### Complétez les paramètres dans le CloudFormation modèle
<a name="complete-the-parameters-in-the-cloudformation-template"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Indiquez le nom du compartiment S3. | Entrez le nom du compartiment S3 que vous avez créé ou sélectionné dans le premier épisode épique. Ce compartiment S3 contient le fichier .zip pour le code Lambda et doit se trouver dans la même région AWS que CloudFormation le modèle et EC2 les instances que vous souhaitez surveiller. | Architecte du cloud | 
| Fournissez la clé S3. | Indiquez l'emplacement du fichier .zip de code Lambda dans votre compartiment S3, sans barres obliques (par exemple, ou). `index.zip` `controls/index.zip` | Architecte du cloud | 
| Indiquez une adresse e-mail. | Indiquez une adresse e-mail active à laquelle vous souhaitez recevoir des notifications de violation. | Architecte du cloud | 
| Définissez un niveau de journalisation. | Spécifiez le niveau de journalisation et la verbosité. `Info`désigne des messages d'information détaillés sur la progression de l'application et ne doit être utilisé que pour le débogage. `Error`désigne les événements d'erreur susceptibles de permettre à l'application de continuer à fonctionner. `Warning`désigne les situations potentiellement dangereuses. | Architecte du cloud | 
| Entrez les clés de tag requises. | Entrez les clés de tag que vous souhaitez vérifier. Si vous souhaitez spécifier plusieurs clés, séparez-les par des virgules, sans espaces. (Par exemple, `ApplicationId,CreatedBy,Environment,Organization` recherche quatre clés.) L'événement CloudWatch Events recherche ces clés de balise et envoie une notification si elles ne sont pas trouvées. | Architecte du cloud | 

### Confirmer l'abonnement.
<a name="confirm-the-subscription"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Confirmez l'abonnement par e-mail. | Lorsque le CloudFormation modèle est déployé avec succès, il envoie un e-mail d'abonnement à l'adresse e-mail que vous avez fournie. Pour recevoir des notifications, vous devez confirmer cet abonnement par e-mail.   | Architecte du cloud | 

## Ressources connexes
<a name="check-ec2-instances-for-mandatory-tags-at-launch-related-resources"></a>
+ [Création d'un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html) (documentation Amazon S3)
+ [Téléchargement d'objets](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/upload-objects.html) (documentation Amazon S3)
+ [Marquez vos EC2 ressources Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) ( EC2 documentation Amazon)
+ [Création d'une règle d' CloudWatch événements qui se déclenche lors d'un appel d'API AWS à l'aide d'AWS CloudTrail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html) ( CloudWatch documentation Amazon)

## Pièces jointes
<a name="attachments-9cd74141-a87f-419e-94b3-0b28fd04a018"></a>

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/9cd74141-a87f-419e-94b3-0b28fd04a018/attachments/attachment.zip)

# Nettoyez les ressources de AWS Account Factory for Terraform (AFT) en toute sécurité après la perte du fichier d'état
<a name="clean-up-aft-resources-safely-after-state-file-loss"></a>

*Gokendra Malviya, Amazon Web Services*

## Résumé
<a name="clean-up-aft-resources-safely-after-state-file-loss-summary"></a>

Lorsque vous utilisez AWS Account Factory for Terraform (AFT) pour gérer votre AWS Control Tower environnement, AFT génère un fichier d'état Terraform pour suivre l'état et la configuration des ressources créées par Terraform. La perte du fichier d'état Terraform peut créer des défis importants pour la gestion et le nettoyage des ressources. Ce modèle fournit une approche systématique pour identifier et supprimer en toute sécurité les ressources liées à l'AFT tout en préservant l'intégrité de votre AWS Control Tower environnement.

Le processus est conçu pour garantir le retrait correct de tous les composants AFT, même sans la référence au fichier d'état d'origine. Ce processus fournit une voie claire pour rétablir et reconfigurer avec succès l'AFT dans votre environnement, afin de minimiser les perturbations de vos AWS Control Tower opérations.

Pour plus d'informations sur l'AFT, consultez la [AWS Control Tower documentation](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html).

## Conditions préalables et limitations
<a name="clean-up-aft-resources-safely-after-state-file-loss-prereqs"></a>

**Conditions préalables**
+ Compréhension approfondie de l'[architecture AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-architecture.html).
+ Accès administrateur aux comptes suivants :
  + Compte de gestion AFT
  + AWS Control Tower Compte de gestion
  + Compte Log Archive
  + Compte d'audit
+ Vérification qu'aucune politique de contrôle des services (SCPs) ne contient de restrictions ou de limitations susceptibles de bloquer la suppression de ressources liées à l'AFT.

**Limites**
+ Ce processus permet de nettoyer efficacement les ressources, mais il ne peut pas récupérer les fichiers d'état perdus, et certaines ressources peuvent nécessiter une identification manuelle.
+ La durée du processus de nettoyage dépend de la complexité de votre environnement et peut prendre plusieurs heures.
+ Ce modèle a été testé avec la version 1.12.2 d'AFT et supprime les ressources suivantes. Si vous utilisez une autre version d'AFT, vous devrez peut-être supprimer des ressources supplémentaires.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html)

**Important**  
Les ressources supprimées par les étapes de ce modèle ne peuvent pas être récupérées. Avant de suivre ces étapes, vérifiez soigneusement les noms des ressources et assurez-vous qu'ils ont été créés par AFT.

## Architecture
<a name="clean-up-aft-resources-safely-after-state-file-loss-architecture"></a>

Le schéma suivant montre les composants AFT et le flux de travail de haut niveau. AFT met en place un pipeline Terraform qui vous aide à approvisionner et à personnaliser vos comptes. AWS Control Tower AFT suit un GitOps modèle pour automatiser les processus de provisionnement des comptes dans AWS Control Tower. Vous créez un fichier Terraform pour une demande de compte et vous le validez dans un référentiel, qui fournit les entrées qui déclenchent le flux de travail AFT pour le provisionnement du compte. Une fois le provisionnement du compte terminé, AFT peut exécuter automatiquement des étapes de personnalisation supplémentaires.

![\[Composants AFT et flux de travail de haut niveau.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/1342c0a6-4b07-46df-a063-ceab2e2f83c8/images/3e0cae87-20ef-4fcc-aacf-bb450844ac56.png)


Dans cette architecture :
+ AWS Control Tower Le **compte de gestion** Compte AWS est un compte dédié au AWS Control Tower service. Ceci est également généralement appelé *compte AWS payeur ou compte AWS Organizations * *de gestion*.
+ Le **compte AFT Management** Compte AWS est dédié aux opérations de gestion AFT. Ce compte est différent du compte de gestion de votre organisation.
+ Le **compte Vended** contient tous les composants et contrôles de base que vous avez sélectionnés. Compte AWS L' AWS Control Tower AFT vend un nouveau compte.

Pour plus d'informations sur cette architecture, voir [Présentation de l'AFT](https://catalog.workshops.aws/control-tower/en-US/customization/aft) dans l' AWS Control Tower atelier.

## Outils
<a name="clean-up-aft-resources-safely-after-state-file-loss-tools"></a>

**Services AWS**
+ [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.
+ [AWS Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html) met en place un pipeline Terraform pour vous aider à approvisionner et à personnaliser les comptes et les ressources dans. AWS Control Tower
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)vous permet de gérer et de gouverner votre environnement de manière centralisée à mesure que vous développez et faites évoluer vos AWS ressources. Organizations vous permet de créer des comptes et d'allouer des ressources, de regrouper des comptes pour organiser vos flux de travail, d'appliquer des politiques de gouvernance et de simplifier la facturation en utilisant un mode de paiement unique pour tous vos comptes.
+ [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. Ce modèle nécessite des rôles et des autorisations IAM.

**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.

## Bonnes pratiques
<a name="clean-up-aft-resources-safely-after-state-file-loss-best-practices"></a>
+ Pour AWS Control Tower, consultez la section [Meilleures pratiques pour AWS Control Tower les administrateurs](https://docs.aws.amazon.com/controltower/latest/userguide/best-practices.html) dans la AWS Control Tower documentation.
+ Pour IAM, consultez la section [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="clean-up-aft-resources-safely-after-state-file-loss-epics"></a>

### Supprimer les ressources AFT dans le compte de gestion AFT
<a name="delete-aft-resources-in-the-aft-management-account"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez les ressources identifiées par la balise AFT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrateur AWS, AWS DevOps, DevOps ingénieur | 
| Supprimez les rôles IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrateur AWS, AWS DevOps, DevOps ingénieur | 
| Supprimez le coffre AWS Backup de sauvegarde. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrateur AWS, AWS DevOps, DevOps ingénieur | 
| Supprimez les CloudWatch ressources Amazon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrateur AWS, AWS DevOps, DevOps ingénieur | 
| Supprimez AWS KMS des ressources. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrateur AWS, AWS DevOps, DevOps ingénieur | 

### Supprimer les ressources AFT dans le compte Log Archive
<a name="delete-aft-resources-in-the-log-archive-account"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez les compartiments S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrateur AWS, AWS DevOps, DevOps ingénieur | 
| Supprimez les rôles IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrateur AWS, AWS DevOps, DevOps ingénieur | 

### Supprimer les ressources AFT dans le compte d'audit
<a name="delete-aft-resources-in-the-audit-account"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez les rôles IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrateur AWS, AWS DevOps, DevOps ingénieur | 

### Supprimer les ressources AFT dans le compte AWS Control Tower de gestion
<a name="delete-aft-resources-in-the-ctower-management-account"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez les rôles IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrateur AWS, AWS DevOps, DevOps ingénieur | 
| Supprimez EventBridge les règles. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | Administrateur AWS, AWS DevOps, DevOps ingénieur | 

## Résolution des problèmes
<a name="clean-up-aft-resources-safely-after-state-file-loss-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Le détachement de la passerelle Internet a échoué. | Lorsque vous supprimez des ressources identifiées par la balise **AFT**, si vous rencontrez ce problème lorsque vous détachez ou supprimez la passerelle Internet, vous devez d'abord supprimer les points de terminaison VPC :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | 
| Vous ne trouvez pas les CloudWatch requêtes spécifiées. | Si vous ne trouvez pas les CloudWatch requêtes créées par AFT, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/clean-up-aft-resources-safely-after-state-file-loss.html) | 

## Ressources connexes
<a name="clean-up-aft-resources-safely-after-state-file-loss-resources"></a>
+ À L'ARRIÈRE :
  + [GitHub Référentiel](https://github.com/aws-ia/terraform-aws-control_tower_account_factory)
  + [Atelier](https://catalog.workshops.aws/control-tower/en-US/customization/aft)
  + [Documentation](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html)
+ [AWS Control Tower documentation](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html)

## Informations supplémentaires
<a name="clean-up-aft-resources-safely-after-state-file-loss-additional"></a>

Pour afficher les requêtes AFT sur le tableau de bord de CloudWatch Logs Insights, choisissez l'icône de **requêtes enregistrées et d'exemples** dans le coin supérieur droit, comme illustré dans la capture d'écran suivante :

![\[Accès aux requêtes AFT sur le tableau de bord de CloudWatch Logs Insights.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/1342c0a6-4b07-46df-a063-ceab2e2f83c8/images/255d4032-738b-4600-9084-9684d2e9a328.png)


# Créez un pipeline dans les régions AWS qui ne prennent pas en charge AWS CodePipeline
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline"></a>

*Anand Krishna Varanasi, Amazon Web Services*

## Résumé
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-summary"></a>

**Remarque** : n' AWS CodeCommit est plus disponible pour les nouveaux clients. Les clients existants de AWS CodeCommit peuvent continuer à utiliser le service normalement. [En savoir plus](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/)

AWS CodePipeline est un service d'orchestration de livraison continue (CD) qui fait partie d'un ensemble d' DevOps outils d'Amazon Web Services (AWS). Il s'intègre à une grande variété de sources (telles que les systèmes de contrôle de version et les solutions de stockage), aux produits et services d'intégration continue (CI) d'AWS et de ses partenaires, ainsi qu'aux produits open source afin de fournir un service de end-to-end flux de travail pour des déploiements rapides d'applications et d'infrastructures.

Cependant, il CodePipeline n'est pas pris en charge dans toutes les régions AWS et il est utile de disposer d'un orchestrateur invisible qui connecte les CI/CD services AWS. Ce modèle décrit comment implémenter un pipeline de end-to-end flux de travail dans les régions AWS où il CodePipeline n'est pas encore pris en charge par l'utilisation de CI/CD services AWS tels qu'AWS CodeCommit CodeBuild, AWS et AWS CodeDeploy.

## Conditions préalables et limitations
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-prereqs"></a>

**Prérequis**
+ Un compte AWS actif
+ CLI AWS Cloud Development Kit (AWS CDK) version 2.28 ou ultérieure

## Architecture
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-architecture"></a>

**Pile technologique cible**

Le schéma suivant montre un pipeline créé dans une région qui ne le prend pas en charge CodePipeline, telle que la région Afrique (Le Cap). Un développeur envoie les fichiers de CodeDeploy configuration (également appelés *scripts d'accroche du cycle de vie de déploiement*) vers le référentiel Git hébergé par CodeCommit. (Voir le [GitHub référentiel](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) fourni avec ce modèle.) Une EventBridge règle Amazon est automatiquement initiée. CodeBuild

Les fichiers CodeDeploy de configuration sont extraits dans le CodeCommit cadre de l'étape source du pipeline et transférés vers CodeBuild. 

Dans la phase suivante, CodeBuild exécute les tâches suivantes : 

1. Télécharge le fichier TAR du code source de l'application. Vous pouvez configurer le nom de ce fichier à l'aide de Parameter Store, une fonctionnalité d'AWS Systems Manager.

1. Télécharge les fichiers CodeDeploy de configuration.

1. Crée une archive combinée du code source de l'application et des fichiers de CodeDeploy configuration spécifiques au type d'application.

1. Lance le CodeDeploy déploiement sur une instance Amazon Elastic Compute Cloud (Amazon EC2) à l'aide de l'archive combinée.

![\[Création d'un pipeline dans une région AWS non prise en charge\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/e27750de-b597-424e-b5bf-4d58dc9b60cc/images/95fc815e-a762-4142-b0fd-2a716823e498.png)


## Outils
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-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 CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) est 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 CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) automatise les déploiements vers les instances Amazon EC2 ou sur site, les fonctions AWS Lambda ou les services Amazon Elastic Container Service (Amazon ECS).
+ [AWS](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) vous CodePipeline aide à modéliser et à configurer rapidement les différentes étapes d'une version logicielle et à automatiser les étapes nécessaires à la publication continue des modifications logicielles.
+ [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 l'infrastructure du cloud AWS sous forme de code.

**Code**

Le code de ce modèle est disponible dans le référentiel GitHub [CodePipeline Unsupported Regions](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions).

## Épopées
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-epics"></a>

### Configurez votre poste de travail de développeur
<a name="set-up-your-developer-workstation"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez l'interface de ligne de commande AWS CDK. | Pour obtenir des instructions, consultez la [documentation AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites). | AWS DevOps | 
| Installez un client Git. | Pour créer des validations, vous pouvez utiliser un client Git installé sur votre ordinateur local, puis transférer vos validations vers le CodeCommit référentiel. Pour effectuer la configuration CodeCommit avec votre client Git, consultez la [CodeCommit documentation](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html). | AWS DevOps | 
| Installez NPM. | Installez le gestionnaire de packages **npm**. Pour plus d'informations, consultez la [documentation npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). | AWS DevOps | 

### Configuration du pipeline
<a name="set-up-the-pipeline"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le référentiel de code. | Clonez le référentiel GitHub [CodePipeline Unsupported Regions](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) sur votre machine locale en exécutant la commande suivante.<pre>git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions</pre> | DevOps ingénieur | 
| Définissez les paramètres dans cdk.json. | Ouvrez le `cdk.json` fichier et saisissez les valeurs des paramètres suivants :<pre>"pipeline_account":"XXXXXXXXXXXX",<br />"pipeline_region":"us-west-2",<br />"repo_name": "app-dev-repo",<br />"ec2_tag_key": "test-vm",<br />"configName" : "cbdeployconfig",<br />"deploymentGroupName": "cbdeploygroup",<br />"applicationName" : "cbdeployapplication",<br />"projectName" : "CodeBuildProject"</pre>où :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline.html) | AWS DevOps | 
| Configurez la bibliothèque de constructions AWS CDK. | Dans le GitHub référentiel cloné, utilisez les commandes suivantes pour installer la bibliothèque de constructions AWS CDK, créer votre application et synthétiser afin de générer le CloudFormation modèle AWS pour l'application.<pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | AWS DevOps | 
| Déployez l'exemple d'application AWS CDK. | Déployez le code en exécutant la commande suivante dans une région non prise en charge (telle que`af-south-1`).<pre>cdk deploy</pre> | AWS DevOps | 

### Configurez le CodeCommit référentiel pour CodeDeploy
<a name="set-up-the-codecommit-repository-for-codedeploy"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configuration CI/CD pour l'application. | Clonez le CodeCommit référentiel que vous avez spécifié dans le `cdk.json` fichier (appelé `app-dev-repo` par défaut) pour configurer le CI/CD pipeline de l'application.<pre>git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo</pre>où le nom du référentiel et la région dépendent des valeurs que vous avez fournies dans le `cdk.json` fichier. | AWS DevOps | 

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


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Testez le pipeline à l'aide des instructions de déploiement. | Le `CodeDeploy_Files` dossier du référentiel GitHub [CodePipeline Unsupported Regions](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) contient des exemples de fichiers qui indiquent le déploiement CodeDeploy de l'application. Le `appspec.yml` fichier est un fichier CodeDeploy de configuration qui contient des crochets permettant de contrôler le flux de déploiement des applications. Vous pouvez utiliser les fichiers d'exemple`index.html`, `start_server.sh``stop_server.sh`, et `install_dependencies.sh` pour mettre à jour un site Web hébergé sur Apache. Ce sont des exemples : vous pouvez utiliser le code du GitHub référentiel pour déployer n'importe quel type d'application. Lorsque les fichiers sont transférés vers le CodeCommit référentiel, le pipeline invisible est lancé automatiquement. Pour obtenir les résultats du déploiement, vérifiez les résultats des différentes phases dans les CodeDeploy consoles CodeBuild et. | AWS DevOps | 

## Ressources connexes
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-resources"></a>
+ [Mise en route](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) (documentation AWS CDK)
+ [Présentation du Cloud Development Kit (CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (AWS Workshop Studio)
+ [Atelier AWS CDK](https://cdkworkshop.com/)

# 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>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>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>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.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)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
```

# Déployez un cluster Cassandra sur Amazon EC2 avec une statique privée IPs pour éviter le rééquilibrage
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing"></a>

*Dipin Jain, Amazon Web Services*

## Résumé
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-summary"></a>

L'adresse IP privée d'une instance Amazon Elastic Compute Cloud (Amazon EC2) est conservée tout au long de son cycle de vie. Cependant, l'adresse IP privée peut changer lors d'une panne système planifiée ou imprévue, par exemple lors d'une mise à niveau d'Amazon Machine Image (AMI). Dans certains scénarios, la conservation d'une adresse IP statique privée peut améliorer les performances et le temps de restauration des charges de travail. Par exemple, l'utilisation d'une adresse IP statique pour un nœud initial d'Apache Cassandra empêche le cluster de subir une surcharge de rééquilibrage. 

Ce modèle décrit comment associer une interface Elastic Network secondaire aux EC2 instances afin de maintenir l'adresse IP statique pendant le réhébergement. Le modèle se concentre sur les clusters Cassandra, mais vous pouvez utiliser cette implémentation pour toute architecture bénéficiant d'une statique IPs privée.

## Conditions préalables et limitations
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-prereqs"></a>

**Conditions préalables**
+ Un compte Amazon Web Service (AWS) actif

**Versions du produit**
+ DataStax version 5.11.1
+ Système d'exploitation : Ubuntu 16.04.6 LTS

## Architecture
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-architecture"></a>

**Architecture source**

La source peut être un cluster Cassandra sur une machine virtuelle (VM) sur site ou sur des EC2 instances du cloud AWS. Le schéma suivant illustre le second scénario. Cet exemple inclut quatre nœuds de cluster : trois nœuds de départ et un nœud de gestion. Dans l'architecture source, une seule interface réseau est attachée à chaque nœud.

![\[Quatre nœuds de EC2 cluster Amazon auxquels est attachée une seule interface réseau.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/47ca4dbc-0922-4e65-b66c-4db5122fc4ac/images/5d80cfc9-4b72-4c72-aefd-b77cc0fb58e3.png)


**Architecture cible**

Le cluster de destination est hébergé sur EC2 des instances dotées d'une interface Elastic Network secondaire attachée à chaque nœud, comme illustré dans le schéma suivant.

![\[Quatre nœuds de EC2 cluster Amazon auxquels est attachée une interface Elastic Network secondaire.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/47ca4dbc-0922-4e65-b66c-4db5122fc4ac/images/d1e22017-f041-426b-9204-31ac158a407d.png)


**Automatisation et évolutivité**

Vous pouvez également automatiser l'attachement d'une deuxième interface Elastic network à un groupe EC2 Auto Scaling, comme décrit dans une [vidéo du centre de connaissances AWS](https://www.youtube.com/watch?v=RmwGYXchb4E).

## Épopées
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-epics"></a>

### Configurer un cluster Cassandra sur Amazon EC2
<a name="configure-a-cassandra-cluster-on-amazon-ec2"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Lancez EC2 des nœuds pour héberger un cluster Cassandra. | Sur la [ EC2 console Amazon](https://console.aws.amazon.com/ec2/), lancez quatre EC2 instances pour vos nœuds Ubuntu dans votre compte AWS. Trois nœuds (de départ) sont utilisés pour le cluster Cassandra, et le quatrième nœud fait office de nœud de gestion de cluster sur lequel vous installerez DataStax Enterprise (DSE) OpsCenter. Pour obtenir des instructions, consultez la [ EC2 documentation Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance). | Ingénieur cloud | 
| Confirmez les communications entre les nœuds. | Assurez-vous que les quatre nœuds peuvent communiquer entre eux via les ports de gestion de base de données et de cluster. | Ingénieur réseau | 
| Installez DSE OpsCenter sur le nœud de gestion. | Installez DSE OpsCenter 6.1 à partir du paquet Debian sur le nœud de gestion. Pour obtenir des instructions, consultez la [DataStax documentation](https://docs.datastax.com/en/opscenter/6.1/opsc/install/opscInstallDeb_t.html). | DBA | 
| Créez une interface réseau secondaire. | Cassandra génère un identifiant unique universel (UUID) pour chaque nœud en fonction de l'adresse IP de l' EC2 instance associée à ce nœud. Cet UUID est utilisé pour distribuer des nœuds virtuels (vnodes) sur le ring. Lorsque Cassandra est déployée sur EC2 des instances, les adresses IP sont attribuées automatiquement aux instances au fur et à mesure de leur création.  En cas de panne planifiée ou imprévue, l'adresse IP de la nouvelle EC2 instance change, la distribution des données change et l'ensemble de l'anneau doit être rééquilibré. Cela n'est pas souhaitable. Pour conserver l'adresse IP attribuée, utilisez une [interface Elastic network secondaire](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#scenarios-enis) dotée d'une adresse IP fixe.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.html)Pour plus d'informations sur la création d'une interface réseau, consultez la [ EC2 documentation Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#create_eni). | Ingénieur cloud | 
| Connectez l'interface réseau secondaire aux nœuds du cluster. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.html)Pour plus d'informations sur la connexion d'une interface réseau, consultez la [ EC2 documentation Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#attach_eni). | Ingénieur cloud | 
| Ajoutez des itinéraires dans Amazon EC2 pour remédier au routage asymétrique.  | Lorsque vous connectez la deuxième interface réseau, le réseau effectuera très probablement un routage asymétrique. Pour éviter cela, vous pouvez ajouter des itinéraires pour les nouvelles interfaces réseau.Pour une explication détaillée du routage asymétrique et pour y remédier, consultez la [vidéo du centre de connaissances AWS](https://www.youtube.com/watch?v=RmwGYXchb4E) intitulée [Overcoming Asymmetric Routing on Multi-Home Servers](http://www.linuxjournal.com/article/7291) (article de Patrick dans le *Linux Journal* McManus, 5 avril 2004). | Ingénieur réseau | 
| Mettez à jour les entrées DNS pour qu'elles pointent vers l'adresse IP de l'interface réseau secondaire. | Pointez le nom de domaine complet (FQDN) du nœud vers l'adresse IP de l'interface réseau secondaire. | Ingénieur réseau | 
| Installez et configurez le cluster Cassandra à l'aide de OpsCenter DSE. | Lorsque les nœuds du cluster sont prêts avec les interfaces réseau secondaires, vous pouvez installer et configurer le cluster Cassandra. | DBA | 

### Restaurer le cluster en cas de défaillance d'un nœud
<a name="recover-cluster-from-node-failure"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une AMI pour le nœud de départ du cluster. | Effectuez une sauvegarde des nœuds afin de pouvoir les restaurer avec des fichiers binaires de base de données en cas de défaillance du nœud. Pour obtenir des instructions, consultez la section [Créer une AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami.html) dans la EC2 documentation Amazon. | Administrateur des sauvegardes | 
| Restaurez après une défaillance du nœud. | Remplacez le nœud défaillant par une nouvelle EC2 instance lancée depuis l'AMI et attachez l'interface réseau secondaire du nœud défaillant. | Administrateur des sauvegardes | 
| Vérifiez que le cluster Cassandra est sain. | Lorsque le nœud de remplacement est actif, vérifiez l'état du cluster dans DSE OpsCenter. | DBA | 

## Ressources connexes
<a name="deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing-resources"></a>
+ [Installation de DSE OpsCenter 6.1 à partir du paquet Debian](https://docs.datastax.com/en/opscenter/6.1/opsc/install/opscInstallDeb_t.html) (DataStax documentation)
+ [Comment faire fonctionner une interface réseau secondaire dans une EC2 instance Ubuntu](https://www.youtube.com/watch?v=RmwGYXchb4E) (vidéo du centre de connaissances AWS)
+ [Bonnes pratiques pour exécuter Apache Cassandra sur Amazon EC2](https://aws.amazon.com/blogs/big-data/best-practices-for-running-apache-cassandra-on-amazon-ec2/) (article de blog AWS)

# Étendez votre accès VRFs à AWS en utilisant AWS Transit Gateway Connect
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect"></a>

*Adam Till, Yashar Araghi, Vikas Dewangan et Mohideen, Amazon Web Services HajaMohideen*

## Résumé
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-summary"></a>

Le routage et le transfert virtuels (VRF) sont une fonctionnalité des réseaux traditionnels. Il utilise des domaines de routage logiques isolés, sous forme de tables de routage, pour séparer le trafic réseau au sein d'une même infrastructure physique. Vous pouvez configurer AWS Transit Gateway pour prendre en charge l'isolation VRF lorsque vous connectez votre réseau sur site à AWS. Ce modèle utilise un exemple d'architecture pour se connecter sur site VRFs à différentes tables de routage de passerelles de transit.

Ce modèle utilise des interfaces virtuelles de transit (VIFs) dans AWS Direct Connect et des pièces jointes Connect de la passerelle de transit pour étendre le VRFs. Un [VIF de transit](https://docs.aws.amazon.com/directconnect/latest/UserGuide/WorkingWithVirtualInterfaces.html) est utilisé pour accéder à une ou plusieurs passerelles de transit Amazon VPC associées aux passerelles Direct Connect. Une [pièce jointe Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html) connecte une passerelle de transit à un dispositif virtuel tiers exécuté dans un VPC. Une pièce jointe Connect de passerelle de transit prend en charge le protocole de tunnel GRE (Generic Routing Encapsulation) pour des performances élevées, et le protocole BGP (Border Gateway Protocol) pour le routage dynamique.

L'approche décrite dans ce modèle présente les avantages suivants :
+ Grâce à Transit Gateway Connect, vous pouvez annoncer jusqu'à 1 000 itinéraires à l'homologue Transit Gateway Connect et recevoir jusqu'à 5 000 itinéraires de ce dernier. L'utilisation de la fonctionnalité Direct Connect transit VIF sans Transit Gateway Connect est limitée à 20 préfixes par passerelle de transit.
+ Vous pouvez maintenir l'isolation du trafic et utiliser Transit Gateway Connect pour fournir des services hébergés sur AWS, quels que soient les schémas d'adresses IP utilisés par vos clients.
+ Le trafic VRF n'a pas besoin de traverser une interface virtuelle publique. Cela facilite le respect des exigences de conformité et de sécurité dans de nombreuses entreprises.
+ Chaque tunnel GRE prend en charge jusqu'à 5 Gbit/s, et vous pouvez avoir jusqu'à quatre tunnels GRE par pièce jointe Connect de passerelle de transit. Cela est plus rapide que de nombreux autres types de connexion, tels que les connexions Site-to-Site VPN AWS qui prennent en charge jusqu'à 1,25 Gbit/s.

## Conditions préalables et limitations
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-prereqs"></a>

**Conditions préalables**
+ Les comptes AWS requis ont été créés (voir l'architecture pour plus de détails)
+ Autorisations permettant d'assumer un rôle AWS Identity and Access Management (IAM) dans chaque compte.
+ Les rôles IAM de chaque compte doivent être autorisés à fournir des ressources AWS Transit Gateway et AWS Direct Connect. Pour plus d'informations, consultez [Authentification et contrôle d'accès pour vos passerelles de transport](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-authentication-access-control.html) et [gestion des identités et des accès pour Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/security-iam.html).
+ Les connexions Direct Connect ont été créées avec succès. Pour plus d'informations, voir [Création d'une connexion à l'aide de l'assistant de connexion](https://docs.aws.amazon.com/directconnect/latest/UserGuide/dedicated_connection.html#create-connection).

**Limites**
+ Il existe des limites pour les pièces jointes des passerelles de VPCs transit aux comptes de production, d'assurance qualité et de développement. Pour plus d'informations, consultez la section [Pièces jointes d'une passerelle de transit à un VPC](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpc-attachments.html).
+ Il existe des restrictions concernant la création et l'utilisation des passerelles Direct Connect. Pour plus d'informations, consultez la section [Quotas AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/limits.html).

## Architecture
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-architecture"></a>

**Architecture cible**

L'exemple d'architecture suivant fournit une solution réutilisable pour déployer le transport en commun VIFs avec les pièces jointes Connect de la passerelle de transit. Cette architecture assure la résilience en utilisant plusieurs emplacements Direct Connect. Pour plus d'informations, consultez la section [Résilience maximale](https://docs.aws.amazon.com/directconnect/latest/UserGuide/maximum_resiliency.html) dans la documentation de Direct Connect. La production, l'assurance qualité et le développement du VRFs réseau sur site sont étendus à AWS et isolés à l'aide de tables de routage dédiées.

![\[Schéma d'architecture de l'utilisation des ressources AWS Direct Connect et AWS Transit Gateway pour étendre VRFs\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/db17e177-6c94-4d81-ab39-0923ecab2f1b/images/10be0625-8574-40eb-bc00-bb0a07d0dc26.png)


Dans l'environnement AWS, deux comptes sont dédiés à l'extension VRFs : un compte *Direct Connect et un compte* de *hub réseau*. Le compte Direct Connect contient la connexion et le transit VIFs pour chaque routeur. Vous créez le transit VIFs à partir du compte Direct Connect, mais vous le déployez sur le compte du hub réseau afin de pouvoir l'associer à la passerelle Direct Connect dans le compte du hub réseau. Le compte du hub réseau contient la passerelle Direct Connect et la passerelle de transit. Les ressources AWS sont connectées comme suit :

1.  VIFs Connectez les routeurs des sites Direct Connect à AWS Direct Connect dans le compte Direct Connect.

1. Un VIF de transit connecte Direct Connect à la passerelle Direct Connect dans le compte du hub réseau.

1. Une [association de passerelle de transit](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-transit-gateways.html) connecte la passerelle Direct Connect à la passerelle de transit dans le compte du hub réseau.

1. Les [pièces jointes Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html) connectent la passerelle de transit VPCs aux comptes de production, d'assurance qualité et de développement.

*Architecture Transit VIF*

Le schéma suivant montre les détails de configuration du transit VIFs. Cet exemple d'architecture utilise un VLAN pour la source du tunnel, mais vous pouvez également utiliser un loopback.

![\[Détails de configuration pour les connexions VIF de transit entre les routeurs et AWS Direct Connect\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/db17e177-6c94-4d81-ab39-0923ecab2f1b/images/e88d2546-61ef-4531-972b-089cdf44ed67.png)


Vous trouverez ci-dessous les détails de configuration, tels que les numéros de système autonomes (ASNs), pour le transit VIFs.


| 
| 
| Ressource | Élément | Détail | 
| --- |--- |--- |
| routeur-01 | ASN | 65534 | 
| routeur-02 | ASN | 65534 | 
| routeur-03 | ASN | 65534 | 
| routeur-04 | ASN | 65534 | 
| Passerelle Direct Connect | ASN | 64601 | 
| Passerelle de transit | ASN | 64600 | 
| Bloc d'adresse CIDR | 10,10,254,0/24 | 

*Architecture Connect de Transit Gateway*

Le diagramme et les tableaux suivants décrivent comment configurer un seul VRF via une pièce jointe Connect de passerelle de transit. En outre VRFs, attribuez des adresses IP GRE uniques à un tunnel IDs, à une passerelle de transit et à un BGP dans des blocs CIDR. L'adresse IP GRE de l'homologue correspond à l'adresse IP de l'homologue du routeur indiquée dans le VIF de transit.

![\[Détails de configuration des tunnels GRE entre les routeurs et la passerelle de transit\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/db17e177-6c94-4d81-ab39-0923ecab2f1b/images/e58278e1-f3b4-442d-95d9-1dafab4aa5ac.png)


Le tableau suivant contient les détails de configuration du routeur.


| 
| 
| Routeur | Tunnel | Adresse IP | Source | Destination | 
| --- |--- |--- |--- |--- |
| routeur-01 | Tunnel 1 | 169,254,101,17 | VLAN 60169,254,100,1 | 10,10,254,1 | 
| routeur-02 | Tunnel 11 | 169,254,101,81 | VLAN 61169,254,100,5 | 10,10.254,11 | 
| routeur-03 | Tunnel 21 | 169,254,101,145 | VLAN 62169,254,100,9 | 10,10.254,21 | 
| routeur-04 | Tunnel 31 | 169,254,101,209 | VLAN 63169,254,100,13 | 10,10.254,31 | 

Le tableau suivant contient les détails de configuration de la passerelle de transit.


| 
| 
| Tunnel | Adresse IP GRE de la passerelle de transit | Adresse IP GRE homologue | BGP à l'intérieur de blocs CIDR | 
| --- |--- |--- |--- |
| Tunnel 1 | 10,10,254,1 | VLAN 60169,254,100,1 | 169,254,106,16/29 | 
| Tunnel 11 | 10,10.254,11 | VLAN 61169,254,100,5 | 169,254,101,80/29 | 
| Tunnel 21 | 10,10.254,21 | VLAN 62169,254,100,9 | 169,254,101,144/29 | 
| Tunnel 31 | 10,10.254,31 | VLAN 63169,254,100,13 | 169,254,101,208/29 | 

**Déploiement**

La section [Epics](#extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-epics) décrit comment déployer un exemple de configuration pour un**** seul VRF sur plusieurs routeurs clients. Une fois les étapes 1 à 5 terminées, vous pouvez créer de nouvelles pièces jointes Connect pour la passerelle de transit en suivant les étapes 6 à 7 pour chaque nouveau VRF que vous étendez à AWS :

1. Créez la passerelle de transit.

1. Créez une table de routage Transit Gateway pour chaque VRF.

1. Créez les interfaces virtuelles de transport en commun.

1. Créez la passerelle Direct Connect.

1. Créez l'interface virtuelle de la passerelle Direct Connect et les associations de passerelle avec les préfixes autorisés.

1. Créez la pièce jointe Connect pour la passerelle de transit.

1. Créez les homologues de Transit Gateway Connect.

1. Associez la pièce jointe Connect de la passerelle de transit à la table de routage.

1. Annoncez les itinéraires aux routeurs.

## Outils
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-tools"></a>

**Services AWS**
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) relie votre réseau interne à un emplacement Direct Connect via un câble Ethernet à fibre optique standard. Grâce à cette connexion, vous pouvez créer des interfaces virtuelles directement vers les services AWS publics tout en contournant les fournisseurs de services Internet sur votre chemin réseau.
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) est un hub central qui connecte des clouds privés virtuels (VPCs) et des réseaux sur site.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer des ressources AWS dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous exploiteriez dans votre propre centre de données, avec les avantages liés à l'utilisation de l'infrastructure évolutive d'AWS.

## Épopées
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-epics"></a>

### Planifier l'architecture
<a name="plan-the-architecture"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez des diagrammes d'architecture personnalisés. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Architecte cloud, administrateur réseau | 

### Création des ressources Transit Gateway
<a name="create-the-transit-gateway-resources"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez la passerelle de transit. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Administrateur réseau, architecte cloud | 
| Créez la table de routage de la passerelle de transit. | Suivez les instructions de la section [Créer une table de routage pour une passerelle de transit](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-route-tables.html#create-tgw-route-table). Notez ce qui suit pour ce modèle :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Architecte cloud, administrateur réseau | 

### Création des interfaces virtuelles de transport
<a name="create-the-transit-virtual-interfaces"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez les interfaces virtuelles de transport en commun. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Architecte cloud, administrateur réseau | 

### Création des ressources Direct Connect
<a name="create-the-direct-connect-resources"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une passerelle Direct Connect. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Architecte cloud, administrateur réseau | 
| Connectez la passerelle Direct Connect au transport en commun VIFs. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Architecte cloud, administrateur réseau | 
| Créez les associations de passerelle Direct Connect avec les préfixes autorisés. | Dans le compte du hub réseau, suivez les instructions de la section [Pour associer une passerelle de transit](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-transit-gateways.html#associate-tgw-with-direct-connect-gateway). Notez ce qui suit pour ce modèle :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html)La création de cette association crée automatiquement une pièce jointe Transit Gateway dotée d'un type de ressource Direct Connect Gateway. Il n'est pas nécessaire que cette pièce jointe soit associée à une table de routage de passerelle de transit. | Architecte cloud, administrateur réseau | 
| Créez la pièce jointe Connect pour la passerelle de transit. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Architecte cloud, administrateur réseau | 
| Créez les homologues de Transit Gateway Connect. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) |  | 

### Annoncer les itinéraires aux routeurs
<a name="advertise-routes-to-the-routers"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Faites de la publicité pour les itinéraires. | Associez la nouvelle pièce jointe Connect de la passerelle de transit à la table de routage que vous avez créée précédemment pour ce VRF. Par exemple, associez la pièce jointe Connect de la passerelle de transit de production à la table de `Production-VRF` routage.Créez un itinéraire statique pour le préfixe annoncé aux routeurs.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/extend-vrfs-to-aws-by-using-aws-transit-gateway-connect.html) | Administrateur réseau, architecte cloud | 

## Ressources connexes
<a name="extend-vrfs-to-aws-by-using-aws-transit-gateway-connect-resources"></a>

**Documentation AWS**
+ Documentation sur Direct Connect
  + [Utilisation des passerelles Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-gateways.html)
  + [Associations de passerelles de transit](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-transit-gateways.html)
  + [Interfaces virtuelles AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/WorkingWithVirtualInterfaces.html)
+ Documentation sur Transit Gateway
  + [Travailler avec les passerelles de transport](https://docs.aws.amazon.com/vpc/latest/tgw/working-with-transit-gateways.html)
  + [Pièces jointes d'une passerelle de transit à une passerelle Direct Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-dcg-attachments.html)
  + [Pièces jointes Transit Gateway Connect et homologues de Transit Gateway Connect](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html)
  + [Création d'une pièce jointe Connect pour une passerelle de transit](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html#create-tgw-connect-attachment)

**Articles de blog AWS**
+ [Segmentation des réseaux hybrides avec AWS Transit Gateway connect](https://aws.amazon.com/blogs/networking-and-content-delivery/segmenting-hybrid-networks-with-aws-transit-gateway-connect/)
+ [Utilisation d'AWS Transit Gateway connect pour étendre VRFs et augmenter la publicité sur les préfixes IP](https://aws.amazon.com/blogs/networking-and-content-delivery/using-aws-transit-gateway-connect-to-extend-vrfs-and-increase-ip-prefix-advertisement/)

## Pièces jointes
<a name="attachments-db17e177-6c94-4d81-ab39-0923ecab2f1b"></a>

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/db17e177-6c94-4d81-ab39-0923ecab2f1b/attachments/attachment.zip)

# Recevez des notifications Amazon SNS lorsque l'état clé d'une clé AWS KMS change
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes"></a>

*Shubham Harsora, Aromal Raj Jayarajan et Navdeep Pareek, Amazon Web Services*

## Résumé
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-summary"></a>

Les données et métadonnées associées à une clé AWS Key Management Service (AWS KMS) sont perdues lorsque cette clé est supprimée. La suppression est irréversible et vous ne pouvez pas récupérer les données perdues (y compris les données cryptées). Vous pouvez éviter les pertes de données en configurant un système de notification pour vous avertir des modifications de statut des [principaux états](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html#key-state-cmk-type) de vos clés AWS KMS.

Ce modèle vous montre comment surveiller les modifications de statut des clés AWS KMS en utilisant Amazon EventBridge et Amazon Simple Notification Service (Amazon SNS) pour émettre des notifications automatisées chaque fois que l'état clé d'une clé AWS KMS change de ou. `Disabled` `PendingDeletion` Par exemple, si un utilisateur essaie de désactiver ou de supprimer une clé AWS KMS, vous recevrez une notification par e-mail contenant des informations sur la tentative de changement de statut. Vous pouvez également utiliser ce modèle pour planifier la suppression des clés AWS KMS.

## Conditions préalables et limitations
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif avec un utilisateur AWS Identity and Access Management (IAM)
+ Une [clé AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html)

## Architecture
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-architecture"></a>

**Pile technologique**
+ Amazon EventBridge
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Notiﬁcation Service (Amazon SNS)

**Architecture cible**

Le schéma suivant montre une architecture permettant de créer un processus de surveillance et de notification automatisé pour détecter toute modification de l'état d'une clé AWS KMS.

![\[Architecture permettant de créer un processus de surveillance et de notification automatisé\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/2534df87-a6fd-4360-9b5d-4a8b1f533de3/images/0cb6a6b0-405b-4d26-ad04-2067176aa086.png)


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

1. Un utilisateur désactive ou planifie la suppression d'une clé AWS KMS.

1. Une EventBridge règle évalue le programme `Disabled` ou l'`PendingDeletion`événement.

1. La EventBridge règle invoque la rubrique Amazon SNS.

1. Amazon SNS envoie un message de notification par e-mail aux utilisateurs.

**Note**  
Vous pouvez personnaliser le message électronique en fonction des besoins de votre organisation. Nous vous recommandons d'inclure des informations sur les entités dans lesquelles la clé AWS KMS est utilisée. Cela peut aider les utilisateurs à comprendre l'impact de la suppression de la clé AWS KMS. Vous pouvez également planifier une notification par e-mail de rappel envoyée un ou deux jours avant la suppression de la clé AWS KMS.

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

La CloudFormation pile AWS déploie toutes les ressources et tous les services nécessaires au bon fonctionnement de ce modèle. Vous pouvez implémenter le modèle indépendamment dans un seul compte, ou en utilisant [AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) pour plusieurs comptes indépendants ou [unités organisationnelles](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html) dans AWS Organizations.

## Outils
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-tools"></a>
+ [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) vous CloudFormation aide à configurer les ressources AWS, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie sur les comptes AWS et les régions AWS. Le CloudFormation modèle de ce modèle décrit toutes les ressources AWS que vous souhaitez, et CloudFormation fournit et configure ces ressources pour vous.
+ [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. EventBridge fournit un flux de données en temps réel à partir de vos propres applications et services AWS, et achemine ces données vers des cibles telles qu'AWS Lambda. EventBridge simplifie le processus de création d'architectures pilotées par les événements.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) vous aide à créer et à contrôler des clés cryptographiques afin de protéger vos données.
+ [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.

**Code**

Le code de ce modèle est disponible dans le référentiel de [désactivation et de suppression planifiée des clés GitHub Monitor AWS KMS](https://github.com/aws-samples/aws-kms-deletion-notification).

## Épopées
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-epics"></a>

### Déployer le CloudFormation modèle
<a name="deploy-the-cloudformation-template"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Pour cloner le référentiel. | Clonez le référentiel de [désactivation et de suppression planifiée des clés GitHub Monitor AWS KMS](https://github.com/aws-samples/aws-kms-deletion-notification) sur votre machine locale en exécutant la commande suivante :`git clone https://github.com/aws-samples/aws-kms-deletion-notification` | Administrateur AWS, architecte du cloud | 
| Mettez à jour les paramètres du modèle. | Dans un éditeur de code, ouvrez le `Alerting-KMS-Events.yaml` CloudFormation modèle que vous avez cloné à partir du référentiel, puis mettez à jour les paramètres suivants :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrateur AWS, architecte du cloud | 
| Déployez le CloudFormation modèle. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrateur AWS, architecte du cloud | 

### Confirmer l'abonnement.
<a name="confirm-the-subscription"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Confirmez l'e-mail d'abonnement. | Une fois le CloudFormation modèle déployé avec succès, Amazon SNS envoie un message de confirmation d'abonnement à l'adresse e-mail que vous avez fournie dans CloudFormation le modèle.Pour recevoir des notifications, vous devez confirmer cet abonnement par e-mail. Pour plus d'informations, consultez [Confirmer l'abonnement](https://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.confirm.html) dans le manuel Amazon SNS Developer Guide. | Administrateur AWS, architecte du cloud | 

### Testez la notification d'abonnement
<a name="test-the-subscription-notification"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Désactivez les clés AWS KMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrateur AWS | 
| Validez l'abonnement. | Confirmez que vous avez reçu l'e-mail de notification Amazon SNS. | Administrateur AWS | 

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


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez la CloudFormation pile. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes.html) | Administrateur AWS | 

## Ressources connexes
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-resources"></a>
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/) (documentation AWS)
+ [Création d'une pile sur la CloudFormation console AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) ( CloudFormation documentation AWS)
+ [Création d'architectures pilotées par les événements sur AWS](https://catalog.us-east-1.prod.workshops.aws/workshops/63320e83-6abc-493d-83d8-f822584fb3cb/en-US) (documentation AWS Workshop Studio)
+ [Bonnes pratiques relatives aux services de gestion des clés AWS](https://d1.awsstatic.com/whitepapers/aws-kms-best-practices.pdf) (livre blanc AWS)
+ [Bonnes pratiques de sécurité pour AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html) (Guide du développeur AWS KMS)

## Informations supplémentaires
<a name="get-amazon-sns-notifications-when-the-key-state-of-an-aws-kms-key-changes-additional"></a>

Amazon SNS fournit un chiffrement en transit par défaut. Pour respecter les meilleures pratiques en matière de sécurité, vous pouvez également activer le chiffrement côté serveur pour Amazon SNS à l'aide d'une clé gérée par le client AWS KMS.

# Préservez l'espace IP routable dans les conceptions VPC multi-comptes pour les sous-réseaux autres que les charges de travail
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets"></a>

*Adam Spicer, Amazon Web Services*

## Résumé
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-summary"></a>

Amazon Web Services (AWS) a publié les meilleures pratiques qui recommandent d'utiliser des sous-réseaux dédiés dans un cloud privé virtuel (VPC) pour les pièces jointes des passerelles de [transit et les points de terminaison Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html) [Load Balancer (pour prendre en charge](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/getting-started.html) [AWS Network Firewall](https://docs.aws.amazon.com/network-firewall/latest/developerguide/firewall-high-level-steps.html) ou des appareils tiers). Ces sous-réseaux sont utilisés pour contenir des interfaces réseau élastiques pour ces services. Si vous utilisez à la fois AWS Transit Gateway et un Gateway Load Balancer, deux sous-réseaux sont créés dans chaque zone de disponibilité pour le VPC. En raison de leur conception, ces sous-réseaux supplémentaires [ne peuvent pas être plus petits qu'un masque /28](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-sizing) et peuvent consommer un espace IP routable précieux qui pourrait autrement être utilisé pour des charges de travail routables. VPCs Ce modèle montre comment vous pouvez utiliser une plage de routage interdomaine sans classe (CIDR) secondaire et non routable pour ces sous-réseaux dédiés afin de préserver l'espace IP routable.

## Conditions préalables et limitations
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-prereqs"></a>

**Prérequis**
+ [Stratégie multi-VPC pour un espace](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html) IP routable
+ [Une plage CIDR non routable pour les services que vous utilisez ([pièces jointes à des passerelles de transit et points de terminaison Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html)[Load Balancer ou Network Firewall](https://aws.amazon.com/blogs/apn/centralized-traffic-inspection-with-gateway-load-balancer-on-aws/))](https://aws.amazon.com/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/)

## Architecture
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-architecture"></a>

**Architecture cible**

Ce modèle inclut deux architectures de référence : une architecture comporte des sous-réseaux pour les pièces jointes de passerelle de transit (TGW) et un point de terminaison Gateway Load Balancer GWLBe (), et la seconde architecture possède des sous-réseaux pour les pièces jointes TGW uniquement.

**Architecture 1 ‒ VPC rattaché au TGW avec routage d'entrée vers une appliance**

Le schéma suivant représente une architecture de référence pour un VPC qui couvre deux zones de disponibilité. Lors de l'entrée, le VPC utilise [un modèle de routage d'entrée](https://aws.amazon.com/blogs/aws/new-vpc-ingress-routing-simplifying-integration-of-third-party-appliances/) pour diriger le trafic destiné au sous-réseau public vers [bump-in-the-wire une](https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-gateway-load-balancer-supported-architecture-patterns/) appliance à des fins d'inspection du pare-feu. Une pièce jointe TGW prend en charge la sortie des sous-réseaux privés vers un VPC distinct.

Ce modèle utilise une plage d'adresses CIDR non routable pour le sous-réseau d'attachement TGW et le sous-réseau. GWLBe Dans la table de routage TGW, ce CIDR non routable est configuré avec une route en trou noir (statique) en utilisant un ensemble de routes plus spécifiques. Si les itinéraires devaient être propagés vers la table de routage TGW, ces itinéraires en trou noir plus spécifiques s'appliqueraient.

Dans cet exemple, le CIDR routable /23 est divisé et entièrement alloué aux sous-réseaux routables.

![\[VPC rattaché au TGW avec routage d'entrée vers une appliance.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/0171d91d-ab1e-41ca-a425-1e6e610080e1/images/adad1c83-cdc2-4c5e-aa35-f47fc31af384.png)


**Architecture 2 — VPC rattaché au TGW**

Le schéma suivant représente une autre architecture de référence pour un VPC qui couvre deux zones de disponibilité. Une pièce jointe TGW prend en charge le trafic sortant (sortie) des sous-réseaux privés vers un VPC distinct. Il utilise une plage d'adresses CIDR non routable uniquement pour le sous-réseau des pièces jointes TGW. Dans la table de routage TGW, ce CIDR non routable est configuré avec un itinéraire en trou noir en utilisant un ensemble de routes plus spécifiques. Si les itinéraires devaient être propagés vers la table de routage TGW, ces itinéraires en trou noir plus spécifiques s'appliqueraient.

Dans cet exemple, le CIDR routable /23 est divisé et entièrement alloué aux sous-réseaux routables. 

![\[Le VPC s'étend sur 2 zones de disponibilité avec un attachement TGW pour la sortie des sous-réseaux privés vers un VPC séparé.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/0171d91d-ab1e-41ca-a425-1e6e610080e1/images/31a2a241-5be6-425e-93e9-5ff7ffeca3a9.png)


## Outils
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-tools"></a>

**Services et ressources AWS**
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer des ressources AWS dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous exploiteriez dans votre propre centre de données, avec les avantages liés à l'utilisation de l'infrastructure évolutive d'AWS. Dans ce modèle, les VPC secondaires CIDRs sont utilisés pour préserver l'espace IP routable dans la charge de travail. CIDRs
+ Le [routage d'entrée de la passerelle Internet](https://aws.amazon.com/blogs/aws/new-vpc-ingress-routing-simplifying-integration-of-third-party-appliances/) (associations de périphérie) peut être utilisé avec les points de terminaison Gateway Load Balancer pour les sous-réseaux dédiés non routables.
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) est un hub central qui connecte VPCs les réseaux sur site. Dans ce modèle, VPCs sont rattachés de manière centralisée à une passerelle de transit, et les pièces jointes de la passerelle de transit se trouvent dans un sous-réseau dédié non routable.
+ Les [équilibreurs de charge de passerelle](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html) vous permettent de déployer, de mettre à l'échelle et de gérer des appareils virtuels, telles que des pare-feu, des systèmes de détection et de prévention des intrusions et des systèmes d'inspection approfondie des paquets. La passerelle sert de point d'entrée et de sortie unique pour l'ensemble du trafic. Dans ce modèle, les points de terminaison d'un Gateway Load Balancer peuvent être utilisés dans un sous-réseau dédié non routable.
+ [AWS Network Firewall est un pare-feu réseau](https://docs.aws.amazon.com/network-firewall/latest/developerguide/what-is-aws-network-firewall.html) dynamique et géré, ainsi qu'un service de détection et de prévention des intrusions VPCs destiné au cloud AWS. Dans ce modèle, les points de terminaison d'un pare-feu peuvent être utilisés dans un sous-réseau dédié non routable.

**Référentiel de code**

Un runbook et des CloudFormation modèles AWS pour ce modèle sont disponibles dans le référentiel de modèles [CIDR secondaires GitHub non routables](https://github.com/aws-samples/non-routable-secondary-vpc-cidr-patterns/). Vous pouvez utiliser les fichiers d'exemple pour configurer un laboratoire de travail dans votre environnement.

## Bonnes pratiques
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-best-practices"></a>

**AWS Transit Gateway**
+ Utilisez un sous-réseau distinct pour chaque attachement de VPC de passerelle de transit.
+ Allouez un sous-réseau /28 à partir de la plage d'adresses CIDR non routable secondaire pour les sous-réseaux d'attachement de la passerelle de transit.
+ Dans la table de routage de chaque passerelle de transit, ajoutez un itinéraire statique plus spécifique pour la plage d'adresses CIDR non routable sous forme de trou noir.

**Gateway Load Balancer et routage d'entrée**
+ Utilisez le routage d'entrée pour diriger le trafic depuis Internet vers les points de terminaison Gateway Load Balancer.
+ Utilisez un sous-réseau distinct pour chaque point de terminaison Gateway Load Balancer.
+ Allouez un sous-réseau /28 à partir de la plage d'adresses CIDR non routable secondaire pour les sous-réseaux de point de terminaison Gateway Load Balancer.

## Épopées
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-epics"></a>

### Créez VPCs
<a name="create-vpcs"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déterminez la plage d'adresses CIDR non routable. | Déterminez une plage d'adresses CIDR non routable qui sera utilisée pour le sous-réseau d'attachement de la passerelle de transit et (éventuellement) pour tout sous-réseau de point de terminaison Gateway Load Balancer ou Network Firewall. Cette plage de CIDR sera utilisée comme CIDR secondaire pour le VPC. Il **ne doit pas être routable** depuis la plage d'adresses CIDR principale du VPC ou depuis le réseau plus vaste. | Architecte du cloud | 
| Déterminez les plages d'adresses CIDR routables pour. VPCs | Déterminez un ensemble de plages CIDR routables qui seront utilisées pour votre. VPCs Cette plage de CIDR sera utilisée comme CIDR principal pour votre. VPCs | Architecte du cloud | 
| Créez VPCs. | Créez le vôtre VPCs et attachez-le à la passerelle de transit. Chaque VPC doit avoir une plage d'adresses CIDR principale routable et une plage d'adresses CIDR secondaire non routable, en fonction des plages que vous avez déterminées au cours des deux étapes précédentes. | Architecte du cloud | 

### Configurer les itinéraires en trou noir de Transit Gateway
<a name="configure-transit-gateway-blackhole-routes"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez des trous non routables plus spécifiques CIDRs tels que des trous noirs. | Chaque table de routage de passerelle de transit doit comporter un ensemble de routes en trou noir créées pour les routes non CIDRs routables. Ils sont configurés pour garantir que tout trafic provenant du VPC CIDR secondaire reste non routable et ne pénètre pas dans le réseau plus vaste. Ces routes doivent être plus spécifiques que le CIDR non routable défini comme CIDR secondaire sur le VPC. Par exemple, si le CIDR secondaire non routable est 100.64.0.0/26, les routes en trou noir dans la table de routage de la passerelle de transit doivent être 100.64.0.0/27 et 100.64.0.32/27. | Architecte du cloud | 

## Ressources connexes
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-resources"></a>
+ [Bonnes pratiques pour le déploiement de Gateway Load Balancer](https://aws.amazon.com/blogs/networking-and-content-delivery/best-practices-for-deploying-gateway-load-balancer/)
+ [Architectures d'inspection distribuées avec Gateway Load Balancer](https://d1.awsstatic.com/architecture-diagrams/ArchitectureDiagrams/distributed-inspection-architectures-gwlb-ra.pdf?did=wp_card&trk=wp_card)
+ [Journée d'immersion dans la mise en réseau](https://catalog.workshops.aws/networking/en-US/gwlb/lab2-internettovpc) ‒ Laboratoire de pare-feu [Internet vers VPC](https://catalog.workshops.aws/networking/en-US/gwlb/lab2-internettovpc)
+ [Bonnes pratiques pour la conception de passerelles de transit](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html)

## Informations supplémentaires
<a name="preserve-routable-ip-space-in-multi-account-vpc-designs-for-non-workload-subnets-additional"></a>

La plage d'adresses CIDR secondaire non routable peut également être utile lorsque vous travaillez avec des déploiements de conteneurs à plus grande échelle qui nécessitent un grand nombre d'adresses IP. Vous pouvez utiliser ce modèle avec une passerelle NAT privée pour utiliser un sous-réseau non routable pour héberger vos déploiements de conteneurs. Pour plus d'informations, consultez le billet de blog [Comment résoudre l'épuisement des adresses IP privées avec une solution NAT privée](https://aws.amazon.com/blogs/networking-and-content-delivery/how-to-solve-private-ip-exhaustion-with-private-nat-solution/).

# Provisionner un produit Terraform à l'aide AWS Service Catalog d'un référentiel de code
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository"></a>

*Dr. Rahul Sharad Gaikwad et Tamilselvan P, Amazon Web Services*

## Résumé
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-summary"></a>

AWS Service Catalog prend en charge le provisionnement en libre-service avec gouvernance de vos configurations [HashiCorp Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started). Si vous utilisez Terraform, vous pouvez utiliser Service Catalog comme outil unique pour organiser, gérer et distribuer vos configurations Terraform à grande échelle. AWS Vous pouvez accéder aux principales fonctionnalités de Service Catalog, notamment le catalogage de modèles d'infrastructure en tant que code (iAc) standardisés et préapprouvés, le contrôle d'accès, le provisionnement des ressources cloud avec un accès minimal, le versionnement, le partage avec des milliers de Comptes AWS personnes et le balisage. Les utilisateurs finaux, tels que les ingénieurs, les administrateurs de bases de données et les scientifiques des données, consultent la liste des produits et des versions auxquels ils ont accès, et ils peuvent les déployer en une seule action.

Ce modèle vous aide à déployer AWS des ressources à l'aide du code Terraform. Le code Terraform du GitHub référentiel est accessible via Service Catalog. En utilisant cette approche, vous intégrez les produits à vos flux de travail Terraform existants. Les administrateurs peuvent créer des portefeuilles Service Catalog et y ajouter AWS Launch Wizard des produits à l'aide de Terraform.

Les avantages de cette solution sont les suivants :
+ Grâce à la fonctionnalité de restauration de Service Catalog, en cas de problème lors du déploiement, vous pouvez rétablir une version précédente du produit.
+ Vous pouvez facilement identifier les différences entre les versions du produit. Cela vous permet de résoudre les problèmes lors du déploiement.
+ Vous pouvez configurer une connexion au référentiel dans Service Catalog, par exemple vers GitHub ou GitLab. Vous pouvez apporter des modifications au produit directement via le référentiel.

Pour plus d'informations sur les avantages généraux de AWS Service Catalog, voir [Qu'est-ce que Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) ?

## Conditions préalables et limitations
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS.
+ Un GitHub ou un autre référentiel contenant les fichiers de configuration Terraform au format ZIP. BitBucket
+ AWS Serverless Application Model Interface de ligne de commande (AWS SAM CLI), [installée](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html).
+ AWS Command Line Interface (AWS CLI), [installé](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) et [configuré](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Allez-y, [installé](https://go.dev/doc/install).
+ Python version 3.9, [installé](https://www.python.org/downloads/release/python-3913/). AWS SAM La CLI nécessite cette version de Python.
+ Autorisations pour écrire et exécuter AWS Lambda des fonctions et autorisations pour accéder aux produits et aux portefeuilles Service Catalog et les gérer.

## Architecture
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-architecture"></a>

![\[Schéma d'architecture du provisionnement d'un produit Terraform dans Service Catalog à partir d'un dépôt de code\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/7d0d76e8-9485-4b3f-915f-481b6a7cdcd9/images/e83fa44a-4ca6-4438-a0d1-99f09a3541bb.png)


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

1. Lorsqu'une configuration Terraform est prête, un développeur crée un fichier .zip contenant tout le code Terraform. Le développeur télécharge le fichier .zip dans le référentiel de code connecté à Service Catalog.

1. Un administrateur associe le produit Terraform à un portefeuille dans Service Catalog. L'administrateur crée également une contrainte de lancement qui permet aux utilisateurs finaux de fournir le produit.

1. Dans Service Catalog, les utilisateurs finaux lancent AWS des ressources à l'aide de la configuration Terraform. Ils peuvent choisir la version du produit à déployer.

## Outils
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-tools"></a>

**Services AWS**
+ [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 Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html)vous permet de gérer de manière centralisée les catalogues de services informatiques approuvés. AWS Les utilisateurs finaux peuvent déployer rapidement uniquement les services informatiques approuvés dont ils ont besoin, en respectant les contraintes définies par votre organisation.

**Autres services**
+ [Go](https://go.dev/doc/install) est un langage de programmation open source pris en charge par Google.
+ [Python](https://www.python.org/) est un langage de programmation informatique polyvalent.

**Référentiel de code**

Si vous avez besoin d'exemples de configurations Terraform que vous pouvez déployer via Service Catalog, vous pouvez utiliser les configurations du référentiel [Amazon GitHub Macie Organization Setup](https://github.com/aws-samples/aws-macie-customization-terraform-samples) Using Terraform. L'utilisation des exemples de code de ce référentiel n'est pas obligatoire.

## Bonnes pratiques
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-best-practices"></a>
+ Au lieu de fournir les valeurs des variables dans le fichier de configuration Terraform (`terraform.tfvars`), configurez les valeurs des variables lors du lancement du produit via Service Catalog.
+ N'accordez l'accès au portefeuille qu'à des utilisateurs ou administrateurs spécifiques.
+ 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/IAMBestPracticesAndUseCases.html) dans la documentation Gestion des identités et des accès AWS (IAM).

## Épopées
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-epics"></a>

### Configurez votre poste de travail local
<a name="set-up-your-local-workstation"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| (Facultatif) Installez Docker. | Si vous souhaitez exécuter les AWS Lambda fonctions dans votre environnement de développement, installez Docker. Pour connaître la marche à suivre, consultez la rubrique [Installer Docker Engine](https://docs.docker.com/engine/install/) de la documentation Docker. | DevOps ingénieur | 
| Installez le AWS Service Catalog moteur pour Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps ingénieur, administrateur AWS | 

### Connect le GitHub référentiel
<a name="connect-the-github-repository"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une connexion au GitHub référentiel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrateur AWS | 

### Créer un produit Terraform dans Service Catalog
<a name="create-a-terraform-product-in-service-catalog"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez le produit Service Catalog. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrateur AWS | 
| Créez un portefeuille. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrateur AWS | 
| Ajoutez le produit Terraform au portefeuille. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrateur AWS | 
| Créez la stratégie d'accès. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrateur AWS | 
| Créez une politique de confiance personnalisée. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrateur AWS | 
| Ajoutez une contrainte de lancement au produit Service Catalog. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrateur AWS | 
| Accordez l'accès au produit. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrateur AWS | 
| Lancez le produit. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps ingénieur | 

### Vérification du déploiement
<a name="verify-the-deployment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Validez le déploiement. | Il existe deux machines AWS Step Functions d'état pour le flux de travail de provisionnement du Service Catalog :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html)Vous consultez les journaux de la machine `ManageProvisionedProductStateMachine` d'état pour confirmer que le produit a été approvisionné.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps ingénieur | 

### Nettoyer les infrastructures
<a name="clean-up-infrastructure"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez les produits approvisionnés. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | DevOps ingénieur | 
| Supprimez le AWS Service Catalog moteur de Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository.html) | Administrateur AWS | 

## Ressources connexes
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-resources"></a>

**AWS documentation**
+ [Commencer à utiliser un produit Terraform](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-Terraform.html)

**Documentation Terraform**
+ [Installation de Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli)
+ [Configuration du backend Terraform](https://developer.hashicorp.com/terraform/language/backend)
+ [Documentation du fournisseur Terraform AWS](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)

## Informations supplémentaires
<a name="provision-a-terraform-product-in-aws-service-catalog-by-using-a-code-repository-additional"></a>

**Politique d'accès**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:ExistingObjectTag/servicecatalog:provisioning": "true"
                }
            }
        },
        {
            "Action": [
                "s3:CreateBucket*",
                "s3:DeleteBucket*",
                "s3:Get*",
                "s3:List*",
                "s3:PutBucketTagging"
            ],
            "Resource": "arn:aws:s3:::*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "resource-groups:CreateGroup",
                "resource-groups:ListGroupResources",
                "resource-groups:DeleteGroup",
                "resource-groups:Tag"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "tag:GetResources",
                "tag:GetTagKeys",
                "tag:GetTagValues",
                "tag:TagResources",
                "tag:UntagResources"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

**Politique d’approbation**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GivePermissionsToServiceCatalog",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::account_id:root"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringLike": {
                    "aws:PrincipalArn": [
                        "arn:aws:iam::accounti_id:role/TerraformEngine/TerraformExecutionRole*",
                        "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogExternalParameterParserRole*",
                        "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogTerraformOSParameterParserRole*"
                    ]
                }
            }
        }
    ]
}
```

# Comptes AWS Enregistrez-en plusieurs avec une seule adresse e-mail à l'aide d'Amazon SES
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses"></a>

*Joe Wozniak et Shubhangi Vishwakarma, Amazon Web Services*

## Résumé
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-summary"></a>

Ce modèle décrit comment vous pouvez dissocier les adresses e-mail réelles de l'adresse e-mail associée à un. Compte AWS Comptes AWS exigent qu'une adresse e-mail unique soit fournie au moment de la création du compte. Dans certaines organisations, l'équipe de gestion Comptes AWS doit assumer la charge de gérer de nombreuses adresses e-mail uniques avec son équipe de messagerie. Cela peut s'avérer difficile pour les grandes entreprises qui en gèrent de nombreuses Comptes AWS. De plus, si votre système de messagerie n'autorise pas l'*adressage plus* ou le *sous-adressage* tels que définis dans [Sieve Email Filtering : Subaddress Extension (RFC 5233)](https://datatracker.ietf.org/doc/html/rfc5233), en ajoutant un signe plus (\$1) et un identifiant à la fin de la partie locale de l'adresse e-mail, par exemple `admin+123456789123@example.com` —ce modèle peut aider à surmonter cette limitation.

Ce modèle fournit une solution de vente d'adresses e-mail unique qui permet aux Compte AWS propriétaires d'associer une adresse e-mail à plusieurs Comptes AWS. Les adresses e-mail réelles des Compte AWS propriétaires sont ensuite associées à ces adresses e-mail générées dans un tableau. La solution gère tous les e-mails entrants pour les comptes de messagerie uniques, recherche le propriétaire de chaque compte, puis transmet tous les messages reçus au propriétaire.  

## Conditions préalables et limitations
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-prereqs"></a>

**Conditions préalables**
+ Accès administratif à un Compte AWS.
+ Accès à un environnement de développement. 
+ (Facultatif) La connaissance des AWS Cloud Development Kit (AWS CDK) flux de travail et du langage de programmation Python vous aidera à résoudre les problèmes ou à apporter des modifications.

**Limites**
+ Longueur totale de l'adresse e-mail vendue de 64 caractères. Pour plus de détails, consultez [CreateAccount](https://docs.aws.amazon.com/organizations/latest/APIReference/API_CreateAccount.html)la *référence de AWS Organizations l'API*.

**Versions du produit**
+ Node.js version 22.x ou ultérieure
+ Python 3.13 ou version ultérieure
+ **Paquets Python **pip** et virtualenv**
+ AWS CDK CLI version 2.1019.2 ou ultérieure
+ Docker 20.10.x ou version ultérieure

## Architecture
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-architecture"></a>

**Pile technologique cible**
+ CloudFormation empiler
+ AWS Lambda fonctions
+ Règle et ensemble de règles Amazon Simple Email Service (Amazon SES)
+ Gestion des identités et des accès AWS Rôles et politiques (IAM)
+ Politique relative aux compartiments et aux compartiments Amazon Simple Storage Service (Amazon S3)
+ AWS Key Management Service (AWS KMS) politique clé et clé
+ Rubrique et politique relatives à Amazon Simple Notification Service (Amazon SNS)
+ Table Amazon DynamoDB 

**Architecture cible**

![\[Architecture cible pour l'enregistrement de plusieurs comptes AWS avec une seule adresse e-mail\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/1be85b92-69e5-43b2-aeed-27b9509e145e/images/c7ae9d7a-d4e0-412e-97cb-0f3073e012e7.png)


Ce diagramme montre deux flux :
+ **Flux de distribution d'adresses e-mail :** dans le diagramme, le flux de distribution d'adresses e-mail (section inférieure) commence généralement par une solution de vente de comptes ou une automatisation externe, ou est invoqué manuellement. Dans la demande, une fonction Lambda est appelée avec une charge utile contenant les métadonnées nécessaires. La fonction utilise ces informations pour générer un nom de compte et une adresse e-mail uniques, les stocke dans une base de données DynamoDB et renvoie les valeurs à l'appelant. Ces valeurs peuvent ensuite être utilisées pour créer un nouveau Compte AWS (généralement en utilisant AWS Organizations).
+ **Flux de transfert d'e-mails :** Ce flux est illustré dans la partie supérieure du schéma précédent. Lorsqu'un Compte AWS est créé à l'aide de l'e-mail du compte généré à partir du flux de vente d'adresses e-mail, il AWS envoie divers e-mails, tels que la confirmation de l'enregistrement du compte et des notifications périodiques, à cette adresse e-mail. En suivant les étapes de ce modèle, vous Compte AWS configurez Amazon SES pour recevoir des e-mails pour l'ensemble du domaine. Cette solution configure les règles de transfert qui permettent à Lambda de traiter tous les e-mails entrants, de vérifier si `TO` l'adresse figure dans le tableau DynamoDB et de transférer le message à l'adresse e-mail du propriétaire du compte. L'utilisation de ce processus permet aux propriétaires de comptes d'associer plusieurs comptes à une seule adresse e-mail.

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

Ce modèle utilise le AWS CDK pour automatiser entièrement le déploiement. La solution utilise des services AWS gérés qui seront (ou peuvent être configurés pour) évoluer automatiquement en fonction de vos besoins. Les fonctions Lambda peuvent nécessiter une configuration supplémentaire pour répondre à vos besoins de dimensionnement. Pour plus d'informations, consultez la section [Comprendre le dimensionnement des fonctions Lambda](https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html) dans la documentation Lambda.

## Outils
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-tools"></a>

**Services AWS**
+ [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.
+ [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 avec les services AWS par le biais de commandes dans votre shell de ligne de commande.
+ [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.
+ [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 Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) vous aide à créer et à contrôler des clés cryptographiques pour protéger vos données.
+ [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.
+ [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html) vous permet d'envoyer et de recevoir des e-mails en utilisant vos propres adresses e-mail et domaines.
+ [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.
+ [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.

**Outils nécessaires au déploiement**
+ Environnement de développement avec accès AWS CLI et IAM à votre Compte AWS. Pour plus de détails, consultez les liens dans la section [Ressources connexes](#register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-resources).  
+ Sur votre système de développement, installez les éléments suivants :
  + Outil de ligne de commande Git, disponible sur le [site Web de téléchargement de Git](https://git-scm.com/downloads).
  +  AWS CLI pour configurer les informations d'accès pour AWS CDK. Pour plus d’informations, consultez la [documentation AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).
  + Python version 3.13 ou ultérieure, disponible sur le [site de téléchargement de Python](https://www.python.org/downloads/).
  + UV pour la gestion des paquets Python. Pour les instructions d'installation, consultez le [guide d'installation UV](https://docs.astral.sh/uv/getting-started/installation/).
  + Node.js version 22.x ou ultérieure. Pour les instructions d'installation, consultez la [documentation Node.js](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs).
  + AWS CDK CLI version 2.1019.2 ou ultérieure. Pour les instructions d'installation, consultez la [AWS CDK documentation](https://docs.aws.amazon.com/cdk/v2/guide/getting-started.html#getting-started-install).
  + Docker version 20.10.x ou ultérieure. Pour les instructions d'installation, consultez la [documentation Docker](https://docs.docker.com/engine/install/).

**Code**

Le code de ce modèle est disponible dans le référentiel GitHub [Compte AWS d'e-mails d'usine](https://github.com/aws-samples/aws-account-factory-email).

## Épopées
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-epics"></a>

### Allouer un environnement de déploiement cible
<a name="allocate-a-target-deployment-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Identifiez ou créez un Compte AWS. | Identifiez une solution existante ou nouvelle Compte AWS à laquelle vous disposez d'un accès administratif complet, afin de déployer la solution de messagerie. | Administrateur AWS, administrateur du cloud | 
| Configurez un environnement de déploiement. | Configurez un environnement de déploiement facile à utiliser et configurez les dépendances en suivant ces étapes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | AWS DevOps, développeur d'applications | 

### Configurer un domaine vérifié
<a name="set-up-a-verified-domain"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Identifiez et attribuez un domaine. | La fonctionnalité de transfert d'e-mails nécessite un domaine dédié. Identifiez et attribuez un domaine ou un sous-domaine que vous pouvez vérifier auprès d'Amazon SES. Ce domaine doit être disponible pour recevoir les e-mails entrants dans l' Compte AWS endroit où la solution de transfert d'e-mails est déployée.Exigences relatives au domaine :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Administrateur cloud, administrateur réseau, administrateur DNS | 
| Vérifiez le domaine. | Vérifiez que le domaine identifié peut être utilisé pour accepter les e-mails entrants.Suivez les instructions de la section [Vérification de votre domaine pour la réception d'e-mails par Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-verification.html) dans la documentation Amazon SES. Cela nécessitera une coordination avec la personne ou l'équipe responsable des enregistrements DNS du domaine. | Développeur d'applications, AWS DevOps | 
| Configurez des enregistrements MX. | Configurez votre domaine avec des enregistrements MX qui pointent vers les points de terminaison Amazon SES de votre Compte AWS région. Pour plus d'informations, consultez la section [Publication d'un enregistrement MX pour la réception d'e-mails par Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-mx-record.html) dans la documentation Amazon SES. | Administrateur cloud, administrateur réseau, administrateur DNS | 

### Déployez la solution de distribution et de transfert d'e-mails
<a name="deploy-the-email-vending-and-forwarding-solution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Modifiez les valeurs par défaut dans`cdk.json`. | Modifiez certaines des valeurs par défaut dans le `cdk.json` fichier (à la racine du référentiel) afin que la solution fonctionne correctement après son déploiement.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Développeur d'applications, AWS DevOps | 
| Déployez la solution de distribution et de transfert d'e-mails. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Développeur d'applications, AWS DevOps | 
| Vérifiez que la solution a été déployée. | Vérifiez que la solution a été déployée avec succès avant de commencer les tests :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Développeur d'applications, AWS DevOps | 

### Vérifiez que la vente et le transfert d'e-mails fonctionnent comme prévu
<a name="verify-that-email-vending-and-forwarding-operate-as-expected"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Vérifiez que l'API fonctionne. | Au cours de cette étape, vous soumettez des données de test à l'API de la solution et vous confirmez que la solution produit le résultat attendu et que les opérations de backend ont été effectuées comme prévu.Exécutez manuellement la fonction Lambda **Vend Email** en utilisant une entrée de test. (Pour un exemple, consultez le fichier [sample\$1vend\$1request.json](https://github.com/aws-samples/aws-account-factory-email/blob/main/src/events/sample_vend_request.json).) Pour`OwnerAddress`, utilisez une adresse e-mail valide. L'API doit renvoyer un nom de compte et un e-mail contenant les valeurs attendues. | Développeur d'applications, AWS DevOps | 
| Vérifiez que l'e-mail est transféré. | Au cours de cette étape, vous envoyez un e-mail de test via le système et vous vérifiez qu'il est transféré au destinataire attendu.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | Développeur d'applications, AWS DevOps | 

## Résolution des problèmes
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Le système ne transmet pas les e-mails comme prévu. | Vérifiez que votre configuration est correcte :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html)Après avoir vérifié la configuration de votre domaine, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 
| Lorsque vous essayez de déployer la AWS CDK pile, vous recevez une erreur similaire à :« Erreur de format du modèle : types de ressources non reconnus »  | Dans la plupart des cas, ce message d'erreur signifie que la région que vous ciblez ne dispose pas de tous les services AWS disponibles. Si vous utilisez une EC2 instance Amazon pour déployer la solution, vous ciblez peut-être une région différente de celle dans laquelle l'instance est exécutée.Par défaut, il est AWS CDK déployé dans la région et le compte que vous avez configurés dans le AWS CLI.Solutions possibles :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 
| Lorsque vous déployez la solution, vous recevez le message d'erreur suivant :« Échec du déploiement : erreur AwsMailFwdStack : paramètre SSM bootstrap/hnb659fds/version /cdk- introuvable. L'environnement a-t-il été amorcé ? Veuillez exécuter 'cdk bootstrap' » | Si vous n'avez jamais déployé de AWS CDK ressources dans la région Compte AWS et que vous ciblez, vous devez d'abord exécuter la `cdk bootstrap` commande comme l'indique l'erreur. Si cette erreur persiste après avoir exécuté la commande d'amorçage, vous essayez peut-être de déployer la solution dans une région différente de celle dans laquelle s'exécute votre environnement de développement.Pour résoudre ce problème, définissez la variable d'`AWS_DEFAULT_REGION`environnement ou définissez une région avec le AWS CLI avant de déployer la solution. Vous pouvez également modifier le `app.py` fichier situé à la racine du référentiel pour inclure un identifiant de compte et une région codés en dur en suivant les instructions de la [AWS CDK documentation relative aux environnements.](https://docs.aws.amazon.com/cdk/v2/guide/environments.html) | 

## Ressources connexes
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-resources"></a>
+ Pour obtenir de l'aide sur l'installation du AWS CLI, voir [Installation ou mise à jour vers la dernière version du AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
+ Pour obtenir de l'aide sur la configuration du AWS CLI avec les informations d'identification d'accès IAM, consultez [Configuration des paramètres pour le AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Pour obtenir de l'aide concernant le AWS CDK, consultez [Getting started with the AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html#getting_started_install). 

## Informations supplémentaires
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-additional"></a>

**Coûts**

Lorsque vous déployez cette solution, le Compte AWS titulaire peut encourir des coûts liés à l'utilisation des services suivants.  Il est important que vous compreniez comment ces services sont facturés afin de connaître les éventuels frais. Pour plus d'informations sur les tarifs, consultez les pages suivantes :
+ [Tarification d'Amazon SES](https://aws.amazon.com/ses/pricing/)
+ [Tarification Amazon S3](https://aws.amazon.com/s3/pricing/)
+ [AWS KMS tarification](https://aws.amazon.com/kms/pricing/)
+ [AWS Lambda tarification](https://aws.amazon.com/lambda/pricing/)
+ [Tarification Amazon DynamoDB](https://aws.amazon.com/dynamodb/pricing/)

# Configuration de la résolution DNS pour les réseaux hybrides dans un environnement AWS à compte unique
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment"></a>

*Abdullahi Olaoye, Amazon Web Services*

## Résumé
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-summary"></a>

Ce modèle décrit comment configurer une architecture de système de noms de domaine (DNS) entièrement hybride qui permet la résolution end-to-end DNS des ressources sur site, des ressources AWS et des requêtes DNS Internet, sans surcharge administrative. Le modèle décrit comment configurer les règles de transfert Amazon Route 53 Resolver qui déterminent où une requête DNS provenant d'AWS doit être envoyée, en fonction du nom de domaine. Les requêtes DNS pour les ressources locales sont transmises aux résolveurs DNS locaux. Les requêtes DNS pour les ressources AWS et les requêtes DNS Internet sont résolues par Route 53 Resolver.

Ce modèle couvre la résolution DNS hybride dans un environnement AWS à compte unique. Pour plus d'informations sur la configuration des requêtes DNS sortantes dans un environnement AWS multi-comptes, consultez le modèle [Configurer la résolution DNS pour les réseaux hybrides dans un environnement AWS multi-comptes](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/set-up-dns-resolution-for-hybrid-networks-in-a-multi-account-aws-environment.html).

## Conditions préalables et limitations
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-prereqs"></a>

**Conditions préalables**
+ Un compte AWS
+ Un cloud privé virtuel (VPC) dans votre compte AWS
+ Une connexion réseau entre l'environnement sur site et votre VPC, via le réseau privé virtuel AWS (AWS VPN) ou AWS Direct Connect
+ Adresses IP de vos résolveurs DNS locaux (accessibles depuis votre VPC)
+ Nom de domaine/sous-domaine à transférer vers des résolveurs locaux (par exemple, onprem.mydc.com)
+ Nom de domaine/sous-domaine pour la zone hébergée privée AWS (par exemple, myvpc.cloud.com)

## Architecture
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-architecture"></a>

**Pile technologique cible**
+ Zone hébergée privée Amazon Route 53
+ Amazon Route 53 Resolver
+ Amazon VPC
+ VPN AWS ou Direct Connect

**Architecture cible**

![\[Flux de travail de résolution DNS hybride dans un environnement AWS à compte unique à l'aide du résolveur Route 53.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/120dedc8-cc6c-4aa7-be11-c70a7ee80642/images/7b75f534-1adc-4a39-86d6-5c4596ff7b6a.png)


 

## Outils
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-tools"></a>
+ [Amazon Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-getting-started.html) facilite le cloud hybride pour les entreprises clientes en permettant une résolution fluide des requêtes DNS sur l'ensemble de votre cloud hybride. Vous pouvez créer des points de terminaison DNS et des règles de transfert conditionnelles pour résoudre les espaces de noms DNS entre votre centre de données local et votre. VPCs
+ La [zone hébergée privée Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html) est un conteneur qui contient des informations sur la manière dont vous souhaitez que Route 53 réponde aux requêtes DNS pour un domaine et ses sous-domaines au sein d'un ou de plusieurs VPCs que vous créez avec le service Amazon VPC.

## Épopées
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-epics"></a>

### Configuration d'une zone hébergée privée
<a name="configure-a-private-hosted-zone"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une zone hébergée privée Route 53 pour un nom de domaine réservé AWS tel que myvpc.cloud.com. | Cette zone contient les enregistrements DNS pour les ressources AWS qui doivent être résolues à partir de l'environnement sur site. Pour obtenir des instructions, consultez [la section Création d'une zone hébergée privée](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) dans la documentation de Route 53. | Administrateur réseau, administrateur système | 
| Associez la zone hébergée privée à votre VPC. | Pour permettre aux ressources de votre VPC de résoudre les enregistrements DNS dans cette zone hébergée privée, vous devez associer votre VPC à la zone hébergée. Pour obtenir des instructions, consultez [la section Création d'une zone hébergée privée](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) dans la documentation de Route 53. | Administrateur réseau, administrateur système | 

### Configuration des points de terminaison Route 53 Resolver
<a name="set-up-route-53-resolver-endpoints"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un point de terminaison entrant. | Route 53 Resolver utilise le point de terminaison entrant pour recevoir les requêtes DNS des résolveurs DNS locaux. Pour obtenir des instructions, consultez la section [Transférer des requêtes DNS entrantes vers votre VPCs](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-forwarding-inbound-queries.html) adresse dans la documentation de Route 53. Notez l'adresse IP du point de terminaison entrant. | Administrateur réseau, administrateur système | 
| Créez un point de terminaison sortant. | Route 53 Resolver utilise le point de terminaison sortant pour envoyer des requêtes DNS aux résolveurs DNS locaux. Pour obtenir des instructions, consultez la section [Transfert de requêtes DNS sortantes vers votre réseau](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-forwarding-outbound-queries.html) dans la documentation de Route 53. Notez l'ID du point de terminaison de sortie. | Administrateur réseau, administrateur système | 

### Configurez une règle de transfert et associez-la à votre VPC
<a name="set-up-a-forwarding-rule-and-associate-it-with-your-vpc"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une règle de transfert pour le domaine local. | Cette règle indiquera à Route 53 Resolver de transférer toutes les requêtes DNS pour les domaines locaux (tels que onprem.mydc.com) aux résolveurs DNS locaux. Pour créer cette règle, vous aurez besoin des adresses IP des résolveurs DNS locaux et de l'ID du point de terminaison sortant pour le résolveur Route 53. Pour obtenir des instructions, consultez [la section Gestion des règles de transfert](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html) dans la documentation de Route 53. | Administrateur réseau, administrateur système | 
| Associez la règle de transfert à votre VPC. | Pour que la règle de transfert prenne effet, vous devez l'associer à votre VPC. Route 53 Resolver prend ensuite la règle en compte lors de la résolution d'un domaine. Pour obtenir des instructions, consultez [la section Gestion des règles de transfert](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html) dans la documentation de Route 53. | Administrateur réseau, administrateur système | 

### Configuration de résolveurs DNS locaux
<a name="configure-on-premises-dns-resolvers"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez le transfert conditionnel dans les résolveurs DNS sur site.  | Pour que les requêtes DNS soient envoyées à la zone hébergée privée Route 53 depuis l'environnement local, vous devez configurer le transfert conditionnel dans les résolveurs DNS locaux. Cela indique aux résolveurs DNS de transférer toutes les requêtes DNS pour le domaine AWS (par exemple, pour myvpc.cloud.com) à l'adresse IP du point de terminaison entrant pour le résolveur Route 53. | Administrateur réseau, administrateur système | 

### Tester la résolution end-to-end DNS
<a name="test-end-to-end-dns-resolution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Testez la résolution DNS depuis AWS vers l'environnement sur site. | À partir d'un serveur du VPC, effectuez une requête DNS pour un domaine local (tel que server1.onprem.mydc.com). | Administrateur réseau, administrateur système | 
| Testez la résolution DNS depuis l'environnement sur site vers AWS. | À partir d'un serveur sur site, effectuez une résolution DNS pour un domaine AWS (tel que server1.myvpc.cloud.com). | Administrateur réseau, administrateur système | 

## Ressources connexes
<a name="set-up-dns-resolution-for-hybrid-networks-in-a-single-account-aws-environment-resources"></a>
+ [Gestion DNS centralisée du cloud hybride avec Amazon Route 53 et AWS Transit Gateway](https://aws.amazon.com/blogs/networking-and-content-delivery/centralized-dns-management-of-hybrid-cloud-with-amazon-route-53-and-aws-transit-gateway/) (blog AWS Networking & Content Delivery)
+ [Simplifiez la gestion du DNS dans un environnement multi-comptes avec Route 53 Resolver](https://aws.amazon.com/blogs/security/simplify-dns-management-in-a-multiaccount-environment-with-route-53-resolver/) (blog de sécurité AWS)
+ [Utilisation de zones hébergées privées](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html) (documentation Route 53)
+ [Mise en route avec Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-getting-started.html) (documentation Route 53)

# Configurez automatiquement des robots UiPath RPA sur Amazon à l'aide EC2 d'AWS CloudFormation
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation"></a>

*Dr. Rahul Sharad Gaikwad et Tamilselvan P, Amazon Web Services*

## Résumé
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-summary"></a>

Ce modèle explique comment déployer des robots d'automatisation robotique des processus (RPA) sur des instances Amazon Elastic Compute Cloud (Amazon EC2). Il utilise un pipeline [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) pour créer une Amazon Machine Image (AMI) personnalisée. Une AMI est une image de machine virtuelle (VM) préconfigurée qui contient le système d'exploitation (OS) et le logiciel préinstallé pour déployer EC2 les instances. Ce modèle utilise des CloudFormation modèles AWS pour installer l'[édition UiPath Studio Community](https://www.uipath.com/product/studio) sur l'AMI personnalisée. UiPath est un outil RPA qui vous aide à configurer des robots pour automatiser vos tâches.

Dans le cadre de cette solution, les instances EC2 Windows sont lancées à l'aide de l'AMI de base, et l'application UiPath Studio est installée sur les instances. Le modèle utilise l'outil Microsoft System Preparation (Sysprep) pour dupliquer l'installation personnalisée de Windows. Ensuite, il supprime les informations sur l'hôte et crée une AMI finale à partir de l'instance. Vous pouvez ensuite lancer les instances à la demande en utilisant l'AMI finale avec vos propres conventions de dénomination et votre propre configuration de surveillance.


| 
| 
| Remarque : Ce modèle ne fournit aucune information sur l'utilisation des robots RPA. Pour plus d'informations, consultez la [UiPath documentation](https://docs.uipath.com/). Vous pouvez également utiliser ce modèle pour configurer d'autres applications de robots RPA en personnalisant les étapes d'installation en fonction de vos besoins. | 
| --- |

Ce modèle fournit les automatisations et les avantages suivants :
+ Déploiement et partage d'applications : vous pouvez créer Amazon EC2 AMIs pour le déploiement d'applications et les partager entre plusieurs comptes via un pipeline EC2 Image Builder, qui utilise des CloudFormation modèles AWS comme scripts d'infrastructure en tant que code (IaC).
+  EC2 Provisionnement et mise à l'échelle d'Amazon : les modèles CloudFormation iAC fournissent des séquences de noms d'ordinateurs personnalisées et automatisent les jointures Active Directory.
+ Observabilité et surveillance : le modèle configure les CloudWatch tableaux de bord Amazon pour vous aider à surveiller les EC2 indicateurs Amazon (tels que l'utilisation du processeur et du disque).
+ Avantages de la RPA pour votre entreprise : la RPA améliore la précision car les robots peuvent exécuter les tâches assignées automatiquement et de manière cohérente. La RPA augmente également la vitesse et la productivité car elle supprime les opérations sans valeur ajoutée et gère les activités répétitives.

## Conditions préalables et limitations
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-prereqs"></a>

**Prérequis**
+ Un [compte AWS](https://aws.amazon.com/free/) actif
+ [Autorisations AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) pour le déploiement de modèles CloudFormation 
+ [Politiques IAM](https://docs.aws.amazon.com/imagebuilder/latest/userguide/cross-account-dist.html) pour configurer la distribution d'AMI entre comptes avec Image Builder EC2 

## Architecture
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-architecture"></a>

![\[Architecture cible pour configurer les robots RPA sur Amazon EC2\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/5555a62d-91d4-4e81-9961-ff89faedd6ad/images/1893d2d3-8912-4473-adf1-6633b5badcd9.png)


1. L'administrateur fournit l'AMI Windows de base dans le `ec2-image-builder.yaml` fichier et déploie la pile dans la CloudFormation console.

1. La CloudFormation pile déploie le pipeline EC2 Image Builder, qui inclut les ressources suivantes :
   + `Ec2ImageInfraConfiguration`
   + `Ec2ImageComponent`
   + `Ec2ImageRecipe`
   + `Ec2AMI`

1. Le pipeline EC2 Image Builder lance une EC2 instance Windows temporaire à l'aide de l'AMI de base et installe les composants requis (dans ce cas, UiPath Studio).

1.  EC2 Image Builder supprime toutes les informations sur l'hôte et crée une AMI à partir de Windows Server.

1. Vous mettez à jour le `ec2-provisioning yaml` fichier avec l'AMI personnalisée et lancez un certain nombre d' EC2 instances en fonction de vos besoins.

1. Vous déployez la macro Count à l'aide d'un CloudFormation modèle. Cette macro fournit une propriété **Count** pour les CloudFormation ressources afin que vous puissiez facilement spécifier plusieurs ressources du même type.

1. Vous mettez à jour le nom de la macro dans le CloudFormation `ec2-provisioning.yaml` fichier et vous déployez la pile.

1. L'administrateur met à jour le `ec2-provisioning.yaml` fichier en fonction des besoins et lance la pile.

1. Le modèle déploie EC2 des instances avec l'application UiPath Studio.

## Outils
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-tools"></a>

**Services AWS**
+ [AWS](https://aws.amazon.com/cloudformation/) vous CloudFormation aide à modéliser et à gérer les ressources de l'infrastructure de manière automatisée et sécurisée.
+ [Amazon](https://aws.amazon.com/cloudwatch/) vous CloudWatch aide à observer et à surveiller les ressources et les applications sur AWS, sur site et sur d'autres clouds.
+ [Amazon Elastic Compute Cloud (Amazon EC2](https://aws.amazon.com/ec2/)) fournit une capacité de calcul sécurisée et redimensionnable dans le cloud AWS. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
+ [EC2 Image Builder](https://aws.amazon.com/image-builder/) simplifie la création, le test et le déploiement de machines virtuelles et d'images de conteneurs à utiliser sur AWS ou sur site.
+ [Amazon](https://aws.amazon.com/eventbridge/) vous EventBridge aide à créer des applications pilotées par des événements à grande échelle sur AWS, sur des systèmes existants ou sur des applications SaaS (Software as a Service).
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous permet de contrôler en toute sécurité l'accès aux ressources AWS. Avec IAM, vous pouvez gérer de manière centralisée les autorisations qui contrôlent les ressources AWS auxquelles les utilisateurs peuvent accéder. Vous pouvez utiliser IAM pour contrôler les personnes qui s’authentifient (sont connectées) et sont autorisées (disposent d’autorisations) à utiliser des ressources.
+ [AWS Lambda](https://aws.amazon.com/lambda/) est un service de calcul sans serveur piloté par les événements qui vous permet d'exécuter du code pour pratiquement n'importe quel type d'application ou de service principal sans provisionner ni gérer de serveurs. Vous pouvez appeler des fonctions Lambda à partir de plus de 200 services AWS et applications SaaS, et ne payer que pour ce que vous utilisez.
+ [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/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.
+ [AWS Systems Manager Agent (SSM Agent)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) aide Systems Manager à mettre à jour, gérer et configurer des EC2 instances, des appareils périphériques, des serveurs sur site et des machines virtuelles ()VMs.

**Référentiels de code**

Le code de ce modèle est disponible dans la [configuration du bot GitHub UiPath RPA à l'aide CloudFormation](https://github.com/aws-samples/uipath-rpa-setup-ec2-windows-ami-cloudformation) du référentiel. Le modèle utilise également une macro disponible dans le [référentiel AWS CloudFormation Macros](https://github.com/aws-cloudformation/aws-cloudformation-macros/tree/master/Count).

## Bonnes pratiques
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-best-practices"></a>
+ AWS publie un nouveau [Windows AMIs](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/windows-ami-version-history.html) chaque mois. Ils contiennent les derniers correctifs, pilotes et agents de lancement du système d'exploitation. Nous vous recommandons d'utiliser l'AMI la plus récente lorsque vous lancez de nouvelles instances ou lorsque vous créez vos propres images personnalisées.
+ Appliquez tous les correctifs de sécurité Windows ou Linux disponibles lors de la création d'images.

## Épopées
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-epics"></a>

### Déployer un pipeline d'images pour l'image de base
<a name="deploy-an-image-pipeline-for-the-base-image"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez un pipeline EC2 Image Builder. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Afficher les paramètres EC2 d'Image Builder. | Les paramètres EC2 d'Image Builder incluent la configuration de l'infrastructure, les paramètres de distribution et les paramètres d'analyse de sécurité. Pour consulter les paramètres, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)Il est recommandé d'apporter des mises à jour à EC2 Image Builder uniquement via le CloudFormation modèle. | AWS DevOps | 
| Affichez le pipeline d'images. | Pour afficher le pipeline d'images déployé, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Afficher les journaux d'Image Builder. | EC2 Les journaux Image Builder sont agrégés en groupes de CloudWatch journaux. Pour consulter les journaux, procédez comme suit CloudWatch :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)EC2 Les journaux Image Builder sont également stockés dans un compartiment S3. Pour consulter les journaux contenus dans le compartiment :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Téléchargez le UiPath fichier dans un compartiment S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 

### Déployez et testez la macro Count
<a name="deploy-and-test-the-count-macro"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez la macro Count. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)Si vous souhaitez utiliser la console, suivez les instructions de l'épopée précédente ou de la [CloudFormation documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html).  | DevOps ingénieur | 
| Testez la macro Count. | Pour tester les fonctionnalités de la macro, essayez de lancer l'exemple de modèle fourni avec la macro. <pre>aws cloudformation deploy \<br />    --stack-name Count-test \<br />    --template-file test.yaml \<br />    --capabilities CAPABILITY_IAM</pre> | DevOps ingénieur | 

### Déployez la CloudFormation pile pour approvisionner les instances avec l'image personnalisée
<a name="deploy-the-cloudformation-stack-to-provision-instances-with-the-custom-image"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez le modèle de EC2 provisionnement Amazon. | Pour déployer EC2 Image Pipeline à l'aide de CloudFormation :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Consultez les EC2 paramètres Amazon. | Les EC2 paramètres Amazon incluent la sécurité, la mise en réseau, le stockage, les vérifications d'état, la surveillance et les configurations des balises. Pour consulter ces configurations, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Consultez le CloudWatch tableau de bord. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)Une fois que vous avez approvisionné la pile, il faut du temps pour remplir le tableau de bord avec des métriques.Le tableau de bord fournit les indicateurs suivants : `CPUUtilization` `DiskUtilization``MemoryUtilization`,,`NetworkIn`,`NetworkOut`,`StatusCheckFailed`. | AWS DevOps | 
| Consultez les métriques personnalisées relatives à l'utilisation de la mémoire et du disque.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Afficher les alarmes relatives à l'utilisation de la mémoire et du disque.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 
| Vérifiez la règle du cycle de vie des instantanés. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html) | AWS DevOps | 

### Supprimer l'environnement (facultatif)
<a name="delete-the-environment-optional"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez les piles. | Lorsque votre PoC ou votre projet pilote sera terminé, nous vous recommandons de supprimer les piles que vous avez créées pour vous assurer que ces ressources ne vous seront pas facturées.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation.html)L'opération de suppression de la pile ne peut pas être arrêtée une fois qu'elle a commencé. La pile passe à l’état `DELETE_IN_PROGRESS`.Si la suppression échoue, la pile sera dans `DELETE_FAILED` cet état. Pour trouver des solutions, consultez la section [Supprimer les échecs de pile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-delete-stack-fails) dans la documentation de CloudFormation résolution des problèmes d'AWS.Pour plus d'informations sur la protection contre la suppression accidentelle de piles, consultez [la section Protection d'une pile contre la suppression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) dans la CloudFormation documentation AWS. | AWS DevOps | 

## Résolution des problèmes
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Lorsque vous déployez le modèle de EC2 provisioning Amazon, le message d'erreur suivant s'affiche : *Réponse mal formée reçue de la part de transform 123xxxx* : :Count. | Il s'agit d'un problème connu. (Consultez la solution personnalisée et le PR dans le [référentiel de CloudFormation macros AWS](https://github.com/aws-cloudformation/aws-cloudformation-macros/pull/20).)[Pour résoudre ce problème, ouvrez la console AWS Lambda et mettez-la à jour `index.py` avec le contenu du GitHub référentiel.](https://raw.githubusercontent.com/aws-cloudformation/aws-cloudformation-macros/f1629c96477dcd87278814d4063c37877602c0c8/Count/src/index.py)  | 

## Ressources connexes
<a name="set-up-uipath-rpa-bots-automatically-on-amazon-ec2-by-using-aws-cloudformation-resources"></a>

**GitHub référentiels**
+ [UiPath Configuration du bot RPA à l'aide de CloudFormation](https://github.com/aws-samples/uipath-rpa-setup-ec2-windows-ami-cloudformation)
+ [ CloudFormation Macro de comptage](https://github.com/aws-cloudformation/aws-cloudformation-macros/tree/master/Count)

**Références AWS**
+ [Création d'une pile sur la CloudFormation console AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) (CloudFormation documentation)
+ [Résolution des problèmes CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html) (CloudFormation documentation)
+ [Surveillez les métriques de mémoire et de disque pour EC2 les instances Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html) ( EC2 documentation Amazon)
+ [Comment puis-je utiliser l' CloudWatch agent pour consulter les mesures de Performance Monitor sur un serveur Windows ?](https://repost.aws/knowledge-center/cloudwatch-performance-monitor-windows) (AWS Re:Publier un article)

**Références supplémentaires**
+ [UiPath documentation](https://docs.uipath.com/)
+ [Configuration du nom d'hôte dans une SysPreped AMI](https://blog.brianbeach.com/2014/07/setting-hostname-in-syspreped-ami.html) (article de blog de Brian Beach)
+ [Comment faire en sorte que Cloudformation retraite un modèle à l'aide d'une macro lorsque les paramètres changent ?](https://stackoverflow.com/questions/59828989/how-do-i-make-cloudformation-reprocess-a-template-using-a-macro-when-parameters) (Stack Overflow)

# Configuration d'une PeopleSoft architecture à haute disponibilité sur AWS
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws"></a>

*Ramanathan Muralidhar, Amazon Web Services*

## Résumé
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-summary"></a>

Lorsque vous migrez vos PeopleSoft charges de travail vers AWS, la résilience est un objectif important. Cela garantit que votre PeopleSoft application est toujours hautement disponible et capable de se remettre rapidement en cas de panne.

Ce modèle fournit une architecture pour vos PeopleSoft applications sur AWS afin de garantir une haute disponibilité (HA) au niveau du réseau, de l'application et de la base de données. Il utilise une base de données [Amazon Relational Database Service (Amazon RDS](https://aws.amazon.com/rds/)) pour Oracle ou Amazon RDS for SQL Server pour le niveau de base de données. Cette architecture inclut également des services AWS tels qu'[Amazon Route 53](https://aws.amazon.com/route53/), les instances Linux [Amazon Elastic Compute Cloud (Amazon EC2](https://aws.amazon.com/ec2/))[, Amazon Elastic Block Storage (Amazon EBS), Amazon](https://aws.amazon.com/ebs/) Elastic [File System (Amazon EFS](https://aws.amazon.com/efs/)) et un [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer). Elle est évolutive.

[Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) fournit une suite d'outils et d'applications pour la gestion des effectifs et d'autres opérations commerciales.

## Conditions préalables et limitations
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ Un PeopleSoft environnement doté des licences nécessaires pour le configurer sur AWS
+ Un cloud privé virtuel (VPC) configuré dans votre compte AWS avec les ressources suivantes :
  + Au moins deux zones de disponibilité
  + Un sous-réseau public et trois sous-réseaux privés dans chaque zone de disponibilité
  + Une passerelle NAT et une passerelle Internet
  + Tables de routage pour chaque sous-réseau afin d'acheminer le trafic
  + Listes de contrôle d'accès réseau (réseau ACLs) et groupes de sécurité définis pour garantir la sécurité de l' PeopleSoft application conformément aux normes de votre entreprise

**Limites**
+ Ce modèle fournit une solution de haute disponibilité (HA). Il ne prend pas en charge les scénarios de reprise après sinistre (DR). Dans les rares cas où l'ensemble de la région AWS pour l'implémentation HA tombe en panne, l'application deviendra indisponible.

**Versions du produit**
+ PeopleSoft applications exécutant PeopleTools 8.52 et versions ultérieures

## Architecture
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-architecture"></a>

**Architecture cible**

Les interruptions ou pannes de votre application de PeopleSoft production ont un impact sur la disponibilité de l'application et perturbent considérablement votre activité.

Nous vous recommandons de concevoir votre application PeopleSoft de production de manière à ce qu'elle soit toujours hautement disponible. Vous pouvez y parvenir en éliminant les points de défaillance uniques, en ajoutant des points de croisement ou de basculement fiables et en détectant les défaillances. Le schéma suivant illustre une architecture HA pour PeopleSoft AWS.

![\[Architecture à haute disponibilité PeopleSoft pour AWS\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/0db96376-dadb-4545-b130-ebbe64acd4e9/images/5d585a8e-320a-495d-a049-97171633e90f.png)


Ce déploiement d'architecture utilise Amazon RDS for Oracle comme base PeopleSoft de données et des instances EC2 exécutées sous Red Hat Enterprise Linux (RHEL). Vous pouvez également utiliser Amazon RDS for SQL Server comme base de données Peoplesoft.

Cette architecture contient les composants suivants : 
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) est utilisé comme serveur de noms de domaine (DNS) pour acheminer les demandes depuis Internet vers l' PeopleSoft application.
+ [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) vous aide à vous protéger contre les exploits Web courants et les robots susceptibles d'affecter la disponibilité, de compromettre la sécurité ou de consommer des ressources excessives. [AWS Shield Advanced](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html) (non illustré) fournit une protection beaucoup plus étendue.
+ Un [Application Load Balancer équilibre la charge](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) du trafic HTTP et HTTPS grâce à un routage avancé des requêtes ciblant les serveurs Web.
+ Les serveurs Web, les serveurs d'applications, les serveurs de planificateur de processus et les serveurs Elasticsearch qui prennent en charge l' PeopleSoft application s'exécutent dans plusieurs zones de disponibilité et utilisent Amazon EC2 Auto [Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html).
+ La base de données utilisée par l' PeopleSoft application s'exécute sur [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) dans une configuration multi-AZ.
+ Le partage de fichiers utilisé par l' PeopleSoft application est configuré sur [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) et est utilisé pour accéder aux fichiers entre les instances.
+ Les [Amazon Machine Images (AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)) sont utilisées par Amazon EC2 Auto Scaling pour garantir PeopleSoft que les composants sont clonés rapidement en cas de besoin.
+ Les [passerelles NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) connectent les instances d'un sous-réseau privé à des services extérieurs à votre VPC et garantissent que les services externes ne peuvent pas établir de connexion avec ces instances.
+ La [passerelle Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) est un composant VPC à échelle horizontale, redondant et hautement disponible qui permet la communication entre votre VPC et Internet.
+ Les hôtes bastions du sous-réseau public permettent d'accéder aux serveurs du sous-réseau privé à partir d'un réseau externe, tel qu'Internet ou un réseau local. Les hôtes Bastion fournissent un accès contrôlé et sécurisé aux serveurs des sous-réseaux privés.

**Détails de l'architecture**

La PeopleSoft base de données est hébergée dans une base de données Amazon RDS for Oracle (ou Amazon RDS for SQL Server) dans une configuration multi-AZ. La [fonctionnalité Amazon RDS Multi-AZ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) reproduit les mises à jour de base de données sur deux zones de disponibilité afin d'accroître la durabilité et la disponibilité. Amazon RDS bascule automatiquement vers la base de données de secours pour les opérations de maintenance planifiées et les interruptions imprévues.

Le PeopleSoft Web et le niveau intermédiaire sont installés sur les instances EC2. Ces instances sont réparties sur plusieurs zones de disponibilité et liées par un [groupe Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html). Cela garantit que ces composants sont toujours hautement disponibles. Un nombre minimum d'instances requises est maintenu afin de garantir que l'application est toujours disponible et qu'elle peut évoluer en cas de besoin.

Nous vous recommandons d'utiliser un type d'instance EC2 de génération actuelle pour les instances OEM EC2. Les types d'instances de la génération actuelle, tels que [les instances basées sur le système AWS Nitro](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances), prennent en charge les machines virtuelles matérielles (HVMs). Les HVM AMIs sont nécessaires pour tirer parti d'[une mise en réseau améliorée](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html), et ils offrent également une sécurité accrue. Les instances EC2 qui font partie de chaque groupe Auto Scaling utilisent leur propre AMI lors du remplacement ou du dimensionnement des instances. Nous vous recommandons de sélectionner les types d'instances EC2 en fonction de la charge que vous souhaitez que votre PeopleSoft application gère et des valeurs minimales recommandées par Oracle pour votre PeopleSoft application et votre PeopleTools version. Pour plus d'informations sur les exigences matérielles et logicielles, consultez le [site Web de support d'Oracle](https://support.oracle.com).

Le PeopleSoft Web et le niveau intermédiaire partagent un montage Amazon EFS pour partager les rapports, les fichiers de données et (si nécessaire) le `PS_HOME` répertoire. Amazon EFS est configuré avec des cibles de montage dans chaque zone de disponibilité pour des raisons de performances et de coûts.

Un Application Load Balancer est configuré pour prendre en charge le trafic qui accède à l' PeopleSoft application et pour équilibrer la charge du trafic entre les serveurs Web des différentes zones de disponibilité. Un Application Load Balancer est un périphérique réseau qui fournit une haute disponibilité dans au moins deux zones de disponibilité. Les serveurs Web distribuent le trafic aux différents serveurs d'applications en utilisant une configuration d'équilibrage de charge. L'équilibrage de charge entre le serveur Web et le serveur d'applications garantit une répartition uniforme de la charge entre les instances et permet d'éviter les blocages et les interruptions de service dus à des instances surchargées.

Amazon Route 53 est utilisé comme service DNS pour acheminer le trafic vers l'Application Load Balancer depuis Internet. Route 53 est un service Web DNS hautement disponible et évolutif.

**Détails du HA**
+ Bases de données : la fonctionnalité multi-AZ d'Amazon RDS gère deux bases de données dans plusieurs zones de disponibilité avec réplication synchrone. Cela crée un environnement hautement disponible avec basculement automatique. Amazon RDS détecte les événements de basculement et lance un basculement automatique lorsque ces événements se produisent. Vous pouvez également lancer un basculement manuel via l'API Amazon RDS. Pour une explication détaillée, consultez le billet de blog [Amazon RDS Under The Hood : Multi-AZ](https://aws.amazon.com/blogs/database/amazon-rds-under-the-hood-multi-az/). Le basculement est fluide et l'application se reconnecte automatiquement à la base de données lorsque cela se produit. Cependant, toute tâche du planificateur de processus pendant le basculement génère des erreurs et doit être soumise à nouveau.
+ PeopleSoft serveurs d'applications : les serveurs d'applications sont répartis sur plusieurs zones de disponibilité et un groupe Auto Scaling est défini pour eux. En cas de défaillance d'une instance, le groupe Auto Scaling la remplace immédiatement par une instance saine clonée à partir de l'AMI du modèle de serveur d'applications. Plus précisément, le *jolt pooling* est activé. Ainsi, lorsqu'une instance de serveur d'applications tombe en panne, les sessions basculent automatiquement vers un autre serveur d'applications, et le groupe Auto Scaling lance automatiquement une autre instance, ouvre le serveur d'applications et l'enregistre dans le montage Amazon EFS. Le serveur d'applications nouvellement créé est automatiquement ajouté aux serveurs Web à l'aide du `PSSTRSETUP.SH` script sur les serveurs Web. Cela garantit que le serveur d'applications est toujours hautement disponible et qu'il se rétablit rapidement en cas de panne.
+ Planificateurs de processus : les serveurs des planificateurs de processus sont répartis sur plusieurs zones de disponibilité et un groupe Auto Scaling leur est défini. En cas de défaillance d'une instance, le groupe Auto Scaling la remplace immédiatement par une instance saine clonée à partir de l'AMI du modèle de serveur de planificateur de processus. Plus précisément, lorsqu'une instance du planificateur de processus tombe en panne, le groupe Auto Scaling lance automatiquement une autre instance et ouvre le planificateur de processus. Toutes les tâches en cours d'exécution au moment de l'échec de l'instance doivent être soumises à nouveau. Cela garantit que le planificateur de processus est toujours hautement disponible et qu'il se rétablit rapidement en cas de panne.
+ Serveurs Elasticsearch : un groupe Auto Scaling est défini pour les serveurs Elasticsearch. En cas de défaillance d'une instance, le groupe Auto Scaling la remplace immédiatement par une instance saine clonée à partir de l'AMI du modèle de serveur Elasticsearch. Plus précisément, lorsqu'une instance Elasticsearch tombe en panne, l'Application Load Balancer qui répond aux demandes détecte la défaillance et arrête de lui envoyer du trafic. Le groupe Auto Scaling lance automatiquement une autre instance et fait apparaître l'instance Elasticsearch. Lorsque l'instance Elasticsearch est sauvegardée, l'Application Load Balancer détecte qu'elle est saine et recommence à lui envoyer des requêtes. Cela garantit que le serveur Elasticsearch est toujours hautement disponible et qu'il se rétablit rapidement en cas de panne.
+ Serveurs Web : un groupe Auto Scaling est défini pour les serveurs Web. En cas de défaillance d'une instance, le groupe Auto Scaling la remplace immédiatement par une instance saine clonée à partir de l'AMI du modèle de serveur Web. Plus précisément, lorsqu'une instance de serveur Web tombe en panne, l'Application Load Balancer qui répond aux demandes détecte la défaillance et arrête de lui envoyer du trafic. Le groupe Auto Scaling lance automatiquement une autre instance et fait apparaître l'instance du serveur Web. Lorsque l'instance du serveur Web est sauvegardée, l'Application Load Balancer détecte qu'elle est saine et recommence à lui envoyer des requêtes. Cela garantit que le serveur Web est toujours hautement disponible et qu'il se rétablit rapidement en cas de panne.

## Outils
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-tools"></a>

**Services AWS**
+ [Les équilibreurs de charge des applications](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/) distribuent le trafic applicatif entrant sur plusieurs cibles, telles que les instances EC2, dans plusieurs zones de disponibilité.
+ [Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fournit des volumes de stockage au niveau des blocs à utiliser avec les instances Amazon Elastic Compute Cloud (Amazon EC2).
+ [Amazon Elastic Compute Cloud (Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)) fournit une capacité de calcul évolutive dans le cloud AWS. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) vous aide à créer et à configurer des systèmes de fichiers partagés dans le cloud AWS.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans le cloud AWS.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) est un service Web DNS hautement disponible et évolutif.

## Bonnes pratiques
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-best-practices"></a>

**Bonnes pratiques opérationnelles**
+ Lorsque vous utilisez PeopleSoft AWS, utilisez Route 53 pour acheminer le trafic depuis Internet et localement. Utilisez l'[option failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring.html) pour rediriger le trafic vers le site de reprise après sinistre (DR) si l'instance de base de données principale n'est pas disponible.
+ Utilisez toujours un Application Load Balancer devant l' PeopleSoft environnement. Cela garantit l'équilibrage de charge du trafic vers les serveurs Web de manière sécurisée.
+ Dans les paramètres du groupe cible Application Load Balancer, assurez-vous que l'[adhérence est activée](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html) à l'aide d'un cookie généré par l'équilibreur de charge.
**Note**  
Il se peut que vous deviez utiliser un cookie basé sur une application si vous utilisez l'authentification unique (SSO) externe. Cela garantit la cohérence des connexions entre les serveurs Web et les serveurs d'applications.
+ Pour une application PeopleSoft de production, le délai d'inactivité de l'Application Load Balancer doit correspondre à celui défini dans le profil Web que vous utilisez. Cela empêche les sessions utilisateur d'expirer au niveau de la couche d'équilibrage de charge.
+ Pour une application PeopleSoft de production, définissez le taux de [recyclage du serveur d'applications sur](https://docs.oracle.com/cd/F28299_01/pt857pbr3/eng/pt/tsvt/concept_PSAPPSRVOptions-c07f06.html?pli=ul_d96e90_tsvt) une valeur qui minimise les fuites de mémoire.
+ Si vous utilisez une base de données Amazon RDS pour votre application de PeopleSoft production, comme décrit dans ce modèle, exécutez-la au [format Multi-AZ pour une haute disponibilité](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html).
+ Si votre base de données s'exécute sur une instance EC2 pour votre application de PeopleSoft production, assurez-vous qu'une [base de données de secours s'exécute sur une autre zone de disponibilité](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html#ec2-oracle-ha) pour garantir une haute disponibilité.
+ Pour la reprise après sinistre, assurez-vous que votre base de données Amazon RDS ou instance EC2 dispose d'une instance de secours configurée dans une région AWS distincte de celle de la base de données de production. Cela garantit qu'en cas de sinistre dans la région, vous pouvez transférer l'application vers une autre région.
+ Pour la [reprise après sinistre, utilisez Amazon Elastic Disaster Recovery](https://aws.amazon.com/disaster-recovery/) pour configurer les composants au niveau de l'application dans une région distincte de celle des composants de production. Cela garantit qu'en cas de sinistre dans la région, vous pouvez transférer l'application vers une autre région.
+ Utilisez Amazon EFS (pour les I/O exigences modérées) ou [Amazon FSx](https://aws.amazon.com/fsx/) (pour les I/O exigences élevées) pour stocker vos PeopleSoft rapports, pièces jointes et fichiers de données. Cela garantit que le contenu est stocké dans un emplacement central et qu'il est accessible depuis n'importe quel endroit de l'infrastructure.
+ Utilisez [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) (de base et détaillé) pour surveiller les ressources du cloud AWS utilisées par votre PeopleSoft application en temps quasi réel. Cela garantit que vous êtes immédiatement alerté des problèmes et que vous pouvez les résoudre rapidement avant qu'ils n'affectent la disponibilité de l'environnement.
+ Si vous utilisez une base de données Amazon RDS comme base de données, utilisez [Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html). PeopleSoft Cette fonctionnalité donne accès à plus de 50 métriques, notamment le processeur, la mémoire et le système de fichiersI/O, and disk I/O.
+ Utilisez [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) pour surveiller les appels d'API sur les ressources AWS utilisées par votre PeopleSoft application. Cela vous permet d'effectuer une analyse de sécurité, un suivi des modifications des ressources et un audit de conformité.

**Bonnes pratiques de sécurité**
+ [Pour protéger votre PeopleSoft application contre les exploits courants tels que l'injection SQL ou le cross-site scripting (XSS), utilisez AWS WAF.](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) Envisagez d'utiliser [AWS Shield Advanced](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html) pour des services de détection et d'atténuation personnalisés.
+ Ajoutez une règle à l'Application Load Balancer pour rediriger automatiquement le trafic du protocole HTTP vers le protocole HTTPS afin de sécuriser votre PeopleSoft application.
+ Configurez un groupe de sécurité distinct pour l'Application Load Balancer. Ce groupe de sécurité doit autoriser uniquement le trafic HTTPS/HTTP entrant et aucun trafic sortant. Cela garantit que seul le trafic prévu est autorisé et contribue à sécuriser votre application.
+ Utilisez des sous-réseaux privés pour les serveurs d'applications, les serveurs Web et les bases de données, et utilisez des [passerelles NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) pour le trafic Internet sortant. Cela garantit que les serveurs qui prennent en charge l'application ne sont pas accessibles au public, tout en fournissant un accès public uniquement aux serveurs qui en ont besoin.
+ Utilisez différents VPCs pour exécuter vos environnements PeopleSoft de production et de non-production. Utilisez [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/), le [peering VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html), le [réseau ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) et les [groupes de sécurité](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) pour contrôler le flux de trafic entre les [VPC](https://aws.amazon.com/vpc/) et, si nécessaire, votre centre de données sur site.
+ Respectez le principe du moindre privilège. N'accordez l'accès aux ressources AWS utilisées par l' PeopleSoft application qu'aux utilisateurs qui en ont absolument besoin. Accordez uniquement les privilèges minimaux requis pour effectuer une tâche. Pour plus d'informations, consultez le [pilier de sécurité](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_permissions_least_privileges.html) d'AWS Well-Architected Framework.
+ Dans la mesure du possible, utilisez [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) pour accéder aux instances EC2 utilisées par l' PeopleSoft application.

**Bonnes pratiques en matière de fiabilité**
+ Lorsque vous utilisez un Application Load Balancer, enregistrez une cible unique pour chaque zone de disponibilité activée. Cela rend l'équilibreur de charge le plus efficace possible.
+ Nous vous recommandons d'utiliser trois URL distinctes URLs pour chaque environnement de PeopleSoft production : une URL pour accéder à l'application, une pour servir le courtier d'intégration et une pour consulter les rapports. Dans la mesure du possible, chaque URL doit disposer de ses propres serveurs Web et serveurs d'applications dédiés. Cette conception contribue à renforcer la sécurité de votre PeopleSoft application, car chaque URL possède une fonctionnalité distincte et un accès contrôlé. Cela minimise également l'ampleur de l'impact en cas de défaillance des services sous-jacents.
+ Nous vous recommandons de configurer [des contrôles de santé sur les groupes cibles de l'équilibreur de charge](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html) pour votre PeopleSoft application. Les contrôles de santé doivent être effectués sur les serveurs Web plutôt que sur les instances EC2 exécutant ces serveurs. Cela garantit que si le serveur Web tombe en panne ou si l'instance EC2 qui héberge le serveur Web tombe en panne, l'Application Load Balancer reflète ces informations avec précision.
+ Pour une application PeopleSoft de production, nous vous recommandons de répartir les serveurs Web sur au moins trois zones de disponibilité. Cela garantit que l' PeopleSoft application est toujours hautement disponible même si l'une des zones de disponibilité tombe en panne.
+ Pour une application PeopleSoft de production, activez jolt pooling (`joltPooling=true`). Cela garantit que votre application bascule vers un autre serveur d'applications si un serveur est en panne pour des raisons de correction ou en raison d'une défaillance d'une machine virtuelle.
+ Pour une application PeopleSoft de production, définissez cette `DynamicConfigReload ` valeur sur 1. Ce paramètre est pris en charge dans les PeopleTools versions 8.52 et ultérieures. Il ajoute de nouveaux serveurs d'applications au serveur Web de manière dynamique, sans redémarrer les serveurs.
+ Pour minimiser les temps d'arrêt lorsque vous appliquez des PeopleTools correctifs, utilisez la méthode de blue/green déploiement pour les configurations de lancement de votre groupe Auto Scaling pour le Web et les serveurs d'applications. Pour plus d'informations, consultez le livre blanc [Présentation des options de déploiement sur AWS](https://docs.aws.amazon.com/whitepapers/latest/overview-deployment-options/bluegreen-deployments.html).
+ Utilisez [AWS Backup pour sauvegarder](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) votre PeopleSoft application sur AWS. AWS Backup est un service rentable, entièrement géré et basé sur des politiques qui simplifie la protection des données à grande échelle.

**Bonnes pratiques en matière de performances**
+ Mettez fin au protocole SSL au niveau de l'Application Load Balancer pour optimiser les performances de l' PeopleSoft environnement, sauf si votre entreprise a besoin d'un trafic chiffré dans l'ensemble de l'environnement.
+ Créez des [points de terminaison VPC d'interface pour les](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) services AWS tels qu'[Amazon Simple Notification Service (Amazon SNS) [CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)afin](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) que le trafic soit toujours interne. Cette solution est rentable et contribue à la sécurité de votre application.

**Bonnes pratiques en matière d'optimisation des coûts**
+ Marquez toutes les ressources utilisées par votre PeopleSoft environnement et activez les [balises de répartition des coûts](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). Ces balises vous aident à visualiser et à gérer les coûts de vos ressources.
+ Pour une application PeopleSoft de production, configurez des groupes Auto Scaling pour les serveurs Web et les serveurs d'applications. Cela permet de maintenir un nombre minimal de serveurs Web et d'applications pour prendre en charge votre application. Vous pouvez utiliser les [politiques de groupe Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) pour augmenter ou diminuer les serveurs selon les besoins.
+ Utilisez les [alarmes de facturation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html) pour recevoir des alertes lorsque les coûts dépassent le seuil budgétaire que vous spécifiez.

**Bonnes pratiques en matière de durabilité**
+ Utilisez l'[infrastructure en tant que code](https://docs.aws.amazon.com/whitepapers/latest/introduction-devops-aws/infrastructure-as-code.html) (IaC) pour gérer vos PeopleSoft environnements. Cela vous permet de créer des environnements cohérents et de garder le contrôle des modifications.

## Épopées
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-epics"></a>

### Migrez votre PeopleSoft base de données vers Amazon RDS
<a name="migrate-your-peoplesoft-database-to-amazon-rds"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un groupe de sous-réseaux de base de données. | Sur la [console Amazon RDS](https://console.aws.amazon.com/rds/), dans le volet de navigation, choisissez **Subnet groups**, puis créez un groupe de sous-réseaux de base de données Amazon RDS avec des sous-réseaux dans plusieurs zones de disponibilité. Cela est nécessaire pour que la base de données Amazon RDS s'exécute dans une configuration multi-AZ. | Administrateur du cloud | 
| Créez la base de données Amazon RDS. | Créez une base de données Amazon RDS dans une zone de disponibilité de la région AWS que vous avez sélectionnée pour l'environnement PeopleSoft HA. Lorsque vous créez la base de données Amazon RDS, assurez-vous de sélectionner l'option Multi-AZ (**Créer une instance de secours**) et le groupe de sous-réseaux de base de données que vous avez créé à l'étape précédente. Pour plus d'informations, consultez la [documentation Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html). | Administrateur cloud, administrateur de base de données Oracle | 
| Migrez votre PeopleSoft base de données vers Amazon RDS. | Migrez votre PeopleSoft base de données existante vers la base de données Amazon RDS à l'aide d'AWS Database Migration Service (AWS DMS). Pour plus d'informations, consultez la [documentation AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) et le billet de blog AWS intitulé [Migration de bases de données Oracle avec un temps d'arrêt quasi nul à l'aide d'AWS](https://aws.amazon.com/blogs/database/migrating-oracle-databases-with-near-zero-downtime-using-aws-dms/) DMS. | Administrateur cloud, PeopleSoft DBA | 

### Configuration de votre système de fichiers Amazon EFS
<a name="set-up-your-amazon-efs-file-system"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un système de fichiers. | Sur la [console Amazon EFS](https://console.aws.amazon.com/efs/), créez un système de fichiers et montez des cibles pour chaque zone de disponibilité. Pour obtenir des instructions, consultez la [documentation Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/creating-using-create-fs.html#creating-using-fs-part1-console). Lorsque le système de fichiers a été créé, notez son nom DNS. Vous utiliserez ces informations lors du montage du système de fichiers. | Administrateur du cloud | 

### Configurez votre PeopleSoft application et votre système de fichiers
<a name="set-up-your-peoplesoft-application-and-file-system"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Lancer une instance EC2. | Lancez une instance EC2 pour votre PeopleSoft application. Pour obtenir des instructions, consultez la [documentation Amazon EC2.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html#liw-quickly-launch-instance)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrateur du cloud, PeopleSoft administrateur | 
| Installez PeopleSoft sur l'instance. | Installez votre PeopleSoft application et PeopleTools sur l'instance EC2 que vous avez créée. Pour obtenir des instructions, consultez la [documentation Oracle](https://docs.oracle.com). | Administrateur du cloud, PeopleSoft administrateur | 
| Créez le serveur d'applications. | Créez le serveur d'applications pour le modèle d'AMI et assurez-vous qu'il se connecte correctement à la base de données Amazon RDS. | Administrateur du cloud, PeopleSoft administrateur | 
| Montage d’un système de fichiers Amazon EFS | Connectez-vous à l'instance EC2 en tant qu'utilisateur root et exécutez les commandes suivantes pour monter le système de fichiers Amazon EFS dans un dossier appelé `PSFTMNT` sur le serveur.<pre>sudo su –<br />mkdir /psftmnt<br />cat /etc/fstab</pre>Ajoutez la ligne suivante au `/etc/fstab` fichier. Utilisez le nom DNS que vous avez indiqué lors de la création du système de fichiers.<pre>fs-09e064308f1145388.efs.us-east-1.amazonaws.com:/ /psftmnt nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0<br />mount -a</pre> | Administrateur du cloud, PeopleSoft administrateur | 
| Vérifiez les autorisations. | Assurez-vous que le `PSFTMNT` dossier dispose des autorisations appropriées afin que l' PeopleSoft utilisateur puisse y accéder correctement. | Administrateur du cloud, PeopleSoft administrateur | 
| Créez des instances supplémentaires. | Répétez les étapes précédentes de cette épopée pour créer des instances de modèles pour le planificateur de processus, le serveur Web et le serveur Elasticsearch. Nommez ces instances `PRCS_TEMPLATE``WEB_TEMPLATE`, et`SRCH_TEMPLATE`. Pour le serveur Web, définissez `joltPooling=true`**** et`DynamicConfigReload=1`. | Administrateur du cloud, PeopleSoft administrateur | 

### Création de scripts pour configurer les serveurs
<a name="create-scripts-to-set-up-servers"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un script pour installer le serveur d'applications. | Dans l'`APP_TEMPLATE`instance Amazon EC2, en tant qu' PeopleSoft utilisateur, créez le script suivant. Nommez-le `appstart.sh` et placez-le dans le `PS_HOME` répertoire. Vous allez utiliser ce script pour ouvrir le serveur d'applications et enregistrer le nom du serveur sur le support Amazon EFS.<pre>#!/bin/ksh<br />. /usr/homes/hcmdemo/.profile.<br />psadmin -c configure -d HCMDEMO<br />psadmin -c parallelboot -d HCMDEMO<br />touch /psftmnt/`echo $HOSTNAME`</pre> | PeopleSoft administrateur | 
| Créez un script pour installer le serveur du planificateur de processus. | Dans l'`PRCS_TEMPLATE`instance Amazon EC2, en tant qu' PeopleSoft utilisateur, créez le script suivant. Nommez-le `prcsstart.sh` et placez-le dans le `PS_HOME` répertoire. Vous allez utiliser ce script pour ouvrir le serveur du planificateur de processus.<pre>#!/bin/ksh<br />. /usr/homes/hcmdemo/. profile<br />/* The following line ensures that the process scheduler always has a unique name during replacement or scaling activity. */ <br />sed -i "s/.*PrcsServerName.*/`hostname -I | awk -F. '{print "PrcsServerName=PSUNX"$3$4}'`/" $HOME/appserv/prcs/*/psprcs.cfg<br />psadmin -p configure -d HCMDEMO<br />psadmin -p start -d HCMDEMO</pre> | PeopleSoft administrateur | 
| Créez un script pour installer le serveur Elasticsearch. | Dans l'`SRCH_TEMPLATE`instance Amazon EC2, en tant qu'utilisateur d'Elasticsearch, créez le script suivant. Nommez-le `srchstart.sh` et placez-le dans le `HOME` répertoire.<pre>#!/bin/ksh<br />/* The following line ensures that the correct IP is indicated in the elasticsearch.yaml file. */<br />sed -i "s/.*network.host.*/`hostname  -I | awk '{print "host:"$0}'`/" $ES_HOME_DIR/config/elasticsearch.yaml<br />nohup $ES_HOME_DIR/bin/elasticsearch &</pre> | PeopleSoft administrateur | 
| Créez un script pour installer le serveur Web. | Dans l'`WEB_TEMPLATE`instance Amazon EC2, en tant qu'utilisateur du serveur Web, créez les scripts suivants dans le `HOME` répertoire.`renip.sh`: Ce script garantit que le serveur Web possède l'adresse IP correcte lorsqu'il est cloné à partir de l'AMI.<pre>#!/bin/ksh<br />hn=`hostname`<br />/* On the following line, change the IP with the hostname with the hostname of the web template. */<br />for text_file in `find  *  -type f -exec grep -l '<hostname-of-the-web-template>' {} \;`<br />do<br />sed -e 's/<hostname-of-the-web-template>/'$hn'/g' $text_file > temp<br />mv -f temp $text_file<br />done</pre>`psstrsetup.sh`: ce script garantit que le serveur Web utilise le bon serveur IPs d'applications actuellement en cours d'exécution. Il essaie de se connecter à chaque serveur d'applications sur le port jolt et l'ajoute au fichier de configuration.<pre>#!/bin/ksh<br />c2=""<br />for ctr in `ls -1 /psftmnt/*.internal`<br />do<br />c1=`echo $ctr | awk -F "/" '{print $3}'`<br />/* In the following lines, 9000 is the jolt port. Change it if necessary. */<br />if nc -z $c1 9000 2> /dev/null; then<br />if [[ $c2 = "" ]]; then<br />c2="psserver="`echo $c1`":9000"<br />else<br />c2=`echo $c2`","`echo $c1`":9000"<br />fi<br />fi<br />done</pre>`webstart.sh`: Ce script exécute les deux scripts précédents et démarre les serveurs Web.<pre>#!/bin/ksh<br />/* Change the path in the following if necessary. */<br />cd  /usr/homes/hcmdemo <br />./renip.sh<br />./psstrsetup.sh<br />webserv/peoplesoft/bin/startPIA.sh</pre> | PeopleSoft administrateur | 
| Ajoutez une entrée crontab. | **Dans l'`WEB_TEMPLATE`instance Amazon EC2, en tant qu'utilisateur du serveur Web, ajoutez la ligne suivante à crontab.** Modifiez l'heure et le chemin pour refléter les valeurs dont vous avez besoin. Cette entrée garantit que votre serveur Web dispose toujours des entrées de serveur d'applications correctes dans le `configuration.properties` fichier.<pre>* * * * * /usr/homes/hcmdemo/psstrsetup.sh</pre> | PeopleSoft administrateur | 

### Modèles de groupe Create AMIs et Auto Scaling
<a name="create-amis-and-auto-scaling-group-templates"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une AMI pour le modèle de serveur d'applications. | Sur la console Amazon EC2, créez une image AMI de l'instance Amazon `APP_TEMPLATE` EC2. Nommez l'AMI`PSAPPSRV-SCG-VER1`. Pour obtenir des instructions, consultez la [documentation Amazon EC2.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) | Administrateur du cloud, PeopleSoft administrateur | 
| Créez AMIs pour les autres serveurs. | Répétez l'étape précédente AMIs pour créer pour le planificateur de processus, le serveur Elasticsearch et le serveur Web. | Administrateur du cloud, PeopleSoft administrateur | 
| Créez un modèle de lancement pour le groupe Auto Scaling du serveur d'applications. | Créez un modèle de lancement pour le groupe Auto Scaling du serveur d'applications. Nommez le modèle `PSAPPSRV_TEMPLATE.` Dans le modèle, choisissez l'AMI que vous avez créée pour l'`APP_TEMPLATE`instance. Pour obtenir des instructions, consultez la [documentation Amazon EC2.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#create-launch-template-from-instance)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrateur du cloud, PeopleSoft administrateur | 
| Créez un modèle de lancement pour le groupe Auto Scaling du serveur de planificateur de processus. | Répétez l'étape précédente pour créer un modèle de lancement pour le groupe Auto Scaling du serveur de planificateur de processus. Nommez le modèle`PSPRCS_TEMPLATE`. Dans le modèle, choisissez l'AMI que vous avez créée pour le planificateur de processus.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrateur du cloud, PeopleSoft administrateur | 
| Créez un modèle de lancement pour le groupe Auto Scaling du serveur Elasticsearch. | Répétez les étapes précédentes pour créer un modèle de lancement pour le groupe Auto Scaling du serveur Elasticsearch. Nommez le modèle`SRCH_TEMPLATE`. Dans le modèle, choisissez l'AMI que vous avez créée pour le serveur de recherche.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrateur du cloud, PeopleSoft administrateur | 
| Créez un modèle de lancement pour le groupe Auto Scaling du serveur Web. | Répétez les étapes précédentes pour créer un modèle de lancement pour le groupe Auto Scaling du serveur Web. Nommez le modèle`WEB_TEMPLATE`. Dans le modèle, choisissez l'AMI que vous avez créée pour le serveur Web.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrateur du cloud, PeopleSoft administrateur | 

### Création de groupes Auto Scaling
<a name="create-auto-scaling-groups"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un groupe Auto Scaling pour le serveur d'applications. | Sur la console Amazon EC2, créez un groupe Auto Scaling appelé `PSAPPSRV_ASG` pour le serveur d'applications en utilisant le `PSAPPSRV_TEMPLATE` modèle. Pour obtenir des instructions, consultez la [documentation Amazon EC2.](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrateur du cloud, PeopleSoft administrateur | 
| Créez des groupes Auto Scaling pour les autres serveurs. | Répétez l'étape précédente pour créer des groupes Auto Scaling pour le planificateur de processus, le serveur Elasticsearch et le serveur Web. | Administrateur du cloud, PeopleSoft administrateur | 

### Création et configuration de groupes cibles
<a name="create-and-configure-target-groups"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un groupe cible pour le serveur Web. | Sur la console Amazon EC2, créez un groupe cible pour le serveur Web. Pour obtenir des instructions, consultez la [documentation d'Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-target-group.html). Définissez le port sur le port sur lequel le serveur Web écoute. | Administrateur du cloud | 
| Configurez les contrôles de santé. | Vérifiez que les valeurs des bilans de santé correspondent aux exigences de votre entreprise. Pour plus d’informations, consultez la [documentation relative à Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html). | Administrateur du cloud | 
| Créez un groupe cible pour le serveur Elasticsearch. | Répétez les étapes précédentes pour créer un groupe cible appelé `PSFTSRCH` pour le serveur Elasticsearch et définissez le port Elasticsearch approprié. | Administrateur du cloud | 
| Ajoutez des groupes cibles aux groupes Auto Scaling. | Ouvrez le groupe Auto Scaling du serveur Web appelé `PSPIA_ASG` que vous avez créé précédemment. Dans l'onglet **Load balancing**, choisissez **Edit**, puis ajoutez le groupe `PSFTWEB` cible au groupe Auto Scaling.Répétez cette étape pour que le groupe Elasticsearch Auto Scaling ajoute le groupe `PSSRCH_ASG` cible `PSFTSRCH` que vous avez créé précédemment. | Administrateur du cloud | 
| Définissez le caractère collant de la session. | Dans le groupe cible`PSFTWEB`, choisissez l'onglet **Attributs**, choisissez **Modifier** et définissez le caractère permanent de la session. Pour le type d'adhérence, choisissez le **cookie généré par l'équilibreur de charge** et définissez la durée sur 1. Pour plus d’informations, consultez la [documentation relative à Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html).Répétez cette étape pour le groupe cible`PSFTSRCH`. | Administrateur du cloud | 

### Création et configuration d'équilibreurs de charge d'applications
<a name="create-and-configure-application-load-balancers"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un équilibreur de charge pour les serveurs Web. | Créez un Application Load Balancer nommé `PSFTLB` pour équilibrer la charge du trafic vers les serveurs Web. Pour obtenir des instructions, consultez la [documentation d'Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html#configure-load-balancer).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrateur du cloud | 
| Créez un équilibreur de charge pour les serveurs Elasticsearch. | Créez un Application Load Balancer nommé `PSFTSCH` pour équilibrer la charge du trafic vers les serveurs Elasticsearch.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-a-highly-available-peoplesoft-architecture-on-aws.html) | Administrateur du cloud | 
| Configurez la Route 53. | Sur la [console Amazon Route 53](https://console.aws.amazon.com/route53/), créez un enregistrement dans la zone hébergée qui servira l' PeopleSoft application. Pour obtenir des instructions, consultez la [documentation Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html). Cela garantit que tout le trafic passe par l'équilibreur `PSFTLB` de charge. | Administrateur du cloud | 

## Ressources connexes
<a name="set-up-a-highly-available-peoplesoft-architecture-on-aws-resources"></a>
+ [ PeopleSoft Site Web d'Oracle](https://www.oracle.com/applications/peoplesoft/)
+ [Documentation AWS](https://docs.aws.amazon.com/)

# Configurer la reprise après sinistre pour Oracle JD Edwards EnterpriseOne avec AWS Elastic Disaster Recovery
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery"></a>

*Thanigaivel Thirumalai, Amazon Web Services*

## Résumé
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-summary"></a>

Les catastrophes provoquées par des catastrophes naturelles, des défaillances d'applications ou une interruption des services nuisent aux revenus et entraînent des interruptions de service pour les applications d'entreprise. Afin de réduire les répercussions de tels événements, la planification de la reprise après sinistre (DR) est essentielle pour les entreprises qui adoptent les systèmes de planification des ressources EnterpriseOne d'entreprise (ERP) de JD Edwards et d'autres logiciels critiques et critiques. 

Ce modèle explique comment les entreprises peuvent utiliser AWS Elastic Disaster Recovery comme option de reprise après sinistre pour leurs EnterpriseOne applications JD Edwards. Il décrit également les étapes à suivre pour utiliser le basculement et le retour en arrière d'Elastic Disaster Recovery afin d'élaborer une stratégie de reprise après sinistre interrégionale pour les bases de données hébergées sur une instance Amazon Elastic Compute Cloud (Amazon EC2) dans le cloud AWS.

**Note**  
Ce modèle nécessite que les régions principale et secondaire pour la mise en œuvre de la reprise après sinistre interrégionale soient hébergées sur AWS.

[Oracle JD Edwards EnterpriseOne](https://www.oracle.com/applications/jd-edwards-enterpriseone/) est une solution logicielle ERP intégrée pour les moyennes et grandes entreprises dans un large éventail de secteurs.

AWS Elastic Disaster Recovery minimise les temps d'arrêt et les pertes de données grâce à une restauration rapide et fiable des applications sur site et dans le cloud en utilisant un stockage abordable, un calcul et point-in-time une restauration minimaux.

AWS fournit [quatre modèles d'architecture de base pour la reprise après sinistre](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html). Ce document se concentre sur l'installation, la configuration et l'optimisation à l'aide de la [stratégie d'éclairage pilote](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html). Cette stratégie vous permet de créer un environnement de reprise après sinistre à moindre coût dans lequel vous configurez initialement un serveur de réplication pour répliquer les données de la base de données source, et vous approvisionnez le serveur de base de données proprement dit uniquement lorsque vous lancez une analyse de reprise après sinistre. Cette stratégie élimine les dépenses liées à la maintenance d'un serveur de base de données dans la région DR. Au lieu de cela, vous payez pour une instance EC2 plus petite qui sert de serveur de réplication.

## Conditions préalables et limitations
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif.
+ Une EnterpriseOne application JD Edwards exécutée sur Oracle Database ou Microsoft SQL Server avec une base de données prise en charge en cours d'exécution sur une instance EC2 gérée. Cette application doit inclure tous les composants de EnterpriseOne base de JD Edwards (serveur d'entreprise, serveur HTML et serveur de base de données) installés dans une région AWS.
+ Rôle AWS Identity and Access Management (IAM) pour configurer le service Elastic Disaster Recovery.
+ Le réseau utilisé pour exécuter Elastic Disaster Recovery est configuré conformément aux [paramètres de connectivité](https://docs.aws.amazon.com/drs/latest/userguide/Network-Requirements.html) requis.

**Limites**
+ Vous pouvez utiliser ce modèle pour répliquer tous les niveaux, sauf si la base de données est hébergée sur Amazon Relational Database Service (Amazon RDS), auquel cas nous vous recommandons d'utiliser [la fonctionnalité de copie interrégionale](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html) d'Amazon RDS.
+ Elastic Disaster Recovery n'est pas compatible avec CloudEndure Disaster Recovery, mais vous pouvez effectuer une mise à niveau depuis CloudEndure Disaster Recovery. Pour plus d'informations, consultez la [FAQ](https://docs.aws.amazon.com/drs/latest/userguide/cedr-to-drs.html) de la documentation d'Elastic Disaster Recovery.
+ Amazon Elastic Block Store (Amazon EBS) limite la fréquence à laquelle vous pouvez prendre des instantanés. Vous pouvez répliquer un maximum de 300 serveurs dans un seul compte AWS à l'aide d'Elastic Disaster Recovery. Pour répliquer davantage de serveurs, vous pouvez utiliser plusieurs comptes AWS ou plusieurs régions AWS cibles. (Vous devrez configurer Elastic Disaster Recovery séparément pour chaque compte et région.) Pour plus d'informations, consultez les [meilleures pratiques](https://docs.aws.amazon.com/drs/latest/userguide/best_practices_drs.html) dans la documentation d'Elastic Disaster Recovery.
+ Les charges de travail sources (l' EnterpriseOne application et la base de données JD Edwards) doivent être hébergées sur des instances EC2. Ce modèle ne prend pas en charge les charges de travail sur site ou dans d'autres environnements cloud.
+ Ce modèle se concentre sur les EnterpriseOne composants de JD Edwards. Un plan complet de reprise après sinistre et de continuité des activités (BCP) doit inclure d'autres services essentiels, notamment :
  + Mise en réseau (cloud privé virtuel, sous-réseaux et groupes de sécurité)
  + Active Directory
  + Amazon WorkSpaces
  + Elastic Load Balancing
  + Un service de base de données géré tel qu'Amazon Relational Database Service (Amazon RDS)

Pour plus d'informations sur les prérequis, les configurations et les limites, consultez la [documentation d'Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/what-is-drs.html).

**Versions du produit**
+ Oracle JD Edwards EnterpriseOne (versions prises en charge par Oracle et SQL Server selon les exigences techniques minimales d'Oracle)

## Architecture
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-architecture"></a>

**Pile technologique cible**
+ Une seule région et un seul cloud privé virtuel (VPC) pour la production et la non-production, et une deuxième région pour la reprise après sinistre
+ Zones de disponibilité uniques pour garantir une faible latence entre les serveurs
+ Application Load Balancer qui distribue le trafic réseau afin d'améliorer l'évolutivité et la disponibilité de vos applications sur plusieurs zones de disponibilité
+ Amazon Route 53 fournira la configuration du système de noms de domaine (DNS)
+ Amazon WorkSpaces va offrir aux utilisateurs une expérience de bureau dans le cloud
+ Amazon Simple Storage Service (Amazon S3) pour le stockage de sauvegardes, de fichiers et d'objets
+ Amazon CloudWatch pour la journalisation, la surveillance et les alarmes des applications
+ Amazon Elastic Disaster Recovery pour la reprise après sinistre

**Architecture cible**

Le schéma suivant montre l'architecture de reprise après sinistre interrégionale de JD Edwards à l' EnterpriseOne aide d'Elastic Disaster Recovery.

![\[Architecture pour la reprise après sinistre EnterpriseOne interrégionale de JD Edwards sur AWS\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/9b0de5f0-f211-4086-a044-321d081604f9/images/978b7219-e54e-4e31-b3ff-4885784e2971.png)


**Procédure**

Voici un aperçu de haut niveau du processus. Pour plus de détails, consultez la section *Epics*.
+ La réplication d'Elastic Disaster Recovery commence par une synchronisation initiale. Lors de la synchronisation initiale, l'agent de réplication AWS réplique toutes les données des disques sources vers la ressource appropriée dans le sous-réseau de la zone de transit.
+ La réplication continue indéfiniment une fois la synchronisation initiale terminée.
+ Vous passez en revue les paramètres de lancement, qui incluent des configurations spécifiques au service et un modèle de lancement Amazon EC2, une fois l'agent installé et la réplication démarrée. Lorsque le serveur source est indiqué comme étant prêt pour la restauration, vous pouvez démarrer des instances.
+ Lorsqu'Elastic Disaster Recovery émet une série d'appels d'API pour démarrer l'opération de lancement, l'instance de restauration est immédiatement lancée sur AWS conformément à vos paramètres de lancement. Le service lance automatiquement un serveur de conversion au démarrage.
+ La nouvelle instance est lancée sur AWS une fois la conversion terminée et est prête à être utilisée. L'état du serveur source au moment du lancement est représenté par les volumes associés à l'instance lancée. Le processus de conversion implique des modifications des pilotes, du réseau et de la licence du système d'exploitation afin de garantir le démarrage natif de l'instance sur AWS.
+ Après le lancement, les volumes nouvellement créés ne sont plus synchronisés avec les serveurs sources. L'agent de réplication AWS continue de répliquer régulièrement les modifications apportées à vos serveurs sources vers les volumes de la zone de transit, mais les instances lancées ne reflètent pas ces modifications.
+ Lorsque vous démarrez une nouvelle instance de forage ou de restauration, les données sont toujours reflétées dans l'état le plus récent qui a été répliqué depuis le serveur source vers le sous-réseau de la zone de transit.
+ Lorsque le serveur source est marqué comme étant prêt pour la restauration, vous pouvez démarrer des instances.

**Note**  
Le processus fonctionne dans les deux sens : pour le basculement d'une région AWS principale vers une région DR, et pour revenir au site principal, une fois celui-ci restauré. Vous pouvez vous préparer au retour en arrière en inversant le sens de la réplication des données de la machine cible vers la machine source de manière entièrement orchestrée.

Les avantages de ce processus décrit dans ce modèle incluent :
+ Flexibilité : les serveurs de réplication sont évolutifs et évolutifs en fonction du jeu de données et du temps de réplication, afin que vous puissiez effectuer des tests de reprise après sinistre sans perturber les charges de travail source ou la réplication.
+ Fiabilité : la réplication est robuste, sans interruption de service et continue.
+ Automatisation : cette solution fournit un processus unifié et automatisé pour les tests, la restauration et le retour en panne.
+ Optimisation des coûts : vous pouvez uniquement répliquer les volumes nécessaires et les payer, et payer les ressources de calcul sur le site de reprise après sinistre uniquement lorsque ces ressources sont activées. Vous pouvez utiliser une instance de réplication optimisée en termes de coûts (nous vous recommandons d'utiliser un type d'instance optimisé pour le calcul) pour plusieurs sources ou une source unique avec un volume EBS important.

**Automatisation et évolutivité**

Lorsque vous effectuez une reprise après sinistre à grande échelle, les EnterpriseOne serveurs JD Edwards dépendent des autres serveurs de l'environnement. Par exemple :
+ Les serveurs EnterpriseOne d'applications JD Edwards qui se connectent à une base de données EnterpriseOne prise en charge par JD Edwards au démarrage dépendent de cette base de données.
+  EnterpriseOne Les serveurs JD Edwards qui nécessitent une authentification et doivent se connecter à un contrôleur de domaine au démarrage pour démarrer les services dépendent du contrôleur de domaine.

C'est pourquoi nous vous recommandons d'automatiser les tâches de basculement. Par exemple, vous pouvez utiliser AWS Lambda ou AWS Step Functions pour automatiser les scripts de EnterpriseOne démarrage de JD Edwards et les modifications apportées à l'équilibreur de charge afin d'automatiser le end-to-end processus de basculement. Pour plus d'informations, consultez le billet de blog [Création d'un plan de reprise après sinistre évolutif avec AWS Elastic Disaster Recovery](https://aws.amazon.com/blogs/storage/creating-a-scalable-disaster-recovery-plan-with-aws-elastic-disaster-recovery/).

## Outils
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-tools"></a>

**Services AWS**
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) fournit des volumes de stockage de niveau bloc à utiliser avec les instances EC2.
+ [Amazon Elastic Compute Cloud (Amazon EC2](https://aws.amazon.com/products/compute/)) fournit une capacité de calcul évolutive dans le cloud AWS. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
+ [AWS Elastic Disaster Recovery](https://aws.amazon.com/disaster-recovery/) minimise les temps d'arrêt et les pertes de données grâce à une restauration rapide et fiable des applications sur site et dans le cloud à l'aide d'un stockage abordable, d'un calcul et point-in-time d'une restauration minimaux.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://aws.amazon.com/vpc/) vous donne le contrôle total de votre environnement réseau virtuel, y compris le placement des ressources, la connectivité et la sécurité.

## Bonnes pratiques
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-best-practices"></a>

**Bonnes pratiques générales**
+ Préparez un plan écrit indiquant ce qu'il faut faire en cas de véritable rétablissement.
+ Après avoir correctement configuré Elastic Disaster Recovery, créez un CloudFormation modèle AWS capable de créer la configuration à la demande, en cas de besoin. Déterminez l'ordre dans lequel les serveurs et les applications doivent être lancés, et enregistrez-le dans le plan de restauration.
+ Effectuez un exercice régulier (les tarifs Amazon EC2 standard s'appliquent).
+ Surveillez l'état de la réplication en cours à l'aide de la console Elastic Disaster Recovery ou par programmation.
+ Protégez les point-in-time instantanés et confirmez avant de mettre fin aux instances.
+ Créez un rôle IAM pour l'installation d'AWS Replication Agent.
+ Activez la protection contre la résiliation pour les instances de restauration dans un scénario de reprise après sinistre réel.
+ N'utilisez pas l'action **Déconnecter d'AWS** dans la console Elastic Disaster Recovery pour les serveurs pour lesquels vous avez lancé des instances de restauration, même dans le cas d'un événement de restauration réel. L'exécution d'une déconnexion met fin à toutes les ressources de réplication associées à ces serveurs sources, y compris vos points de restauration point-in-time (PIT).
+ Modifiez la politique PIT pour modifier le nombre de jours de conservation des instantanés.
+ Modifiez le modèle de lancement dans les paramètres de lancement d'Elastic Disaster Recovery afin de définir le sous-réseau, le groupe de sécurité et le type d'instance appropriés pour votre serveur cible.
+ Automatisez le processus de end-to-end basculement en utilisant Lambda ou Step Functions pour automatiser les scripts de démarrage de JD EnterpriseOne Edwards et les modifications de l'équilibreur de charge.

** EnterpriseOne Optimisation et considérations de JD Edwards**
+ Accédez à **PrintQueue**la base de données.
+ Accédez à **MediaObjects**la base de données.
+ Excluez les journaux et le dossier temporaire des serveurs de traitement par lots et des serveurs logiques.
+ Excluez le dossier temporaire d'Oracle WebLogic.
+ Créez des scripts pour le démarrage après le basculement.
+ Excluez le tempdb pour SQL Server.
+ Excluez le fichier temporaire pour Oracle.

## Épopées
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-epics"></a>

### Exécution des tâches initiales et de la configuration
<a name="perform-initial-tasks-and-configuration"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez le réseau de réplication.  | Implémentez votre EnterpriseOne système JD Edwards dans la région AWS principale et identifiez la région AWS pour DR. Suivez les étapes décrites dans la section [Exigences relatives au réseau de réplication](https://docs.aws.amazon.com/drs/latest/userguide/preparing-environments.html) de la documentation Elastic Disaster Recovery pour planifier et configurer votre réseau de réplication et de reprise après sinistre. | Administrateur AWS | 
| Déterminez le RPO et le RTO. | Identifiez l'objectif de temps de restauration (RTO) et l'objectif de point de restauration (RPO) pour vos serveurs d'applications et votre base de données. | Architecte cloud, architecte DR | 
| Activez la réplication pour Amazon EFS. | Le cas échéant, activez la réplication depuis la région principale AWS vers la région DR pour les systèmes de fichiers partagés tels qu'Amazon Elastic File System (Amazon EFS) à l'aide d'AWS DataSync, de **rsync** ou d'un autre outil approprié. | Administrateur du cloud | 
| Gérez le DNS en cas de DR. | Identifiez le processus de mise à jour du système de noms de domaine (DNS) lors de l'exercice DR ou de la DR proprement dite | Administrateur du cloud | 
| Créez un rôle IAM pour la configuration. | Suivez les instructions de la section [Initialisation et autorisations d'Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/getting-started-initializing.html) de la documentation d'Elastic Disaster Recovery pour créer un rôle IAM afin d'initialiser et de gérer le service AWS. | Administrateur du cloud | 
| Configurez le peering VPC. | Assurez-vous que la source et la cible VPCs sont homologues et accessibles l'une à l'autre. Pour les instructions de configuration, consultez la [documentation Amazon VPC.](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) | Administrateur AWS | 

### Configuration des paramètres de réplication d'Elastic Disaster Recovery
<a name="configure-elastic-disaster-recovery-replication-settings"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Initialisez Elastic Disaster Recovery. | Ouvrez la [console Elastic Disaster Recovery](https://console.aws.amazon.com/drs/home), choisissez la région AWS cible (dans laquelle vous allez répliquer les données et lancer des instances de restauration), puis choisissez **Définir les paramètres de réplication par défaut**. | Administrateur AWS | 
| Configurez des serveurs de réplication. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) | Administrateur AWS | 
| Configurez les volumes et les groupes de sécurité. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) | Administrateur AWS | 
| Configurez des paramètres supplémentaires. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) | Administrateur AWS | 

### Installation de l'agent de réplication AWS
<a name="install-the-aws-replication-agent"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un rôle IAM. | Créez un rôle IAM contenant la `AWSElasticDisasterRecoveryAgentInstallationPolicy` politique. Dans la section **Sélectionner le type d'accès AWS**, activez l'accès programmatique. Notez l'ID de la clé d'accès et la clé d'accès secrète. Vous aurez besoin de ces informations lors de l'installation de l'agent de réplication AWS. | Administrateur AWS | 
| Vérifiez les exigences. | Vérifiez et remplissez les [conditions requises](https://docs.aws.amazon.com/drs/latest/userguide/installation-requiremets.html) dans la documentation d'Elastic Disaster Recovery pour installer l'agent de réplication AWS. | Administrateur AWS | 
| Installez l'agent de réplication AWS. | Suivez les [instructions d'installation](https://docs.aws.amazon.com/drs/latest/userguide/agent-installation-instructions.html) de votre système d'exploitation et installez l'agent de réplication AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Répétez ces étapes pour le serveur restant. | Administrateur AWS | 
| Surveillez la réplication. | Retournez dans le volet des **serveurs Elastic Disaster Recovery Source** pour surveiller l'état de la réplication. La synchronisation initiale peut prendre un certain temps en fonction de la taille du transfert de données.Lorsque le serveur source est entièrement synchronisé, l'état du serveur passe à **Prêt**. Cela signifie qu'un serveur de réplication a été créé dans la zone intermédiaire et que les volumes EBS ont été répliqués du serveur source vers la zone intermédiaire. | Administrateur AWS | 

### Configuration des paramètres de lancement
<a name="configure-launch-settings"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Modifiez les paramètres de lancement. | Pour mettre à jour les paramètres de lancement des instances de forage et de restauration, sur la [console Elastic Disaster Recovery](https://console.aws.amazon.com/drs/home), sélectionnez le serveur source, puis choisissez **Actions**, **Modifier les paramètres de lancement**. Vous pouvez également choisir vos machines sources de réplication sur la page **Serveurs source**, puis choisir l'onglet **Paramètres de lancement**. Cet onglet comporte deux sections : **Paramètres de lancement généraux** et **modèle de lancement EC2**. | Administrateur AWS | 
| Configurez les paramètres généraux de lancement. | Révisez les paramètres de lancement généraux en fonction de vos besoins.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Pour plus d'informations, consultez la section [Paramètres de lancement généraux](https://docs.aws.amazon.com/drs/latest/userguide/launch-general-settings.html) dans la documentation d'Elastic Disaster Recovery. | Administrateur AWS | 
| Configurez le modèle de lancement Amazon EC2. | Elastic Disaster Recovery utilise des modèles de lancement Amazon EC2 pour lancer des instances de forage et de restauration pour chaque serveur source. Le modèle de lancement est créé automatiquement pour chaque serveur source que vous ajoutez à Elastic Disaster Recovery après avoir installé l'agent de réplication AWS.Vous devez définir le modèle de lancement Amazon EC2 comme modèle de lancement par défaut si vous souhaitez l'utiliser avec Elastic Disaster Recovery.Pour plus d'informations, consultez le [modèle de lancement EC2](https://docs.aws.amazon.com/drs/latest/userguide/ec2-launch.html) dans la documentation d'Elastic Disaster Recovery. | Administrateur AWS | 

### Lancer le forage DR et le basculement
<a name="initiate-dr-drill-and-failover"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Lancer un exercice | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Pour plus d'informations, consultez la section [Préparation au basculement](https://docs.aws.amazon.com/drs/latest/userguide/failback-preparing.html) dans la documentation d'Elastic Disaster Recovery. | Administrateur AWS | 
| Validez l'exercice. | À l'étape précédente, vous avez lancé de nouvelles instances cibles dans la région DR. Les instances cibles sont des répliques des serveurs sources basées sur le snapshot pris lorsque vous avez lancé le lancement.Dans cette procédure, vous vous connectez à vos machines cibles Amazon EC2 pour vérifier qu'elles fonctionnent comme prévu.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html) |  | 
| Lancez un basculement. | Un basculement est la redirection du trafic d'un système principal vers un système secondaire. Elastic Disaster Recovery vous aide à effectuer un basculement en lançant des instances de restauration sur AWS. Lorsque les instances de restauration ont été lancées, vous redirigez le trafic de vos systèmes principaux vers ces instances.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Pour plus d'informations, consultez la section [Réalisation d'un basculement](https://docs.aws.amazon.com/drs/latest/userguide/failback-preparing-failover.html) dans la documentation d'Elastic Disaster Recovery. | Administrateur AWS | 
| Lancez un retour en arrière. | Le processus de lancement d'un retour de secours est similaire au processus de lancement d'un basculement.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Pour plus d'informations, consultez la section [Réalisation d'un retour arrière](https://docs.aws.amazon.com/drs/latest/userguide/failback-performing-main.html) dans la documentation d'Elastic Disaster Recovery. | Administrateur AWS | 
| Démarrez les EnterpriseOne composants JD Edwards. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.html)Vous devrez intégrer les modifications dans Route 53 et Application Load Balancer pour que le EnterpriseOne lien JD Edwards fonctionne.Vous pouvez automatiser ces étapes à l'aide de Lambda, Step Functions et Systems Manager (Run Command).Elastic Disaster Recovery effectue une réplication au niveau des blocs des volumes EBS de l'instance EC2 source qui hébergent le système d'exploitation et les systèmes de fichiers. Les systèmes de fichiers partagés créés à l'aide d'Amazon EFS ne font pas partie de cette réplication. Vous pouvez répliquer des systèmes de fichiers partagés dans la région DR à l'aide d'AWS DataSync, comme indiqué dans le premier épisode, puis monter ces systèmes de fichiers répliqués dans le système DR. | J.D. Edwards EnterpriseOne CNC | 

## Résolution des problèmes
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| L'état de réplication des données du serveur source est **bloqué** et la réplication est retardée. Si vous vérifiez les détails, l'état de réplication des données indique que **l'agent n'a pas été détecté**. | Vérifiez que le serveur source bloqué est en cours d'exécution.En cas de panne du serveur source, le serveur de réplication est automatiquement arrêté.Pour plus d'informations sur les problèmes de retard, consultez la section [Problèmes de retard de réplication](https://docs.aws.amazon.com/drs/latest/userguide/Other-Troubleshooting-Topics.html#Replication-Lag-Issues) dans la documentation d'Elastic Disaster Recovery. | 
| L'installation de l'agent de réplication AWS dans l'instance source EC2 échoue dans RHEL 8.2 après avoir scanné les disques. `aws_replication_agent_installer.log`révèle que les en-têtes du noyau sont manquants. | Avant d'installer l'agent de réplication AWS sur RHEL 8, CentOS 8 ou Oracle Linux 8, exécutez :<pre>sudo yum install elfutils-libelf-devel</pre>Pour plus d'informations, consultez les [exigences d'installation de Linux](https://docs.aws.amazon.com/mgn/latest/ug/installation-requirements.html#linux-requirements) dans la documentation d'Elastic Disaster Recovery. | 
| Sur la console Elastic Disaster Recovery, le serveur source indique que le serveur source **est prêt** avec un décalage et que l'état de réplication des données **est bloqué**.En fonction de la durée d'indisponibilité de l'agent de réplication AWS, l'état peut indiquer un retard important, mais le problème reste le même. | Utilisez une commande du système d'exploitation pour confirmer que l'agent de réplication AWS est en cours d'exécution dans l'instance EC2 source ou pour confirmer que l'instance est en cours d'exécution.Une fois les problèmes corrigés, Elastic Disaster Recovery reprendra l'analyse. Attendez que toutes les données soient synchronisées et que l'état de réplication soit **sain** avant de commencer un exercice de reprise après sinistre. | 
| Réplication initiale avec un décalage élevé. Sur la console Elastic Disaster Recovery, vous pouvez constater que l'état de synchronisation initial est extrêmement lent pour un serveur source. | Vérifiez les problèmes de retard de réplication documentés dans la section [Problèmes de retard de réplication](https://docs.aws.amazon.com/drs/latest/userguide/Other-Troubleshooting-Topics.html#Replication-Lag-Issues) de la documentation d'Elastic Disaster Recovery.Le serveur de réplication peut être incapable de gérer la charge en raison d'opérations de calcul intrinsèques. Dans ce cas, essayez de mettre à niveau le type d'instance après avoir consulté l'[équipe du Support technique AWS](https://support.console.aws.amazon.com/support/). | 

## Ressources connexes
<a name="set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery-resources"></a>
+ [Guide de l'utilisateur d'AWS Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/what-is-drs.html)
+ [Création d'un plan de reprise après sinistre évolutif avec AWS Elastic Disaster Recovery](https://aws.amazon.com/blogs/storage/creating-a-scalable-disaster-recovery-plan-with-aws-elastic-disaster-recovery/) (article de blog AWS)
+ [AWS Elastic Disaster Recovery : introduction technique](https://explore.skillbuilder.aws/learn/course/internal/view/elearning/11123/aws-elastic-disaster-recovery-a-technical-introduction) (cours AWS Skill Builder ; connexion requise)
+ [Guide de démarrage rapide d'AWS Elastic Disaster Recovery](https://docs.aws.amazon.com/drs/latest/userguide/quick-start-guide-gs.html)

# Configurer la détection des CloudFormation dérives dans une organisation multirégionale et multi-comptes
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization"></a>

*Ram Kandaswamy, Amazon Web Services*

## Résumé
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-summary"></a>

Les utilisateurs d'Amazon Web Services (AWS) recherchent souvent un moyen efficace de détecter les incohérences dans la configuration des ressources, notamment la dérive des AWS CloudFormation piles, et de les corriger dès que possible. C'est particulièrement le cas lorsqu'il AWS Control Tower est utilisé.

Ce modèle fournit une solution prescriptive qui résout efficacement le problème en utilisant des modifications de configuration des ressources consolidées et en agissant sur ces modifications pour générer des résultats. La solution est conçue pour les scénarios dans lesquels plusieurs CloudFormation piles sont créées dans plusieurs comptes, ou une combinaison des deux. Région AWS Les objectifs de la solution sont les suivants :
+ Simplifier le processus de détection de la dérive
+ Configurer les notifications et les alertes
+ Configurer des rapports consolidés

## Conditions préalables et limitations
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-prereqs"></a>

**Conditions préalables**
+ AWS Config activé dans toutes les régions et tous les comptes qui doivent être surveillés

**Limites**
+ Le rapport généré prend uniquement en charge les valeurs séparées par des virgules (CSV) et les formats de sortie JSON.

## Architecture
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-architecture"></a>

Le schéma suivant montre la AWS Organizations configuration avec plusieurs comptes. AWS Config les règles communiquent entre les comptes.  

![\[Processus en cinq étapes pour surveiller les piles dans deux comptes AWS Organizations.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/735d0987-b953-47f8-a9bc-b02a88957ee5/images/340cee9a-5a4e-49ea-bd73-d37dcea5e098.png)


 Le flux de travail comprend les étapes suivantes :

1. La AWS Config règle détecte la dérive.

1. Les résultats de détection de dérive trouvés dans d'autres comptes sont envoyés au compte de gestion.

1. La CloudWatch règle Amazon appelle une AWS Lambda fonction.

1. La fonction Lambda interroge la AWS Config règle pour obtenir des résultats agrégés.

1. La fonction Lambda informe Amazon Simple Notification Service (Amazon SNS), qui envoie une notification par e-mail concernant la dérive.

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

La solution présentée ici peut être adaptée à la fois à des régions et à des comptes supplémentaires.

## Outils
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-tools"></a>

**Services AWS**
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)fournit une vue détaillée de la configuration des AWS ressources de votre Compte AWS. Elle indique comment les ressources sont liées entre elles et comment elles ont été configurées dans le passé, pour que vous puissiez observer comment les configurations et les relations changent au fil du temps.
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) vous CloudWatch aide à surveiller les indicateurs de vos AWS ressources et des applications que vous utilisez AWS en temps réel.
+ [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.
+ [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.

## Épopées
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-epics"></a>

### Détection automatique de la dérive pour CloudFormation
<a name="automate-drift-detection-for-cfn"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'agrégateur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.html) | Architecte du cloud | 
| Créez une règle AWS gérée. | Ajoutez la règle `cloudformation-stack-drift-detection-check` AWS**** gérée. La règle a besoin d'une valeur de paramètre :`cloudformationArn`. Entrez le rôle IAM Amazon Resource Name (ARN) autorisé à détecter la dérive de pile. Le rôle doit avoir une politique de confiance qui lui AWS Config permette d'assumer le rôle. | Architecte du cloud | 
| Créez la section de requête avancée de l'agrégateur. | Pour récupérer des piles dérivées à partir de plusieurs sources, créez la requête suivante :<pre>SELECT resourceId, configuration.driftInformation.stackDriftStatus WHERE resourceType = 'AWS::CloudFormation::Stack'  AND configuration.driftInformation.stackDriftStatus IN ('DRIFTED')</pre> | Architecte cloud, développeur | 
| Automatisez l'exécution de la requête et publiez. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.html) | Architecte cloud, développeur | 
| Créez une CloudWatch règle. | Créez une CloudWatch règle basée sur un calendrier pour appeler la fonction Lambda, qui est chargée des alertes. | Architecte du cloud | 

## Ressources connexes
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-resources"></a>

**Ressources**
+ [Qu'est-ce que c'est AWS Config ?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+ [Agrégation de données multicomptes et multirégions](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html)
+ [Détection des modifications de configuration non gérées apportées aux piles et aux ressources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html)
+ [IAM : Transmettre un rôle IAM à une personne spécifique Service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_iam-passrole-service.html)
+ [Qu'est-ce qu'Amazon SNS ?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)

## Informations supplémentaires
<a name="set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization-additional"></a>

**Considérations**

Nous recommandons d'utiliser la solution présentée dans ce modèle plutôt que d'utiliser des solutions personnalisées qui impliquent des appels d'API à des intervalles spécifiques pour initier la détection de dérive sur chaque CloudFormation pile ou ensemble de piles. Les solutions personnalisées qui utilisent des appels d'API à des intervalles spécifiques peuvent entraîner un grand nombre d'appels d'API et affecter les performances. En raison du nombre d'appels d'API, une régulation peut se produire. Un autre problème potentiel est le retard de détection si les modifications des ressources sont identifiées uniquement sur la base du calendrier.

Comme les ensembles de piles sont constitués de piles, vous pouvez utiliser cette solution. Les détails de l'instance Stack sont également disponibles dans le cadre de la solution.

## Pièces jointes
<a name="attachments-735d0987-b953-47f8-a9bc-b02a88957ee5"></a>

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/735d0987-b953-47f8-a9bc-b02a88957ee5/attachments/attachment.zip)

# Importation réussie d'un compartiment S3 en tant que CloudFormation stack AWS
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack"></a>

*Ram Kandaswamy, Amazon Web Services*

## Résumé
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-summary"></a>

Si vous utilisez des ressources Amazon Web Services (AWS), telles que les compartiments Amazon Simple Storage Service (Amazon S3), et que vous souhaitez utiliser une approche d'infrastructure en tant que code (IaC), vous pouvez importer vos ressources dans CloudFormation AWS et les gérer sous forme de pile.

Ce modèle fournit les étapes à suivre pour importer avec succès un compartiment S3 en tant que CloudFormation pile AWS. En utilisant l'approche de ce modèle, vous pouvez éviter d'éventuelles erreurs susceptibles de se produire si vous importez votre compartiment S3 en une seule action.

## Conditions préalables et limitations
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif.
+ Un compartiment S3 existant et une politique de compartiment S3. Pour plus d'informations à ce sujet, consultez la section [Quelle politique de compartiment S3 dois-je utiliser pour me conformer à la règle AWS Config s3- bucket-ssl-requests-only](https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-policy-for-config-rule/) dans le centre de connaissances AWS.
+ Une clé AWS Key Management Service (AWS KMS) existante et son alias. Pour plus d'informations à ce sujet, consultez la section [Utilisation d'alias](https://docs.aws.amazon.com/kms/latest/developerguide/programming-aliases.html) dans la documentation AWS KMS.
+ Exemple de CloudFormation modèle `CloudFormation-template-S3-bucket` AWS (ci-joint), téléchargé sur votre ordinateur local.

## Architecture
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-architecture"></a>

![\[Flux de travail permettant d'utiliser un CloudFormation modèle pour créer une CloudFormation pile afin d'importer un compartiment S3.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/aea7f6fe-8e67-46c4-8b90-1ab06b879111/images/ee143374-a0a4-42d9-b7ca-16593a597a84.png)


 

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

1. L'utilisateur crée un modèle AWS CloudFormation au format JSON ou YAML.

1. Le modèle crée une CloudFormation pile AWS pour importer le compartiment S3.

1. La CloudFormation pile AWS gère le compartiment S3 que vous avez spécifié dans le modèle.

**Pile technologique**
+ AWS CloudFormation
+ AWS Identity and Access Management (IAM)
+ AWS KMS
+ Amazon S3

 

**Outils**
+ [AWS CloudFormation — AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) vous CloudFormation aide à créer et à provisionner des déploiements d'infrastructure AWS de manière prévisible et répétée.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) — IAM est un service Web permettant de contrôler en toute sécurité l'accès aux services AWS.
+ [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) — AWS Key Management Service (AWS KMS) est un service de chiffrement et de gestion des clés adapté au cloud.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) — Amazon Simple Storage Service (Amazon S3) est un service de stockage pour Internet.

## Épopées
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-epics"></a>

### Importez un compartiment S3 avec chiffrement AWS KMS key basé en tant que CloudFormation stack AWS
<a name="import-an-s3-bucket-with-kms-key-long--based-encryption-as-an-aws-cloudformation-stack"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un modèle pour importer le compartiment S3 et la clé KMS. | Sur votre ordinateur local, créez un modèle pour importer votre compartiment S3 et votre clé KMS à l'aide de l'exemple de modèle suivant :<pre>AWSTemplateFormatVersion: 2010-09-09<br /><br />Parameters:<br /><br />  bucketName:<br /><br />    Type: String<br /><br />Resources:<br /><br />  S3Bucket:<br /><br />    Type: 'AWS::S3::Bucket'<br /><br />    DeletionPolicy: Retain<br /><br />    Properties:<br /><br />      BucketName: !Ref bucketName<br /><br />      BucketEncryption:<br /><br />        ServerSideEncryptionConfiguration:<br /><br />          - ServerSideEncryptionByDefault:<br /><br />              SSEAlgorithm: 'aws:kms'<br /><br />              KMSMasterKeyID: !GetAtt <br /><br />                - KMSS3Encryption<br /><br />                - Arn<br /><br />  KMSS3Encryption:<br /><br />    Type: 'AWS::KMS::Key'<br /><br />    DeletionPolicy: Retain<br /><br />    Properties:<br /><br />      Enabled: true<br /><br />      KeyPolicy: !Sub |-<br /><br />        {<br /><br />            "Id": "key-consolepolicy-3",<br /><br />            "Version": "2012-10-17",		 	 	 <br /><br />            "Statement": [<br /><br />                {<br /><br />                    "Sid": "Enable IAM User Permissions",<br /><br />                    "Effect": "Allow",<br /><br />                    "Principal": {<br /><br />                        "AWS": ["arn:aws:iam::${AWS::AccountId}:root"]<br /><br />                    },<br /><br />                    "Action": "kms:*",<br /><br />                    "Resource": "*"<br /><br />                }<br /><br />                }<br /><br />            ]<br /><br />        }<br /><br />      EnableKeyRotation: true</pre> | AWS DevOps | 
| Créez la pile. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html) | AWS DevOps | 
| Créez l'alias de clé KMS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html)<pre>KMSS3EncryptionAlias:<br /><br />    Type: 'AWS::KMS::Alias'<br /><br />    DeletionPolicy: Retain<br /><br />    Properties: <br /><br />    AliasName: alias/S3BucketKey<br /><br />    TargetKeyId: !Ref KMSS3Encryption</pre>Pour plus d'informations à ce sujet, consultez les [mises à jour du CloudFormation stack AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) dans la CloudFormation documentation AWS.  | AWS DevOps | 
| Mettez à jour la pile pour inclure la politique du compartiment S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html)<pre>S3BucketPolicy:<br /><br />  Type: 'AWS::S3::BucketPolicy'<br /><br />  Properties:<br /><br />    Bucket: !Ref S3Bucket<br /><br />    PolicyDocument: !Sub |-<br /><br />      {<br /><br />                  "Version": "2008-10-17",		 	 	 <br /><br />                  "Id": "restricthttp",<br /><br />                  "Statement": [<br /><br />                      {<br /><br />                          "Sid": "denyhttp",<br /><br />                          "Effect": "Deny",<br /><br />                          "Principal": {<br /><br />                              "AWS": "*"<br /><br />                          },<br /><br />                          "Action": "s3:*",<br /><br />                          "Resource": ["arn:aws:s3:::${S3Bucket}","arn:aws:s3:::${S3Bucket}/*"],<br /><br />                          "Condition": {<br /><br />                              "Bool": {<br /><br />                                  "aws:SecureTransport": "false"<br /><br />                              }<br /><br />                          }<br /><br />                      }<br /><br />                  ]<br /><br />              }</pre>Cette politique de compartiment S3 comporte une déclaration de refus qui restreint les appels d'API non sécurisés.  | AWS DevOps | 
| Mettez à jour la politique clé. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html)Pour plus d'informations, consultez [la section Politiques clés AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) de la documentation AWS KMS. | Administrateur AWS | 
| Ajoutez des balises au niveau des ressources. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack.html)<pre>Tags:<br /><br />  - Key: createdBy<br /><br />    Value: Cloudformation</pre> | AWS DevOps | 

## Ressources connexes
<a name="successfully-import-an-s3-bucket-as-an-aws-cloudformation-stack-resources"></a>
+ [Intégrer les ressources existantes à la CloudFormation gestion d'AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)
+ [AWS re:Invent 2017 : présentation approfondie d'AWS CloudFormation (vidéo](https://www.youtube.com/watch?v=01hy48R9Kr8))

## Pièces jointes
<a name="attachments-aea7f6fe-8e67-46c4-8b90-1ab06b879111"></a>

[Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip](samples/p-attach/aea7f6fe-8e67-46c4-8b90-1ab06b879111/attachments/attachment.zip)

# Synchronisez les données entre les systèmes de fichiers Amazon EFS dans différentes régions AWS à l'aide d'AWS DataSync
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync"></a>

*Sarat Chandra Pothula et Aditya Ambati, Amazon Web Services*

## Résumé
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-summary"></a>

Cette solution fournit un cadre robuste pour une synchronisation des données efficace et sécurisée entre les instances Amazon Elastic File System (Amazon EFS) dans les différentes régions AWS. Cette approche est évolutive et permet une réplication contrôlée des données entre régions. Cette solution peut améliorer vos stratégies de reprise après sinistre et de redondance des données.

En utilisant l'AWS Cloud Development Kit (AWS CDK), ce modèle utilise une approche d'infrastructure en tant que code (IaC) pour déployer les ressources de la solution. L'application AWS CDK déploie les ressources essentielles d'AWS, DataSync Amazon EFS, Amazon Virtual Private Cloud (Amazon VPC) et Amazon Elastic Compute Cloud (Amazon). EC2 Cet iAC fournit un processus de déploiement reproductible et contrôlé par version qui est entièrement conforme aux meilleures pratiques d'AWS.

## Conditions préalables et limitations
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif
+ [https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ [https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)
+ [NodeJS version 20.8.0 ou ultérieure, installée](https://nodejs.org/en/download)

**Limites**
+ La solution hérite des limites d' DataSync Amazon EFS, telles que les taux de transfert de données, les limites de taille et la disponibilité régionale. Pour plus d'informations, consultez les rubriques [ DataSync Quotas AWS et Quotas](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html) [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/limits.html).
+ Cette solution prend uniquement en charge Amazon EFS. DataSync prend en charge [d'autres services AWS](https://docs.aws.amazon.com/datasync/latest/userguide/working-with-locations.html), tels qu'Amazon Simple Storage Service (Amazon S3) et FSx Amazon for Lustre. Toutefois, cette solution nécessite des modifications pour synchroniser les données avec ces autres services.

## Architecture
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-architecture"></a>

![\[Schéma d'architecture pour la réplication de données vers un système de fichiers EFS dans une autre région\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/e28ba6c2-ab8b-4812-932e-f038106d5496/images/18b35ae9-a22e-43e7-b7a3-30e40321c44e.png)


Cette solution déploie les piles AWS CDK suivantes :
+ **Pile Amazon VPC** : cette pile configure les ressources du cloud privé virtuel (VPC), notamment des sous-réseaux, une passerelle Internet et une passerelle NAT dans les régions AWS principale et secondaire.
+ **Pile Amazon EFS** : cette pile déploie les systèmes de fichiers Amazon EFS dans les régions principale et secondaire et les connecte à leurs régions respectives VPCs.
+ **Amazon EC2 Stack** — Cette pile lance EC2 des instances dans les régions principale et secondaire. Ces instances sont configurées pour monter le système de fichiers Amazon EFS, ce qui leur permet d'accéder au stockage partagé.
+ **DataSync pile de localisation** — Cette pile utilise une construction personnalisée appelée `DataSyncLocationConstruct` pour créer des ressources de DataSync localisation dans les régions principale et secondaire. Ces ressources définissent les points de terminaison pour la synchronisation des données.
+ **DataSync pile de tâches** — Cette pile utilise une construction personnalisée appelée `DataSyncTaskConstruct` pour créer une DataSync tâche dans la région principale. Cette tâche est configurée pour synchroniser les données entre les régions principale et secondaire en utilisant les emplacements DataSync source et de destination.

## Outils
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-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 l'infrastructure du cloud AWS sous forme de code.
+ [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html) est un service de transfert et de découverte de données en ligne qui vous aide à déplacer des fichiers ou des données d'objets vers, depuis et entre les services de stockage AWS.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fournit une capacité de calcul évolutive dans le cloud AWS. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) vous aide à créer et à configurer des systèmes de fichiers partagés dans le cloud AWS.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer des ressources AWS dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous exploiteriez dans votre propre centre de données, avec les avantages liés à l'utilisation de l'infrastructure évolutive d'AWS.

**Référentiel de code**

Le code de ce modèle est disponible dans le référentiel des [ DataSync projets inter-régions GitHub Amazon EFS](https://github.com/aws-samples/aws-efs-crossregion-datasync/tree/main).

## Bonnes pratiques
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-best-practices"></a>

Suivez les bonnes pratiques décrites dans [Bonnes pratiques d'utilisation du kit AWS CDK pour TypeScript créer des projets IaC](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/introduction.html).

## Épopées
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-epics"></a>

### Déployez l'application AWS CDK
<a name="deploy-the-aws-cdk-app"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le référentiel du projet. | Entrez la commande suivante pour cloner le référentiel du [ DataSync projet inter-régions Amazon EFS](https://github.com/aws-samples/aws-efs-crossregion-datasync/tree/main).<pre>git clone https://github.com/aws-samples/aws-efs-crossregion-datasync.git</pre> | AWS DevOps | 
| Installez les dépendances npm. | Entrez la commande suivante.<pre>npm ci</pre> | AWS DevOps | 
| Choisissez les régions principale et secondaire. | Dans le référentiel cloné, accédez au `src/infa` répertoire. Dans le `Launcher.ts` fichier, mettez à jour les `SECONDARY_AWS_REGION` valeurs `PRIMARY_AWS_REGION` et. Utilisez les [codes de région](https://docs.aws.amazon.com/general/latest/gr/datasync.html#datasync-region) correspondants.<pre>const primaryRegion = { account: account, region: '<PRIMARY_AWS_REGION>' };<br />const secondaryRegion = { account: account, region: '<SECONDARY_AWS_REGION>' };</pre> | AWS DevOps | 
| Démarrez l'environnement. | Entrez la commande suivante pour démarrer le compte AWS et la région AWS que vous souhaitez utiliser.<pre>cdk bootstrap <aws_account>/<aws_region></pre>Pour plus d'informations, consultez [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) dans la documentation AWS CDK. | AWS DevOps | 
| Répertoriez les piles AWS CDK. | Entrez la commande suivante pour afficher la liste des piles AWS CDK dans l'application.<pre>cdk ls</pre> | AWS DevOps | 
| Synthétisez les piles AWS CDK. | Entrez la commande suivante pour produire un CloudFormation modèle AWS pour chaque pile définie dans l'application AWS CDK.<pre>cdk synth</pre> | AWS DevOps | 
| Déployez l'application AWS CDK. | Entrez la commande suivante pour déployer toutes les piles sur votre compte AWS, sans nécessiter d'approbation manuelle pour les modifications.<pre>cdk deploy --all --require-approval never</pre> | AWS DevOps | 

### Valider le déploiement
<a name="validate-the-deployment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Connectez-vous à l' EC2 instance dans la région principale. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.html) | AWS DevOps | 
| Créez un fichier temporaire. | Entrez la commande suivante pour créer un fichier temporaire dans le chemin de montage Amazon EFS.<pre>sudo dd if=/dev/zero \<br />of=tmptst.dat \<br />bs=1G \<br />seek=5 \<br />count=0<br /><br />ls -lrt tmptst.dat</pre> | AWS DevOps | 
| Lancez la DataSync tâche. | Entrez la commande suivante pour répliquer le fichier temporaire de la région principale vers la région secondaire, où `<ARN-task>` est le nom de ressource Amazon (ARN) de votre DataSync tâche.<pre>aws datasync start-task-execution \<br />    --task-arn <ARN-task></pre>La commande renvoie l'ARN de l'exécution de la tâche au format suivant.`arn:aws:datasync:<region>:<account-ID>:task/task-execution/<exec-ID>` | AWS DevOps | 
| Vérifiez l'état du transfert de données. | Entrez la commande suivante pour décrire la tâche DataSync d'exécution, où `<ARN-task-execution>` est l'ARN de l'exécution de la tâche.<pre>aws datasync describe-task-execution \<br />    --task-execution-arn <ARN-task-execution></pre>La DataSync tâche est terminée lorsque `PrepareStatus``TransferStatus`, et `VerifyStatus` tous ont la valeur`SUCCESS`. | AWS DevOps | 
| Connectez-vous à l' EC2 instance dans la région secondaire. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.html) | AWS DevOps | 
| Validez la réplication. | Entrez la commande suivante pour vérifier que le fichier temporaire existe dans le système de fichiers Amazon EFS.<pre>ls -lrt<br />tmptst.dat</pre> | AWS DevOps | 

## Ressources connexes
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-resources"></a>

**Documentation AWS**
+ [Référence d'API AWS CDK](https://docs.aws.amazon.com/cdk/api/v2/python/modules.html)
+ [Configuration des DataSync transferts AWS avec Amazon EFS](https://docs.aws.amazon.com/datasync/latest/userguide/create-efs-location.html)
+ [Résolution des problèmes liés aux DataSync transferts AWS](https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html)

**Autres ressources AWS**
+ [AWS DataSync FAQs](https://aws.amazon.com/datasync/faqs/)

# AWS Infrastructure de test à l'aide LocalStack de tests Terraform
<a name="test-aws-infra-localstack-terraform"></a>

*Ivan Girardi et Ioannis Kalyvas, Amazon Web Services*

## Résumé
<a name="test-aws-infra-localstack-terraform-summary"></a>

Ce modèle vous permet de tester localement l'infrastructure sous forme de code (IaC) pour AWS Terraform sans avoir à provisionner l'infrastructure dans votre AWS environnement. Il intègre le [framework Terraform Tests](https://developer.hashicorp.com/terraform/language/tests) à. [LocalStack](https://github.com/localstack/localstack) Le conteneur LocalStack Docker fournit un environnement de développement local qui émule divers. Services AWS Cela vous permet de tester et d'itérer les déploiements d'infrastructure sans encourir de coûts. AWS Cloud

Cette solution offre les avantages suivants :
+ **Optimisation des coûts — L'**exécution de tests permet d' LocalStack éliminer le besoin d'utilisation Services AWS. Cela vous évite d'encourir les coûts associés à la création, à l'exploitation et à la modification de ces AWS ressources.
+ **Rapidité et efficacité** — Les tests locaux sont également généralement plus rapides que le déploiement AWS des ressources. Cette boucle de rétroaction rapide accélère le développement et le débogage. Comme il LocalStack s'exécute localement, vous pouvez développer et tester vos fichiers de configuration Terraform sans connexion Internet. Vous pouvez déboguer les fichiers de configuration Terraform localement et recevoir des commentaires immédiats, ce qui rationalise le processus de développement.
+ **Cohérence et reproductibilité** : LocalStack fournit un environnement de test cohérent. Cette cohérence permet de garantir que les tests donnent les mêmes résultats, quels que soient les AWS changements externes ou les problèmes de réseau.
+ **Isolation** : les tests vous LocalStack évitent d'affecter accidentellement les AWS ressources réelles ou les environnements de production. Cette isolation permet d'expérimenter et de tester différentes configurations en toute sécurité.
+ **Automatisation** [— L'intégration à un pipeline d'intégration continue et de livraison continue (CI/CD) vous permet de tester automatiquement les fichiers de configuration Terraform.](https://developer.hashicorp.com/terraform/language/files) Le pipeline teste minutieusement l'iAc avant le déploiement.
+ **Flexibilité** — Vous pouvez simuler différentes Régions AWS configurations et configurations de service pour mieux correspondre à vos environnements de production. Comptes AWS

## Conditions préalables et limitations
<a name="test-aws-infra-localstack-terraform-prereqs"></a>

**Conditions préalables**
+ [Installer Docker](https://docs.docker.com/get-started/get-docker/)
+ [Activez l'accès](https://docs.docker.com/reference/cli/dockerd/#daemon-socket-option) au socket Docker par défaut (`/var/run/docker.sock`). Pour plus d’informations, consultez la [documentation LocalStack ](https://docs.localstack.cloud/user-guide/aws/lambda/#migrating-to-lambda-v2).
+ [Installez](https://docs.docker.com/compose/install/) Docker Compose
+ [Installez](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) Terraform version 1.6.0 ou ultérieure
+ [Installez](https://developer.hashicorp.com/terraform/cli) Terraform CLI
+ [Configurer](https://hashicorp.github.io/terraform-provider-aws/) le fournisseur Terraform AWS 
+ (Facultatif) [Installez](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) et [configurez](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) le AWS Command Line Interface (AWS CLI). Pour un exemple d'utilisation du AWS CLI with LocalStack, consultez l'[AWS infrastructure de GitHub test utilisant LocalStack et le référentiel de tests Terraform](https://github.com/aws-samples/localstack-terraform-test).

**Limites**
+ Ce modèle fournit des exemples explicites pour tester les ressources Amazon Simple Storage Service (Amazon S3) AWS Lambda, AWS Step Functions, et Amazon DynamoDB. Toutefois, vous pouvez étendre cette solution pour inclure des AWS ressources supplémentaires.
+ Ce modèle fournit des instructions pour exécuter des tests Terraform localement, mais vous pouvez intégrer des tests dans n'importe quel CI/CD pipeline.
+ Ce modèle fournit des instructions pour utiliser l'image de LocalStack la communauté. Si vous utilisez l'image LocalStack Pro, consultez la [documentation LocalStack Pro](https://hub.docker.com/r/localstack/localstack-pro).
+ LocalStack fournit des services d'émulation pour différents. AWS APIs Pour une liste complète, voir [Couverture des fonctionnalités du AWS service](https://docs.localstack.cloud/user-guide/aws/feature-coverage/). Certaines fonctionnalités avancées peuvent nécessiter un abonnement LocalStack Pro.

## Architecture
<a name="test-aws-infra-localstack-terraform-architecture"></a>

Le schéma suivant montre l'architecture de cette solution. Les principaux composants sont un référentiel de code source, un CI/CD pipeline et un conteneur LocalStack Docker. Le conteneur LocalStack Docker héberge les éléments suivants Services AWS localement :
+ Un compartiment Amazon S3 pour stocker des fichiers
+ Amazon CloudWatch pour la surveillance et la journalisation
+ Une AWS Lambda fonction pour exécuter du code sans serveur
+ Une machine à AWS Step Functions états pour orchestrer des flux de travail en plusieurs étapes
+ Une table Amazon DynamoDB pour stocker des données NoSQL

![\[Un CI/CD pipeline crée et teste le conteneur LocalStack Docker et les ressources AWS.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/34bfbdbf-14e7-42a0-9022-c85a9c30cdcd/images/dc61fac9-b92c-4841-9132-ff8bb865eed9.png)


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

1. Vous ajoutez et validez un fichier de configuration Terraform dans le référentiel de code source.

1. Le CI/CD pipeline détecte les modifications et lance un processus de génération pour l'analyse statique du code Terraform. Le pipeline construit et exécute le conteneur LocalStack Docker. Ensuite, le pipeline lance le processus de test.

1. Le pipeline télécharge un objet dans un compartiment Amazon S3 hébergé dans le conteneur LocalStack Docker.

1. Le téléchargement de l'objet appelle une AWS Lambda fonction.

1. La fonction Lambda enregistre la notification d'événement Amazon S3 dans un CloudWatch journal.

1. La fonction Lambda démarre une machine à AWS Step Functions états.

1. La machine d'état écrit le nom de l'objet Amazon S3 dans une table DynamoDB.

1. Le processus de test du CI/CD pipeline vérifie que le nom de l'objet chargé correspond à l'entrée de la table DynamoDB. Il vérifie également que le compartiment S3 est déployé avec le nom spécifié et que la AWS Lambda fonction a été déployée avec succès.

## Outils
<a name="test-aws-infra-localstack-terraform-tools"></a>

**Services AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) vous CloudWatch aide à surveiller les indicateurs de vos AWS ressources et des applications que vous utilisez AWS en temps réel.
+ [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.
+ [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.
+ [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.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)est un service d'orchestration sans serveur qui vous aide à combiner des AWS Lambda fonctions et autres Services AWS pour créer des applications critiques pour l'entreprise.

**Autres outils**
+ [Docker](https://www.docker.com/) est un ensemble de produits de plateforme en tant que service (PaaS) qui utilisent la virtualisation au niveau du système d'exploitation pour fournir des logiciels dans des conteneurs.
+ [Docker Compose](https://docs.docker.com/compose/) est un outil permettant de définir et d'exécuter des applications multi-conteneurs.
+ [LocalStack](https://localstack.cloud)est un émulateur de service cloud qui s'exécute dans un conteneur unique. En utilisant LocalStack, vous pouvez exécuter des charges de travail sur votre machine locale qui l'utilise Services AWS, sans vous connecter au AWS Cloud.
+ [Terraform](https://www.terraform.io/) est un outil IaC HashiCorp qui vous aide à créer et à gérer des ressources sur site et dans le cloud.
+ [Terraform Tests](https://developer.hashicorp.com/terraform/language/tests) vous aide à valider les mises à jour de configuration des modules Terraform par le biais de tests analogues à des tests d'intégration ou unitaires.

**Référentiel de code**

Le code de ce modèle est disponible dans l'[AWS infrastructure de GitHub test à l'aide du LocalStack référentiel Terraform Tests](https://github.com/aws-samples/localstack-terraform-test).

## Bonnes pratiques
<a name="test-aws-infra-localstack-terraform-best-practices"></a>
+ Cette solution teste AWS l'infrastructure spécifiée dans les fichiers de configuration Terraform et ne déploie pas ces ressources dans le. AWS Cloud Si vous souhaitez déployer les ressources, suivez le [principe du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) (documentation IAM) et [configurez correctement le backend Terraform (documentation Terraform](https://developer.hashicorp.com/terraform/language/backend)).
+ Lors de l'intégration LocalStack dans un CI/CD pipeline, nous vous recommandons de ne pas exécuter le conteneur LocalStack Docker en mode privilège. Pour plus d'informations, consultez [Privilèges d'exécution et fonctionnalités Linux](https://docs.docker.com/engine/containers/run/#runtime-privilege-and-linux-capabilities) (documentation Docker) et [Sécurité pour les coureurs autogérés](https://docs.gitlab.com/runner/security/) (GitLab documentation).

## Épopées
<a name="test-aws-infra-localstack-terraform-epics"></a>

### Déploiement de la solution
<a name="deploy-the-solution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Pour cloner le référentiel. | Dans un shell bash, entrez la commande suivante. Cela clone l'[AWS infrastructure de test à l'aide d'un référentiel LocalStack de tests Terraform](https://github.com/aws-samples/localstack-terraform-test) à partir de : GitHub<pre>git clone https://github.com/aws-samples/localstack-terraform-test.git</pre> | DevOps ingénieur | 
| Faites fonctionner le LocalStack conteneur. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/test-aws-infra-localstack-terraform.html) | DevOps ingénieur | 
| Initialisez Terraform. | Entrez la commande suivante pour initialiser Terraform :<pre>terraform init</pre> | DevOps ingénieur | 
| Exécutez des tests Terraform. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/test-aws-infra-localstack-terraform.html) | DevOps ingénieur | 
| nettoyer les ressources. | Entrez la commande suivante pour détruire le LocalStack conteneur :<pre>docker-compose down</pre> | DevOps ingénieur | 

## Résolution des problèmes
<a name="test-aws-infra-localstack-terraform-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| `Error: reading DynamoDB Table Item (Files\|README.md): empty`résultat lors de l'exécution de la `terraform test` commande. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/test-aws-infra-localstack-terraform.html) | 

## Ressources connexes
<a name="test-aws-infra-localstack-terraform-resources"></a>
+ [Commencer à utiliser Terraform : conseils pour AWS CDK et AWS CloudFormation experts](https://docs.aws.amazon.com/prescriptive-guidance/latest/getting-started-terraform/introduction.html) (conseils AWS prescriptifs)
+ [Meilleures pratiques d'utilisation du AWS fournisseur Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/terraform-aws-provider-best-practices/introduction.html) (directives AWS prescriptives)
+ [Terraform CI/CD et poursuite des tests AWS avec le nouveau cadre de test Terraform](https://aws.amazon.com/blogs/devops/terraform-ci-cd-and-testing-on-aws-with-the-new-terraform-test-framework/) (article de blog)AWS 
+ [Accélérer la livraison de logiciels à l'aide de LocalStack Cloud Emulator depuis AWS Marketplace](https://aws.amazon.com/blogs/awsmarketplace/accelerating-software-delivery-localstack-cloud-emulator-aws-marketplace/) (article de AWS blog)

## Informations supplémentaires
<a name="test-aws-infra-localstack-terraform-additional"></a>

**Intégration avec les GitHub actions**

Vous pouvez intégrer LocalStack et terraformer des tests dans un CI/CD pipeline à l'aide GitHub d'actions. Pour plus d'informations, consultez la [documentation sur GitHub les actions](https://docs.github.com/en/actions). Voici un exemple de fichier de configuration d' GitHub actions :

```
name: LocalStack Terraform Test

on:
  push:
    branches:
      - '**'

  workflow_dispatch: {}

jobs:
  localstack-terraform-test:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4

    - name: Build and Start LocalStack Container
      run: |
        docker compose up -d

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3
      with:
        terraform_version: latest

    - name: Run Terraform Init and Validation
      run: |
        terraform init
        terraform validate
        terraform fmt --recursive --check
        terraform plan
        terraform show

    - name: Run Terraform Test
      run: |
        terraform test

    - name: Stop and Delete LocalStack Container
      if: always()
      run: docker compose down
```

# Mettez à niveau les clusters SAP Pacemaker de ENSA1 ENSA2
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2"></a>

*Gergely Cserdi et Balazs Sandor Skublics, Amazon Web Services*

## Résumé
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-summary"></a>

Ce modèle explique les étapes et les considérations relatives à la mise à niveau d'un cluster SAP Pacemaker basé sur un serveur d'attente autonome () ENSA1 vers. ENSA2 Les informations contenues dans ce modèle s'appliquent à la fois aux systèmes d'exploitation SUSE Linux Enterprise Server (SLES) et Red Hat Enterprise Linux (RHEL).

Les clusters Pacemaker sur SAP NetWeaver 7.52 ou S/4HANA 1709 et versions antérieures s'exécutent sur une ENSA1 architecture et sont configurés spécifiquement pour. ENSA1 Si vous exécutez vos charges de travail SAP sur Amazon Web Services (AWS) et que vous souhaitez passer à Amazon ENSA2, vous constaterez peut-être que la documentation SAP, SUSE et RHEL ne fournit pas d'informations complètes. Ce modèle décrit les étapes techniques requises pour reconfigurer les paramètres SAP et les clusters Pacemaker à partir ENSA1 de. ENSA2 Il fournit des exemples de systèmes SUSE, mais le concept est le même pour les clusters RHEL.

**Note**  
ENSA1 et ENSA2 sont des concepts qui concernent uniquement les applications SAP. Les informations de ce modèle ne s'appliquent donc pas à SAP HANA ou à d'autres types de clusters.

**Note**  
Techniquement, il ENSA2 peut être utilisé avec ou sans Enqueue Replicator 2. Cependant, la haute disponibilité (HA) et l'automatisation du basculement (via une solution de cluster) nécessitent Enqueue Replicator 2. Ce modèle utilise le terme *ENSA2 clusters pour désigner les clusters* dotés de Standalone Enqueue Server 2 et Enqueue Replicator 2.

## Conditions préalables et limitations
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-prereqs"></a>

**Prérequis**
+ Un cluster fonctionnel ENSA1 qui utilise Pacemaker et Corosync sur SLES ou RHEL.
+ Au moins deux instances Amazon Elastic Compute Cloud (Amazon EC2) sur lesquelles les instances (ABAP) SAP Central Services (ASCS/SCS) et Enqueue Replication Server (ERS) sont exécutées.
+ Connaissance de la gestion des applications et des clusters SAP.
+ Accès à l'environnement Linux en tant qu'utilisateur root.

**Limites**
+ ENSA1les clusters basés sur une architecture à deux nœuds ne supportent qu'une architecture à deux nœuds.
+ ENSA2les clusters basés sur SAP ne peuvent pas être déployés sur les NetWeaver versions de SAP antérieures à la version 7.52.
+ EC2 les instances des clusters doivent se trouver dans des zones de disponibilité AWS différentes.

**Versions du produit**
+ SAP NetWeaver version 7.52 ou ultérieure
+ À partir de S/4HANA 2020, seuls les clusters sont pris en charge ENSA2 
+ Kernel 7.53 ou version ultérieure, qui prend en charge ENSA2 et Enqueue Replicator 2
+ SLES pour applications SAP version 12 ou ultérieure
+ RHEL pour SAP avec haute disponibilité (HA) version 7.9 ou ultérieure

## Architecture
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-architecture"></a>

**Pile technologique source**
+ SAP NetWeaver 7.52 avec SAP Kernel 7.53 ou version ultérieure
+ Système d'exploitation SLES ou RHEL

**Pile technologique cible**
+ SAP NetWeaver 7.52 avec SAP Kernel 7.53 ou version ultérieure, y compris S/4HANA 2020 avec plate-forme ABAP
+ Système d'exploitation SLES ou RHEL

**Architecture cible**

Le schéma suivant montre une configuration HA ASCS/SCS et des instances ERS basées sur un ENSA2 cluster.

![\[Architecture HA pour ASCS/SCS les instances ERS d'un ENSA2 cluster\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/c32560de-901f-4796-a6b3-c08c109b22c8/images/19501713-0ddf-4242-9ea3-90478200a19e.png)


**Comparaison de ENSA2 clusters ENSA1 et de clusters**

SAP a été introduit ENSA2 en tant que successeur de ENSA1. Un cluster ENSA1 basé prend en charge une architecture à deux nœuds dans laquelle l' ASCS/SCS instance bascule vers ERS en cas d'erreur. Cette limitation provient de la manière dont l' ASCS/SCS instance récupère les informations de la table de verrouillage depuis la mémoire partagée du nœud ERS après un basculement. ENSA2les clusters basés sur Enqueue Replicator 2 éliminent cette limitation, car l' ASCS/SCS instance peut collecter les informations de verrouillage de l'instance ERS via le réseau. ENSA2les clusters basés sur le nœud peuvent comporter plus de deux nœuds, car il n'est plus nécessaire que l' ASCS/SCS instance bascule vers le nœud ERS. (Toutefois, dans un environnement de ENSA2 cluster à deux nœuds, l' ASCS/SCS instance bascule toujours vers le nœud ERS car il n'y a aucun autre nœud du cluster vers lequel basculer.) ENSA2 est pris en charge à partir de SAP Kernel 7.50 avec certaines limitations. Pour une configuration HA qui prend en charge Enqueue Replicator 2, la configuration minimale requise est de NetWeaver 7,52 (voir la [note SAP OSS 2630416](https://launchpad.support.sap.com/#/notes/2630416)). S/4HANA 1809 est livré avec une ENSA2 architecture recommandée par défaut, tandis que S/4HANA ne prend en charge qu'à partir de la version 2020. ENSA2 

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

Le cluster HA de l'architecture cible permet à ASCS de basculer automatiquement vers d'autres nœuds.

**Scénarios de migration vers des clusters ENSA2 basés**

Il existe deux scénarios principaux pour la mise à niveau vers ENSA2 des clusters basés : 
+ Scénario 1 : vous choisissez de passer à une version ENSA2 sans mise à niveau SAP ou conversion S/4HANA associée, en supposant que votre version SAP et votre version du noyau soient compatibles. ENSA2
+ Scénario 2 : vous passez à ENSA2 SUM dans le cadre d'une mise à niveau ou d'une conversion (par exemple, vers S/4HANA 1809 ou version ultérieure).

La section [Epics](#upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-epics) décrit les étapes de ces deux scénarios. Le premier scénario vous oblige à configurer manuellement les paramètres liés à SAP avant de modifier la configuration du cluster pour ENSA2. Dans le second scénario, les fichiers binaires et les paramètres liés à SAP sont déployés par SUM, et il ne vous reste plus qu'à mettre à jour la configuration du cluster pour HA. Nous vous recommandons tout de même de valider les paramètres SAP après avoir utilisé SUM. Dans la plupart des cas, la conversion S/4HANA est la principale raison d'une mise à niveau du cluster.

## Outils
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-tools"></a>
+ Pour les gestionnaires de packages de systèmes d'exploitation, nous recommandons les outils Zypper (pour SLES) ou YUM (pour RHEL).
+ Pour la gestion des clusters, nous recommandons les shells **crm** (pour SLES) ou **pcs** (pour RHEL).
+ Outils de gestion des instances SAP tels que SAPControl.
+ Outil SUM (facultatif) pour la mise à niveau de conversion de S/4HANA.

## Bonnes pratiques
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-best-practices"></a>
+ Pour connaître les meilleures pratiques relatives à l'utilisation des charges de travail SAP sur AWS, consultez le [SAP Lens for the](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/sap-lens.html) AWS Well-Architected Framework.
+ Tenez compte du nombre de nœuds de cluster (pair ou impair) dans votre architecture à ENSA2 nœuds multiples.
+ Configurez le ENSA2 cluster pour SLES 15 conformément à la norme de certification SAP S/4-HA-CLU 1.0.
+ Enregistrez ou sauvegardez toujours l'état de votre cluster et de votre application existants avant de procéder à la mise à niveau vers ENSA2.

## Épopées
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-epics"></a>

### Configurer les paramètres SAP manuellement pour ENSA2 (scénario 1 uniquement)
<a name="configure-sap-parameters-manually-for-ensa2-scenario-1-only"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez les paramètres dans le profil par défaut. | Si vous souhaitez effectuer une mise à niveau ENSA2 tout en conservant la même version SAP ou si votre version cible est la valeur par défaut ENSA1, définissez les paramètres du profil par défaut (fichier DEFAULT.PFL) sur les valeurs suivantes.<pre>enq/enable=TRUE<br />enq/serverhost=sapascsvirt<br />enq/serverinst=10        (instance number of ASCS/SCS instance)<br />enque/process_location=REMOTESA<br />enq/replicatorhost=sapersvirt<br />enq/replicatorinst=11    (instance number of ERS instance)<br />  </pre>où `sapascsvirt` est le nom d'hôte virtuel pour les instances ASCS, et `sapersvirt` est le nom d'hôte virtuel pour les instances ERS. Vous pouvez les modifier pour les adapter à votre environnement cible.Pour utiliser cette option de mise à niveau, votre version SAP et votre version du noyau doivent prendre en charge ENSA2 Enqueue Replicator 2. | SAP | 
| Configurez le profil de l' ASCS/SCS instance. | Si vous souhaitez effectuer une mise à ENSA2 niveau vers la même version de SAP ou si votre version cible est par défaut ENSA1, définissez les paramètres suivants dans le profil d' ASCS/SCS instance. La section du profil où ENSA1 est défini ressemble à ce qui suit.<pre>#--------------------------------------------------------------<br />Start SAP enqueue server<br />#-------------------------------------------------------------- <br />_EN = en.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_04 = local rm -f $(_EN) <br />Execute_05 = local ln -s -f $(DIR_EXECUTABLE)/enserver$(FT_EXE) $(_EN) <br />Start_Program_01 = local $(_EN) pf=$(_PF)<br />  </pre>Pour reconfigurer cette section pour ENSA2 :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.html)Cette section de profil ressemblera à ce qui suit après vos modifications.<pre>#--------------------------------------------------------------<br />Start SAP enqueue server<br />#-------------------------------------------------------------- <br />_ENQ = enq.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_04 = local rm -f $(_ENQ) <br />Execute_05 = local ln -s -f $(DIR_EXECUTABLE)/enq_server$(FT_EXE) $(_ENQ) <br />Start_Program_01 = local $(_ENQ) pf=$(_PF) <br />... <br />enq/server/replication/enable = TRUE <br />Autostart = 0</pre>`_ENQ`l'option de redémarrage ne doit pas être activée. S'`RestartProgram_01`il est défini pour`_ENQ`, remplacez-le par`StartProgram_01`. Cela empêche SAP de redémarrer le service ou d'interférer avec les ressources gérées par le cluster. | SAP | 
| Configurez le profil ERS. | Si vous souhaitez effectuer une mise à ENSA2 niveau vers la même version de SAP ou si votre version cible est par défaut ENSA1, définissez les paramètres suivants dans le profil d'instance ERS.Trouvez la section dans laquelle le réplicateur de files d'attente est défini. Ce sera similaire à ce qui suit.<pre>#------------------------------------------------------<br />Start enqueue replication server<br />#------------------------------------------------------ <br />_ER = er.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_03 = local rm -f $(_ER) <br />Execute_04 = local ln -s -f $(DIR_EXECUTABLE)/enrepserver$(FT_EXE) $(_ER) <br />Start_Program_00 = local $(_ER) pf=$(_PF) NR=$(SCSID)<br />  </pre>Pour reconfigurer cette section pour Enqueue Replicator 2 :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.html)Cette section de profil devrait ressembler à ce qui suit après vos modifications.<pre>#------------------------------------------------------<br />Start enqueue replication server<br />#------------------------------------------------------ <br />_ENQR = enqr.sap$(SAPSYSTEMNAME)$(INSTANCE_NAME) <br />Execute_01 = local rm -f $(_ENQR) <br />Execute_02 = local ln -s -f $(DIR_EXECUTABLE)/enq_replicator$(FT_EXE) $(_ENQR) <br />Start_Program_00 = local $(_ENQR) pf=$(_PF) NR=$(SCSID) <br />… <br />Autostart = 0</pre>`_ENQR`l'option de redémarrage ne doit pas être activée. S'`RestartProgram_01`il est défini pour`_ENQR`, remplacez-le par`StartProgram_01`. Cela empêche SAP de redémarrer le service ou d'interférer avec les services gérés par cluster. | SAP | 
| Redémarrez SAP Start Services. | Après avoir modifié les profils décrits précédemment dans cet article épique, redémarrez SAP Start Services pour les deux ASCS/SCS et ERS.`sapcontrol -nr 10 -function RestartService SCT``sapcontrol -nr 11 -function RestartService SCT`où `SCT` fait référence à l'ID du système SAP, en supposant que 10 et 11 sont respectivement les numéros d'instance ASCS/SCS et les numéros d'instance ERS. | SAP | 

### Reconfigurer le cluster pour ENSA2 (obligatoire pour les deux scénarios)
<a name="reconfigure-the-cluster-for-ensa2-required-for-both-scenarios"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Vérifiez les numéros de version dans les agents de ressources SAP. | Lorsque vous utilisez SUM pour mettre à niveau SAP vers S/4HANA 1809 ou une version ultérieure, SUM gère les modifications de paramètres dans les profils SAP. Seul le cluster nécessite un réglage manuel. Toutefois, nous vous recommandons de vérifier les paramètres avant d'apporter des modifications au cluster.Les exemples présentés dans cette épopée supposent que vous utilisez le système d'exploitation SUSE. **Si vous utilisez RHEL, vous devrez utiliser des outils tels que YUM et le shell **PCs** au lieu de Zypper et CRM.**Vérifiez les deux nœuds de l'architecture pour vérifier que le `resource-agents` package correspond à la version minimale recommandée par SAP. Pour SLES, consultez la note SAP OSS 2641019. Pour RHEL, consultez la note SAP OSS 2641322. (SAP Notes nécessite un [compte utilisateur SAP ONE Support Launchpad](https://support.sap.com/en/my-support/knowledge-base.html).)<pre>sapers:sctadm 23> zypper search -s -i resource-agents<br />Loading repository data...<br />Reading installed packages...<br />S | Name | Type | Version | Arch | Repository<br />--+-----------------+---------+------------------------------------+--------+-----------------------------<br />i | resource-agents | package | 4.8.0+git30.d0077df0-150300.8.28.1 | x86_64 | SLE-Product-HA15-SP3-Updates</pre>Mettez à jour la `resource-agents` version si nécessaire. | Administrateur système AWS | 
| Sauvegardez la configuration du cluster. | Sauvegardez la configuration du cluster CRM comme suit.`crm configure show > /tmp/cluster_config_backup.txt` | Administrateur système AWS | 
| Définissez le mode de maintenance. | Réglez le cluster en mode maintenance.`crm configure property maintenance-mode="true"` | Administrateur système AWS | 
| Vérifiez la configuration du cluster. | Vérifiez la configuration actuelle du cluster.`crm configure show`Voici un extrait de la sortie complète :<pre>node 1: sapascs<br />node 2: sapers<br />...<br />primitive rsc_sap_SCT_ASCS10 SAPInstance \<br />operations $id=rsc_sap_SCT_ASCS10-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \ <br />   AUTOMATIC_RECOVER=false \<br />meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10<br />primitive rsc_sap_SCT_ERS11 SAPInstance \<br />operations $id=rsc_sap_SCT_ERS11-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \<br />   AUTOMATIC_RECOVER=false IS_ERS=true \<br />meta priority=1000<br />...<br />colocation col_sap_SCT_no_both -5000: grp_SCT_ERS11 grp_SCT_ASCS10<br />location loc_sap_SCT_failover_to_ers rsc_sap_SCT_ASCS10 \<br />rule 2000: runs_ers_SCT eq 1<br />order ord_sap_SCT_first_start_ascs Optional: rsc_sap_SCT_ASCS10:start rsc_sap_SCT_ERS11:stop symmetrical=false<br />...</pre>où `sapascsvirt` fait référence au nom d'hôte virtuel pour les instances ASCS, `sapersvirt` fait référence au nom d'hôte virtuel pour les instances ERS et `SCT` fait référence à l'ID du système SAP. | Administrateur système AWS | 
| Supprimez la contrainte de colocation en cas de basculement. | Dans l'exemple précédent, la contrainte de localisation `loc_sap_SCT_failover_to_ers` indique que la ENSA1 fonctionnalité d'ASCS doit toujours suivre l'instance ERS en cas de basculement. Avec ENSA2, ASCS devrait pouvoir basculer librement vers tous les nœuds participants. Vous pouvez donc supprimer cette contrainte.`crm configure delete loc_sap_SCT_failover_to_ers` | Administrateur système AWS | 
| Ajustez les primitives. | Vous devrez également apporter des modifications mineures aux SAPInstance primitives ASCS et ERS.Voici un exemple de SAPInstance primitive ASCS configurée pour ENSA1.<pre>primitive rsc_sap_SCT_ASCS10 SAPInstance \<br />operations $id=rsc_sap_SCT_ASCS10-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \<br />   AUTOMATIC_RECOVER=false \<br />meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10</pre>Pour effectuer une mise à niveau vers ENSA2, modifiez cette configuration comme suit.<pre>primitive rsc_sap_SCT_ASCS10 SAPInstance \<br />operations $id=rsc_sap_SCT_ASCS10-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ASCS10_sapascsvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ASCS10_sapascsvirt" \<br />   AUTOMATIC_RECOVER=false \<br />meta resource-stickiness=3000 </pre>Il s'agit d'un exemple de SAPInstance primitive ERS configurée pour ENSA1.<pre>primitive rsc_sap_SCT_ERS11 SAPInstance \<br />operations $id=rsc_sap_SCT_ERS11-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \<br />   AUTOMATIC_RECOVER=false IS_ERS=true \<br />meta priority=1000</pre>Pour effectuer une mise à niveau vers ENSA2, modifiez cette configuration comme suit.<pre>primitive rsc_sap_SCT_ERS11 SAPInstance \<br />operations $id=rsc_sap_SCT_ERS11-operations \<br />op monitor interval=120 timeout=60 on-fail=restart \<br />params InstanceName=SCT_ERS11_sapersvirt START_PROFILE="/sapmnt/SCT/profile/SCT_ERS11_sapersvirt" \<br />   AUTOMATIC_RECOVER=false IS_ERS=true</pre>Vous pouvez modifier les primitives de différentes manières. Par exemple, vous pouvez les réviser dans un éditeur tel que vi, comme dans l'exemple suivant.`crm configure edit rsc_sap_SCT_ERS11` | Administrateur système AWS | 
| Désactivez le mode maintenance. | Désactivez le mode maintenance sur le cluster.`crm configure property maintenance-mode="false"`Lorsque le cluster sort du mode maintenance, il tente de mettre en ligne les instances ASCS et ERS avec les nouveaux ENSA2 paramètres. | Administrateur système AWS | 

### (Facultatif) Ajoutez des nœuds de cluster
<a name="optional-add-cluster-nodes"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Passez en revue les meilleures pratiques. | Avant d'ajouter d'autres nœuds, assurez-vous de comprendre les meilleures pratiques, par exemple s'il faut utiliser un nombre pair ou impair de nœuds. | Administrateur système AWS | 
| Ajoutez des nœuds. | L'ajout de nœuds supplémentaires implique une série de tâches, telles que la mise à jour du système d'exploitation, l'installation de progiciels correspondant aux nœuds existants et la mise à disposition de montages. Vous pouvez utiliser l'option **Prepare Additional Host** dans SAP Software Provisioning Manager (SWPM) pour créer une base de référence spécifique à SAP pour l'hôte. Pour plus d'informations, consultez les guides SAP répertoriés dans la section suivante. | Administrateur système AWS | 

## Ressources connexes
<a name="upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2-resources"></a>

**Références SAP et SUSE**

Pour accéder à SAP Notes, vous devez disposer d'un compte utilisateur SAP ONE Support Launchpad. Pour de plus amples informations, veuillez consulter le [site web du support SAP](https://support.sap.com/en/my-support/knowledge-base.html).
+ [SAP Note 2501860 ‒ Documentation du serveur d' NetWeaver applications SAP pour ABAP 7.52](https://launchpad.support.sap.com/#/notes/2501860)
+ [SAP Note 2641019 ‒ Installation ENSA2 et mise à jour de ENSA1 vers ENSA2 dans l'environnement SUSE HA](https://launchpad.support.sap.com/#/notes/2641019)
+ [Note SAP 2641322 ‒ Installation ENSA2 et mise à jour de ENSA1 vers ENSA2 lors de l'utilisation des solutions Red Hat HA pour SAP](https://launchpad.support.sap.com/#/notes/2641322)
+ [SAP Note 2711036 ‒ Utilisation du serveur d'attente autonome 2 dans un environnement HA](https://launchpad.support.sap.com/#/notes/2711036)
+ [Serveur de file d'attente autonome 2](https://help.sap.com/docs/ABAP_PLATFORM/cff8531bc1d9416d91bb6781e628d4e0/902412f09e134f5bb875adb6db585c92.html) (documentation SAP)
+ [SAP S/4 HANA ‒ Cluster haute disponibilité Enqueue Replication 2 - Guide de configuration](https://documentation.suse.com/sbp/all/html/SAP_S4HA10_SetupGuide-SLE12/index.html) (documentation SUSE)

**Références AWS**
+ [SAP HANA sur AWS : guide de configuration de haute disponibilité pour SLES et RHEL](https://docs.aws.amazon.com/sap/latest/sap-hana/sap-hana-on-aws-ha-configuration.html)
+ [SAP Lens - Cadre AWS Well-Architected](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/sap-lens.html)

# Utilisez des zones de disponibilité cohérentes VPCs sur les différents comptes AWS
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts"></a>

*Adam Spicer, Amazon Web Services*

## Résumé
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-summary"></a>

Sur le cloud Amazon Web Services (AWS), le nom d'une zone de disponibilité peut varier selon vos comptes AWS et un [ID de zone de disponibilité (AZ ID)](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html) qui identifie son emplacement. Si vous utilisez AWS CloudFormation pour créer des clouds privés virtuels (VPCs), vous devez spécifier le nom ou l'ID de la zone de disponibilité lors de la création des sous-réseaux. Si vous créez VPCs plusieurs comptes, le nom de la zone de disponibilité est aléatoire, ce qui signifie que les sous-réseaux utilisent des zones de disponibilité différentes dans chaque compte. 

Pour utiliser la même zone de disponibilité sur tous vos comptes, vous devez associer le nom de la zone de disponibilité de chaque compte au même AZ ID. Par exemple, le schéma suivant montre que l'ID `use1-az6` AZ est nommé `us-east-1a` dans le compte AWS A et `us-east-1c` dans le compte AWS Z.

![\[L'ID AZ use1-az6 est nommé us-east-1a dans le compte AWS A et us-east-1c dans le compte AWS Z.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/23c8a37b-2408-4534-a1e0-bccfa4d7fbe3.png)


 

Ce modèle permet de garantir la cohérence zonale en fournissant une solution évolutive entre comptes permettant d'utiliser les mêmes zones de disponibilité dans vos sous-réseaux. La cohérence zonale garantit que le trafic réseau entre comptes évite les chemins réseau entre zones de disponibilité, ce qui permet de réduire les coûts de transfert de données et de réduire la latence réseau entre vos charges de travail.

Ce modèle constitue une approche alternative à la CloudFormation [AvailabilityZoneId propriété](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-availabilityzoneid) AWS.

## Conditions préalables et limitations
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-prereqs"></a>

**Conditions préalables**
+ Au moins deux comptes AWS actifs dans la même région AWS.
+ Évaluez le nombre de zones de disponibilité nécessaires pour répondre à vos besoins en matière de VPC dans la région.
+ Identifiez et enregistrez l'ID AZ pour chaque zone de disponibilité que vous devez prendre en charge. Pour plus d'informations à ce sujet, consultez [la section Zone IDs de disponibilité de vos ressources AWS](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html) dans la documentation d'AWS Resource Access Manager.  
+ Une liste ordonnée, séparée par des virgules, de votre AZ. IDs Par exemple, la première zone de disponibilité de votre liste est mappée comme`az1`, la deuxième zone de disponibilité est mappée comme`az2`, et cette structure de mappage continue jusqu'à ce que votre liste séparée par des virgules soit entièrement mappée. Il n'y a pas de nombre maximum d'AZ IDs qui peuvent être mappés. 
+ Le `az-mapping.yaml` fichier du référentiel de [mappage des zones de disponibilité GitHub multicomptes](https://github.com/aws-samples/multi-account-az-mapping/), copié sur votre machine locale

## Architecture
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-architecture"></a>

Le schéma suivant montre l'architecture déployée dans un compte et qui crée les valeurs de l'AWS Systems Manager Parameter Store. Ces valeurs du Parameter Store sont consommées lorsque vous créez un VPC dans le compte.

![\[Flux de travail pour créer les valeurs du magasin de paramètres de Systems Manager pour chaque ID AZ et nom de magasin AZ.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/f1168464-55f8-4efc-9b28-6a0cda668b9e.png)


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

1. La solution de ce modèle est déployée sur tous les comptes qui nécessitent une cohérence zonale pour un VPC. 

1. La solution crée des valeurs de magasin de paramètres pour chaque ID AZ et stocke le nouveau nom de zone de disponibilité. 

1. Le CloudFormation modèle AWS utilise le nom de la zone de disponibilité stocké dans chaque valeur du magasin de paramètres, ce qui garantit la cohérence zonale.

Le schéma suivant montre le flux de travail pour créer un VPC avec la solution de ce modèle.

 

![\[Workflow soumet un CloudFormation modèle pour créer un VPC avec l'AZ correct. IDs\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/9954e7f9-d6ce-44bd-af99-0c6bb7cd3cb0/images/cd859430-ac25-479f-b56a-21da24cddf21.png)


 

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

1. Soumettez un modèle pour créer un VPC à AWS. CloudFormation

1. AWS CloudFormation résout les valeurs du magasin de paramètres pour chaque zone de disponibilité et renvoie le nom de la zone de disponibilité pour chaque ID AZ.

1. Un VPC est créé avec la bonne AZ IDs requise pour la cohérence zonale.

Après avoir déployé la solution de ce modèle, vous pouvez créer des sous-réseaux qui font référence aux valeurs du Parameter Store. Si vous utilisez AWS CloudFormation, vous pouvez référencer les valeurs des paramètres de mappage de la zone de disponibilité à partir de l'exemple de code au format YAML suivant :

```
Resources:
    PrivateSubnet1AZ1: 
        Type: AWS::EC2::Subnet 
        Properties: 
            VpcId: !Ref VPC
            CidrBlock: !Ref PrivateSubnetAZ1CIDR
            AvailabilityZone: 
                !Join 
                    - ''
                    - - '{{resolve:ssm:/az-mapping/az1:1}}'
```

Cet exemple de code est contenu dans le `vpc-example.yaml ` fichier du référentiel de [mappage des zones de disponibilité GitHub multicomptes](https://github.com/aws-samples/multi-account-az-mapping/). Il explique comment créer un VPC et des sous-réseaux qui s'alignent sur les valeurs du Parameter Store pour garantir la cohérence zonale.

**Pile technologique**
+ AWS CloudFormation
+ AWS Lambda
+ AWS Systems Manager Parameter Store

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

Vous pouvez déployer ce modèle sur tous vos comptes AWS à l'aide d'AWS CloudFormation StackSets ou de la solution Customizations for AWS Control Tower. Pour plus d'informations, consultez [Working with AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) dans la documentation AWS Cloudformation et [Customizations for AWS Control Tower dans la](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/) bibliothèque de solutions AWS. 

Après avoir déployé le CloudFormation modèle AWS, vous pouvez le mettre à jour pour utiliser les valeurs du Parameter Store et le déployer VPCs dans des pipelines ou selon vos besoins. 

## Outils
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-tools"></a>

**Services AWS**
+ [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) vous CloudFormation aide à modéliser et à configurer vos ressources AWS, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie. Vous pouvez utiliser un modèle pour décrire vos ressources et leurs dépendances, puis les lancer et les configurer ensemble sous forme de pile, au lieu de gérer les ressources individuellement. Vous pouvez gérer et approvisionner des piles sur plusieurs comptes AWS et régions AWS.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui prend en charge l'exécution de code sans provisionner ni gérer de serveurs. Lambda exécute le code uniquement lorsque cela est nécessaire et se met à l’échelle automatiquement, qu’il s’agisse de quelques requêtes par jour ou de milliers de requêtes par seconde. Vous payez uniquement le temps de calcul que vous utilisez. Vous n'exposez aucuns frais quand votre code n'est pas exécuté.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) est une fonctionnalité d'AWS Systems Manager. Il fournit un stockage hiérarchique sécurisé pour la gestion des données de configuration et la gestion des secrets.

**Code**

Le code de ce modèle est fourni dans le référentiel de [mappage des zones de disponibilité GitHub multicomptes](https://github.com/aws-samples/multi-account-az-mapping/).

## Épopées
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-epics"></a>

### Déployez le fichier az-mapping.yaml
<a name="deploy-the-az-mapping-yaml-file"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déterminez les zones de disponibilité requises pour la région. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/use-consistent-availability-zones-in-vpcs-across-different-aws-accounts.html) | Architecte du cloud | 
| Déployez le fichier az-mapping.yaml. | Utilisez le `az-mapping.yaml` fichier pour créer une CloudFormation pile AWS dans tous les comptes AWS requis. Dans le `AZIds` paramètre, utilisez la liste séparée par des virgules que vous avez créée précédemment. Nous vous recommandons d'utiliser [AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) ou la [solution Customizations for AWS Control Tower](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/). | Architecte du cloud | 

### Déployez le VPCs dans vos comptes
<a name="deploy-the-vpcs-in-your-accounts"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Personnalisez les CloudFormation modèles AWS. | Lorsque vous créez les sous-réseaux à l'aide d'AWS CloudFormation, personnalisez les modèles pour utiliser les valeurs du magasin de paramètres que vous avez créées précédemment.Pour un exemple de modèle, consultez le `vpc-example.yaml` fichier dans le référentiel de [mappage des zones de disponibilité GitHub multicomptes](https://github.com/aws-samples/multi-account-az-mapping/). | Architecte du cloud | 
| Déployez le VPCs. | Déployez les CloudFormation modèles AWS personnalisés dans vos comptes. Chaque VPC de la région possède alors une cohérence zonale dans les zones de disponibilité utilisées pour les sous-réseaux. | Architecte du cloud | 

## Ressources connexes
<a name="use-consistent-availability-zones-in-vpcs-across-different-aws-accounts-resources"></a>
+ [Zone de disponibilité IDs pour vos ressources AWS](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html) (documentation AWS Resource Access Manager)
+ [AWS::EC2::Subnet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html)( CloudFormation documentation AWS)

# Utiliser l'utilisateur IDs dans les politiques IAM pour le contrôle d'accès et l'automatisation
<a name="use-user-ids-iam-policies-access-control-automation"></a>

*Srinivas Ananda Babu et Ram Kandaswamy, Amazon Web Services*

## Résumé
<a name="use-user-ids-iam-policies-access-control-automation-summary"></a>

Ce modèle explique les pièges potentiels liés à l'utilisation de politiques basées sur le nom d'utilisateur dans Gestion des identités et des accès AWS (IAM), les avantages de l'utilisation de l'utilisateur IDs et la manière d'intégrer cette approche à l'automatisation. AWS CloudFormation 

Dans le AWS Cloud, le service IAM vous aide à gérer les identités des utilisateurs et le contrôle d'accès avec précision. Cependant, le recours aux noms d'utilisateur lors de la création de politiques IAM peut entraîner des risques de sécurité imprévus et des problèmes de contrôle d'accès. Par exemple, imaginez ce scénario : un nouvel employé, John Doe, rejoint votre équipe et vous créez un compte utilisateur IAM avec le nom d'utilisateur`j.doe`, qui lui accorde des autorisations par le biais de politiques IAM faisant référence à des noms d'utilisateur. Lorsque John quitte l'entreprise, le compte est supprimé. Le problème commence lorsqu'une nouvelle employée, Jane Doe, rejoint votre équipe et que le `j.doe` nom d'utilisateur est recréé. Les politiques existantes accordent désormais à Jane Doe les mêmes autorisations qu'à John Doe. Cela crée un véritable cauchemar en matière de sécurité et de conformité.

La mise à jour manuelle de chaque politique pour refléter les informations des nouveaux utilisateurs est un processus long et sujet aux erreurs, en particulier à mesure que votre organisation se développe. La solution consiste à utiliser un identifiant utilisateur unique et immuable. Lorsque vous créez un compte utilisateur IAM, AWS attribuez à l'utilisateur IAM un ID utilisateur unique (ou ID principal). Vous pouvez utiliser ces utilisateurs IDs dans vos politiques IAM pour garantir un contrôle d'accès cohérent et fiable qui n'est pas affecté par les modifications ou la réutilisation du nom d'utilisateur.

Par exemple, une politique IAM qui utilise un ID utilisateur peut ressembler à ceci :

```
{ 
    "Version": "2012-10-17",		 	 	  
    "Statement": [ 
        { 
            "Effect": "Allow", 
            "Action": "s3:ListBucket", 
            "Resource": "arn:aws:s3:::example-bucket", 
            "Principal": { "AWS": "arn:aws:iam::123456789012:user/abcdef01234567890" } 
        } 
      ] 
}
```

Les avantages de l'utilisation de l'utilisateur IDs dans les politiques IAM sont les suivants :
+ **Unicité.** IDs Les utilisateurs étant uniques Comptes AWS, ils fournissent une application d'autorisation correcte et cohérente.
+ **Immuabilité.** L'utilisateur IDs ne pouvant pas être modifié, ils fournissent un identifiant stable pour référencer les utilisateurs dans les politiques.
+ **Audit et conformité.** Services AWS Incluez souvent l'utilisateur IDs dans les journaux et les pistes d'audit, ce qui permet de retracer facilement les actions jusqu'à des utilisateurs spécifiques.
+ **Automatisation et intégration.** L'utilisation de scripts user IDs in AWS APIs ou d'automatisation garantit que les processus ne sont pas affectés par les changements de nom d'utilisateur. SDKs
+ **Pérennité.** L'utilisation de l'utilisateur IDs dans les politiques dès le départ peut éviter d'éventuels problèmes de contrôle d'accès ou des mises à jour importantes des politiques.

**Automation**

Lorsque vous utilisez des outils d'infrastructure en tant que code (IaC) tels que AWS CloudFormation les pièges des politiques IAM basées sur le nom d'utilisateur peuvent toujours poser problème. La ressource utilisateur IAM renvoie le nom d'utilisateur lorsque vous appelez la fonction `Ref` intrinsèque. À mesure que l'infrastructure de votre entreprise évolue, le cycle de création et de suppression de ressources, y compris les comptes utilisateur IAM, peut entraîner des problèmes de contrôle d'accès involontaires si vous réutilisez les noms d'utilisateur.

Pour résoudre ce problème, nous vous recommandons d'intégrer l'utilisateur IDs dans vos CloudFormation modèles. Cependant, il peut être difficile IDs d'obtenir un utilisateur à cette fin. C'est là que les ressources personnalisées peuvent être utiles. Vous pouvez utiliser des ressources CloudFormation personnalisées pour étendre les fonctionnalités du service en intégrant des services externes AWS APIs ou en les intégrant. En créant une ressource personnalisée qui récupère l'ID utilisateur d'un utilisateur IAM donné, vous pouvez le rendre disponible dans vos CloudFormation modèles. Cette approche rationalise le processus de référencement des utilisateurs IDs et garantit que vos flux de travail d'automatisation restent robustes et pérennes.

## Conditions préalables et limitations
<a name="use-user-ids-iam-policies-access-control-automation-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS
+ Rôle IAM permettant à un administrateur du cloud d'exécuter le modèle CloudFormation 

**Limites**
+ 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="use-user-ids-iam-policies-access-control-automation-architecture"></a>

**Architecture cible**

Le schéma suivant montre comment CloudFormation utilise une ressource personnalisée sauvegardée par AWS Lambda pour récupérer l'ID utilisateur IAM.

![\[Obtenir l'ID utilisateur IAM à l'aide d'une ressource CloudFormation personnalisée.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/71698647-274e-4911-92f0-549e444b53f6/images/7e507df4-f597-499e-bd5b-6d7a55e64146.png)


**Automatisation et évolutivité**

Vous pouvez utiliser le CloudFormation modèle plusieurs fois pour différents Régions AWS comptes. Vous ne devez l'exécuter qu'une seule fois dans chaque région ou compte.

## Outils
<a name="use-user-ids-iam-policies-access-control-automation-tools"></a>

**Services AWS**
+ [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) — Gestion des identités et des accès AWS (IAM) est un service Web qui vous permet de contrôler en toute sécurité l'accès aux AWS ressources. Vous pouvez utiliser IAM pour contrôler les personnes qui s’authentifient (sont connectées) et sont autorisées (disposent d’autorisations) à utiliser des ressources.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)— vous AWS CloudFormation aide à modéliser et à configurer vos AWS ressources afin que vous puissiez passer moins de temps à gérer ces ressources et plus de temps à vous concentrer sur les applications qui s'exécutent sur AWS. Vous créez un modèle qui décrit les AWS ressources que vous souhaitez, et vous vous CloudFormation occupez de leur provisionnement et de leur configuration.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)— AWS Lambda est un service de calcul qui prend en charge l'exécution de code sans provisionner ni gérer de serveurs. Lambda exécute le code uniquement lorsque cela est nécessaire et se met à l’échelle automatiquement, qu’il s’agisse de quelques requêtes par jour ou de milliers de requêtes par seconde. 

## Bonnes pratiques
<a name="use-user-ids-iam-policies-access-control-automation-best-practices"></a>

Si vous partez de zéro ou si vous planifiez un nouveau déploiement, nous vous recommandons vivement de recourir à la gestion centralisée [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)des utilisateurs. IAM Identity Center s'intègre à vos fournisseurs d'identité existants (tels qu'Active Directory ou Okta) pour fédérer les identités des utilisateurs AWS, ce qui élimine le besoin de créer et de gérer directement des utilisateurs IAM. Cette approche garantit non seulement un contrôle d'accès cohérent, mais simplifie également la gestion du cycle de vie des utilisateurs et contribue à améliorer la sécurité et la conformité dans votre AWS environnement.

## Épopées
<a name="use-user-ids-iam-policies-access-control-automation-epics"></a>

### Valider les autorisations
<a name="validate-permissions"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Validez votre rôle Compte AWS et celui d'IAM. | Vérifiez que vous disposez d'un rôle IAM autorisé à déployer des CloudFormation modèles dans votre Compte AWS.Si vous prévoyez d'utiliser la console AWS CLI au lieu de la CloudFormation console pour déployer le modèle lors de la dernière étape de cette procédure, vous devez également configurer des informations d'identification temporaires pour exécuter des AWS CLI commandes. Pour obtenir des instructions, consultez la [documentation IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#using-temp-creds-sdk-cli). | Architecte du cloud | 

### Créez un CloudFormation modèle
<a name="build-a-cfnshort-template"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un CloudFormation modèle. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/use-user-ids-iam-policies-access-control-automation.html) | AWS DevOps, architecte du cloud | 
| Ajoutez un paramètre d'entrée pour le nom d'utilisateur. | Ajoutez le code suivant à la `Parameters` section du CloudFormation modèle :<pre>Parameters:<br />  NewIamUserName:<br />    Type: String<br />    Description: Unique username for the new IAM user<br /></pre>Ce paramètre invite l'utilisateur à saisir son nom d'utilisateur. | AWS DevOps, architecte du cloud | 
| Ajoutez une ressource personnalisée pour créer un utilisateur IAM. | Ajoutez le code suivant à la `Resources` section du CloudFormation modèle :<pre>Resources:<br />  rNewIamUser:<br />    Type: 'AWS::IAM::User'<br />    Properties:<br />      UserName: !Ref NewIamUserName<br /></pre>Ce code ajoute une CloudFormation ressource qui crée un utilisateur IAM avec le nom fourni par le `NewIamUserName` paramètre. | AWS DevOps, architecte du cloud | 
| Ajoutez un rôle d'exécution pour la fonction Lambda. | Au cours de cette étape, vous créez un rôle IAM qui accorde à une AWS Lambda fonction l'autorisation d'obtenir l'`UserId`IAM. Spécifiez les autorisations minimales requises suivantes pour que Lambda s'exécute :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/use-user-ids-iam-policies-access-control-automation.html)Pour obtenir des instructions sur la création d'un rôle d'exécution, consultez la documentation [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). Vous ferez référence à ce rôle à l'étape suivante, lorsque vous créerez la fonction Lambda. | Administrateur AWS, architecte cloud | 
| Ajoutez une fonction Lambda pour obtenir l'IAM unique. `UserId` | Dans cette étape, vous définissez une fonction Lambda avec un environnement d'exécution Python pour obtenir l'IAM unique. `UserId` Pour ce faire, ajoutez le code suivant dans la `Resources` section du CloudFormation modèle. `<<ROLENAME>>`Remplacez-le par le nom du rôle d'exécution que vous avez créé lors de la dernière étape.<pre>  GetUserLambdaFunction:<br />    Type: 'AWS::Lambda::Function'<br />    Properties:<br />      Handler: index.handler<br />      Role: <<ROLENAME>><br />      Timeout: 30<br />      Runtime: python3.11<br />      Code:<br />        ZipFile: |<br />          import cfnresponse, boto3<br />          def handler(event, context):<br />            try:<br />              print(event)<br />              user = boto3.client('iam').get_user(UserName=event['ResourceProperties']['NewIamUserName'])['User']<br />              cfnresponse.send(event, context, cfnresponse.SUCCESS, {'NewIamUserId': user['UserId'], 'NewIamUserPath': user['Path'], 'NewIamUserArn': user['Arn']})<br />            except Exception as e:<br />              cfnresponse.send(event, context, cfnresponse.FAILED, {'NewIamUser': str(e)})<br /></pre> | AWS DevOps, architecte du cloud | 
| Ajoutez une ressource personnalisée. | Ajoutez le code suivant à la `Resources` section du CloudFormation modèle :<pre>  rCustomGetUniqueUserId:<br />    Type: 'Custom::rCustomGetUniqueUserIdWithLambda'<br />    Properties:<br />      ServiceToken: !GetAtt GetUserLambdaFunction.Arn<br />      NewIamUserName: !Ref NewIamUserName<br /></pre>Cette ressource personnalisée appelle la fonction Lambda pour obtenir l'IAM. `UserID` | AWS DevOps, architecte du cloud | 
| Définissez les CloudFormation sorties. | Ajoutez le code suivant à la `Outputs` section du CloudFormation modèle :<pre>Outputs:<br />  NewIamUserId:<br />    Value: !GetAtt rCustomGetUniqueUserId.NewIamUserId<br /></pre>Cela affiche l'IAM du nouvel `UserID` utilisateur IAM. | AWS DevOps, architecte du cloud | 
| Enregistrez le modèle. | Enregistrez les modifications apportées au CloudFormation modèle. | AWS DevOps, architecte du cloud | 

### Déployer le CloudFormation modèle
<a name="deploy-the-cfnshort-template"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déployez le CloudFormation modèle. | Pour déployer le `get_unique_user_id.yaml` modèle à l'aide de la CloudFormation console, suivez les instructions de la [CloudFormation documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html).Vous pouvez également exécuter la AWS CLI commande suivante pour déployer le modèle :<pre>aws cloudformation create-stack \<br />--stack-name DemoNewUser \<br />--template-body file://get_unique_user_id.yaml \<br />--parameters ParameterKey=NewIamUserName,ParameterValue=demouser \<br />--capabilities CAPABILITY_NAMED_IAM</pre> | AWS DevOps, architecte du cloud | 

## Ressources connexes
<a name="use-user-ids-iam-policies-access-control-automation-resources"></a>
+ [Création d'une pile depuis la CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) (CloudFormation documentation)
+ [Ressources personnalisées soutenues par Lambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources-lambda.html) (documentation) CloudFormation 
+ [Identifiants uniques](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) (documentation IAM)
+ [Utiliser des informations d'identification temporaires avec AWS les ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) (documentation IAM)

# Validez le code Account Factory pour Terraform (AFT) localement
<a name="validate-account-factory-for-terraform-aft-code-locally"></a>

*Alexandru Pop et Michal Gorniak, Amazon Web Services*

## Résumé
<a name="validate-account-factory-for-terraform-aft-code-locally-summary"></a>

Ce modèle montre comment tester localement le code HashiCorp Terraform géré par AWS Control Tower Account Factory for Terraform (AFT). Terraform est un outil d'infrastructure en tant que code (IaC) qui vous aide à utiliser le code pour provisionner et gérer l'infrastructure et les ressources du cloud. AFT met en place un pipeline Terraform qui vous aide à approvisionner et à personnaliser plusieurs Comptes AWS entrées. AWS Control Tower

Lors du développement du code, il peut être utile de tester votre infrastructure Terraform en tant que code (IaC) localement, en dehors du pipeline AFT. Ce modèle montre comment effectuer les opérations suivantes :
+ Récupérez une copie locale du code Terraform stocké dans les AWS CodeCommit référentiels de votre compte de gestion AFT.
+ Simulez le pipeline AFT localement en utilisant le code récupéré.

Cette procédure peut également être utilisée pour exécuter des commandes Terraform qui ne font pas partie du pipeline AFT normal. Par exemple, vous pouvez utiliser cette méthode pour exécuter des commandes telles que `terraform validate``terraform plan`,`terraform destroy`, et`terraform import`.

## Conditions préalables et limitations
<a name="validate-account-factory-for-terraform-aft-code-locally-prereqs"></a>

**Conditions préalables**
+ Un environnement AWS multi-comptes actif qui utilise [AWS Control Tower](https://aws.amazon.com/controltower)
+ Un [environnement AFT](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html) entièrement déployé
+ AWS Command Line Interface (AWS CLI), [installé](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) et [configuré](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [AWS CLI assistant d'identification pour AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html), installé et configuré
+ Python 3.x
+ [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git), installé et configuré sur votre machine locale
+ `git-remote-commit`utilitaire, [installé et configuré](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-git-remote-codecommit.html#setting-up-git-remote-codecommit-install)
+ [Terraform](https://learn.hashicorp.com/collections/terraform/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS), installé et configuré (la version du package Terraform local doit correspondre à la version utilisée dans le déploiement AFT)

**Limites**
+ Ce modèle ne couvre pas les étapes de déploiement requises pour AWS Control Tower AFT ou tout autre module Terraform spécifique.
+ La sortie générée localement au cours de cette procédure n'est pas enregistrée dans les journaux d'exécution du pipeline AFT.

## Architecture
<a name="validate-account-factory-for-terraform-aft-code-locally-architecture"></a>

**Pile technologique cible**
+ Infrastructure AFT déployée dans le cadre d'un AWS Control Tower déploiement
+ Terraform
+ Git
+ AWS CLI version 2

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

Ce modèle montre comment invoquer localement le code Terraform pour les personnalisations de comptes globaux AFT dans un seul compte géré par AFT. Compte AWS Une fois votre code Terraform validé, vous pouvez l'appliquer aux comptes restants de votre environnement multi-comptes. Pour plus d'informations, voir [Réinvoquer les personnalisations](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html#aft-re-invoke-customizations) dans la AWS Control Tower documentation.

Vous pouvez également utiliser un processus similaire pour exécuter des personnalisations de compte AFT dans un terminal local. Pour invoquer localement le code Terraform à partir des personnalisations de compte AFT, clonez le **aft-account-customizations**référentiel plutôt que le **aft-global-account-customizations**référentiel depuis votre compte de CodeCommit gestion AFT.

## Outils
<a name="validate-account-factory-for-terraform-aft-code-locally-tools"></a>

**Services AWS**
+ [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.
+ [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.

**Autres services**
+ [HashiCorp Terraform](https://www.terraform.io/docs) est un outil d'infrastructure en tant que code (IaC) qui vous aide à utiliser le code pour provisionner et gérer l'infrastructure et les ressources du cloud.
+ [Git](https://git-scm.com/docs) est un système de contrôle de version distribué et open source.

**Code**

Voici un exemple de script bash qui peut être utilisé pour exécuter localement du code Terraform géré par AFT. Pour utiliser le script, suivez les instructions de la section [Epics](#validate-account-factory-for-terraform-aft-code-locally-epics) de ce modèle.

```
#! /bin/bash
# Version: 1.1 2022-06-24 Unsetting AWS_PROFILE since, when set, it interferes with script operation
#          1.0 2022-02-02 Initial Version
#
# Purpose: For use with AFT: This script runs the local copy of TF code as if it were running within AFT pipeline.
#        * Facilitates testing of what the AFT pipline will do 
#           * Provides the ability to run terraform with custom arguments (like 'plan' or 'move') which are currently not supported within the pipeline.
#
# © 2021 Amazon Web Services, Inc. or its affiliates. All Rights Reserved.
# This AWS Content is provided subject to the terms of the AWS Customer Agreement
# available at http://aws.amazon.com/agreement or other written agreement between
# Customer and either Amazon Web Services, Inc. or Amazon Web Services EMEA SARL or both.
#
# Note: Arguments to this script are passed directly to 'terraform' without parsing nor validation by this script.
#
# Prerequisites:
#    1. local copy of ct GIT repositories
#    2. local backend.tf and aft-providers.tf filled with data for the target account on which terraform is to be run
#       Hint: The contents of above files can be obtain from the logs of a previous execution of the AFT pipeline for the target account.
#    3. 'terraform' binary is available in local PATH
#    4. Recommended: .gitignore file containing 'backend.tf', 'aft_providers.tf' so the local copy of these files are not pushed back to git

readonly credentials=$(aws sts assume-role \
    --role-arn arn:aws:iam::$(aws sts get-caller-identity --query "Account" --output text ):role/AWSAFTAdmin \
    --role-session-name AWSAFT-Session \
    --query Credentials )

unset AWS_PROFILE
export AWS_ACCESS_KEY_ID=$(echo $credentials | jq -r '.AccessKeyId')
export AWS_SECRET_ACCESS_KEY=$(echo $credentials | jq -r '.SecretAccessKey')
export AWS_SESSION_TOKEN=$(echo $credentials | jq -r '.SessionToken')
terraform "$@"
```

## Épopées
<a name="validate-account-factory-for-terraform-aft-code-locally-epics"></a>

### Enregistrez l'exemple de code dans un fichier local
<a name="save-the-example-code-as-a-local-file"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Enregistrez l'exemple de code dans un fichier local. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrateur AWS | 
| Rendez l'exemple de code exécutable. | Ouvrez une fenêtre de terminal et authentifiez-vous dans votre compte de gestion AWS AFT en effectuant l'une des opérations suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)Votre organisation peut également disposer d'un outil personnalisé pour fournir des informations d'authentification à votre AWS environnement. | Administrateur AWS | 
| Vérifiez correctement l'accès au compte de gestion AFT Région AWS. | Assurez-vous d'utiliser la même session de terminal que celle avec laquelle vous vous êtes authentifié sur votre compte de gestion AFT.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrateur AWS | 
| Créez un nouveau répertoire local pour stocker le code du référentiel AFT. | Au cours de la même session de terminal, exécutez les commandes suivantes :<pre>mkdir my_aft <br />cd my_aft</pre> | Administrateur AWS | 
| Clonez le code du référentiel AFT distant. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrateur AWS | 

### Créez les fichiers de configuration Terraform requis pour que le pipeline AFT s'exécute localement
<a name="create-the-terraform-configuration-files-required-for-the-aft-pipeline-to-run-locally"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Ouvrez un pipeline AFT déjà exécuté et copiez les fichiers de configuration Terraform dans un dossier local. | Les fichiers `aft-providers.tf` de configuration `backend.tf` et créés dans cette épopée sont nécessaires au fonctionnement local du pipeline AFT. Ces fichiers sont créés automatiquement dans le pipeline AFT basé sur le cloud, mais doivent être créés manuellement pour que le pipeline s'exécute localement. L'exécution locale du pipeline AFT nécessite un ensemble de fichiers représentant l'exécution du pipeline en un seul Compte AWS.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)**Exemple d'instruction backend.tf générée automatiquement**<pre>## Autogenerated backend.tf ##<br />## Updated on: 2022-05-31 16:27:45 ##<br />terraform {<br />  required_version = ">= 0.15.0"<br />  backend "s3" {<br />    region         = "us-east-2"<br />    bucket         = "aft-backend-############-primary-region"<br />    key            = "############-aft-global-customizations/terraform.tfstate"<br />    dynamodb_table = "aft-backend-############"<br />    encrypt        = "true"<br />    kms_key_id     = "########-####-####-####-############"<br />    role_arn       = "arn:aws:iam::#############:role/AWSAFTExecution"<br />  }<br />}</pre>****Les `aft-providers.tf` fichiers `backend.tf` et sont liés à un déploiement et à un dossier AFT spécifiques Compte AWS. Ces fichiers sont également différents selon qu'ils se trouvent ou non dans le **aft-account-customizations**référentiel **aft-global-customizations**and au sein du même déploiement AFT. Assurez-vous de générer les deux fichiers à partir de la même liste d'environnements d'exécution. | Administrateur AWS | 

### Exécutez le pipeline AFT localement en utilisant l'exemple de script bash
<a name="run-the-aft-pipeline-locally-by-using-the-example-bash-script"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Implémentez les modifications de configuration Terraform que vous souhaitez valider. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrateur AWS | 
| Exécutez le `ct_terraform.sh` script et examinez le résultat. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)** **[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) | Administrateur AWS | 

### Transférez vos modifications de code local vers le référentiel AFT
<a name="push-your-local-code-changes-back-to-the-aft-repository"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Ajoutez des références aux `aft-providers.tf` fichiers `backend.tf` et à un `.gitignore` fichier. | Ajoutez les `aft-providers.tf` fichiers `backend.tf`**** et que vous avez créés à un `.gitignore` fichier en exécutant les commandes suivantes :<pre>echo backend.tf >> .gitignore<br />echo aft-providers.tf >>.gitignore</pre>Le déplacement des fichiers vers le `.gitignore`**** fichier garantit qu'ils ne sont pas validés et renvoyés vers le référentiel AFT distant. | Administrateur AWS | 
| Validez et transférez vos modifications de code dans le référentiel AFT distant. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html)Les modifications de code que vous introduisez en suivant cette procédure jusqu'à présent ne sont appliquées qu'à une Compte AWS seule. | Administrateur AWS | 

### Déployez les modifications sur plusieurs comptes
<a name="roll-out-the-changes-to-multiple-accounts"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Appliquez les modifications à tous vos comptes gérés par AFT. | Pour appliquer les modifications à plusieurs Comptes AWS options gérées par AFT, suivez les instructions de la section [Réinvoquer les personnalisations](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html#aft-re-invoke-customizations) dans la AWS Control Tower documentation. | Administrateur AWS | 

# Plus de modèles
<a name="infrastructure-more-patterns-pattern-list"></a>

**Topics**
+ [Ajoutez HA à Oracle PeopleSoft sur Amazon RDS Custom à l'aide d'une réplique en lecture](add-ha-to-oracle-peoplesoft-on-amazon-rds-custom-by-using-a-read-replica.md)
+ [Auditez automatiquement les groupes de AWS sécurité qui autorisent l'accès depuis des adresses IP publiques](audit-security-groups-access-public-ip.md)
+ [Automatisez la création de comptes en utilisant l'accélérateur Landing Zone sur AWS](automate-account-creation-lza.md)
+ [Automatisez l'ajout ou la mise à jour d'entrées de registre Windows à l'aide d'AWS Systems Manager](automate-adding-or-updating-windows-registry-entries-using-aws-systems-manager.md)
+ [Automatisez l'évaluation des ressources AWS](automate-aws-resource-assessment.md)
+ [Automatisez le déploiement du portefeuille et des produits AWS Service Catalog à l'aide d'AWS CDK](automate-aws-service-catalog-portfolio-and-product-deployment-by-using-aws-cdk.md)
+ [Automatisez le basculement et le retour en arrière entre régions à l'aide de DR Orchestrator Framework](automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.md)
+ [Automatisez la suppression des AWS CloudFormation piles et des ressources associées](automate-deletion-cloudformation-stacks-associated-resources.md)
+ [Automatisez l'ingestion et la visualisation des métriques personnalisées Amazon MWAA sur Amazon Managed Grafana à l'aide de Terraform](automate-ingestion-and-visualization-of-amazon-mwaa-custom-metrics.md)
+ [Automatisez la configuration de RabbitMQ dans Amazon MQ](automate-rabbitmq-configuration-in-amazon-mq.md)
+ [Automatisez le déploiement des lacs de AWS Supply Chain données dans une configuration à référentiels multiples](automate-the-deployment-of-aws-supply-chain-data-lakes.md)
+ [Automatisez la réplication des instances Amazon RDS sur Comptes AWS](automate-the-replication-of-amazon-rds-instances-across-aws-accounts.md)
+ [Associez automatiquement une politique gérée par AWS pour Systems Manager aux profils d' EC2 instance à l'aide de Cloud Custodian et d'AWS CDK](automatically-attach-an-aws-managed-policy-for-systems-manager-to-ec2-instance-profiles-using-cloud-custodian-and-aws-cdk.md)
+ [Créez automatiquement des CI/CD pipelines et des clusters Amazon ECS pour les microservices à l'aide d'AWS CDK](automatically-build-ci-cd-pipelines-and-amazon-ecs-clusters-for-microservices-using-aws-cdk.md)
+ [Détectez automatiquement les modifications et lancez différents CodePipeline pipelines pour un monorepo dans CodeCommit](automatically-detect-changes-and-initiate-different-codepipeline-pipelines-for-a-monorepo-in-codecommit.md)
+ [Créez un pipeline de données pour ingérer, transformer et analyser les données Google Analytics à l'aide du kit de AWS DataOps développement](build-a-data-pipeline-to-ingest-transform-and-analyze-google-analytics-data-using-the-aws-dataops-development-kit.md)
+ [Créez un PAC de serveur Micro Focus Enterprise avec Amazon EC2 Auto Scaling et Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Créez et envoyez des images Docker vers Amazon ECR à l'aide d' GitHub Actions et de Terraform](build-and-push-docker-images-to-amazon-ecr-using-github-actions-and-terraform.md)
+ [Créez une zone AWS d'atterrissage qui inclut MongoDB Atlas](build-aws-landing-zone-that-includes-mongodb-atlas.md)
+ [Centralisez la gestion des clés d'accès IAM dans AWS Organizations à l'aide de Terraform](centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.md)
+ [Centralisez la distribution des packages logiciels dans AWS Organizations à l'aide de Terraform](centralize-software-package-distribution-in-aws-organizations-by-using-terraform.md)
+ [Configurez la journalisation des appels de modèles dans Amazon Bedrock en utilisant AWS CloudFormation](configure-bedrock-invocation-logging-cloudformation.md)
+ [Configurer le routage en lecture seule dans les groupes de disponibilité Always On dans SQL Server sur AWS](configure-read-only-routing-in-an-always-on-availability-group-in-sql-server-on-aws.md)
+ [Créez un portail pour les micro-frontends en utilisant AWS Amplify Angular et Module Federation](create-amplify-micro-frontend-portal.md)
+ [Créez un cadre d'orchestration des ressources piloté par API à l'aide GitHub d'Actions et de Terragrunt](create-an-api-driven-resource-orchestration-framework-using-github-actions-and-terragrunt.md)
+ [Création d'une EventBridge connexion Amazon entre comptes au sein d'une organisation](create-cross-account-amazon-eventbridge-connection-organization.md)
+ [Créez automatiquement des pipelines CI dynamiques pour les projets Java et Python](create-dynamic-ci-pipelines-for-java-and-python-projects-automatically.md)
+ [Déployez une API Amazon API Gateway sur un site Web interne à l'aide de points de terminaison privés et d'un Application Load Balancer](deploy-an-amazon-api-gateway-api-on-an-internal-website-using-private-endpoints-and-an-application-load-balancer.md)
+ [Déployez et gérez AWS Control Tower les contrôles en utilisant AWS CDK et CloudFormation](deploy-and-manage-aws-control-tower-controls-by-using-aws-cdk-and-aws-cloudformation.md)
+ [Déployez et gérez les AWS Control Tower contrôles à l'aide de Terraform](deploy-and-manage-aws-control-tower-controls-by-using-terraform.md)
+ [Déployez des CloudWatch canaris Synthetics à l'aide de Terraform](deploy-cloudwatch-synthetics-canaries-by-using-terraform.md)
+ [Déployez un cluster CockroachDB dans Amazon EKS à l'aide de Terraform](deploy-cockroachdb-on-eks-using-terraform.md)
+ [Déployez un système de fichiers Lustre pour un traitement des données performant à l'aide de Terraform et DRA](deploy-lustre-file-system-for-high-performance-data-processing-with-terraform-dra.md)
+ [Déployez un cas d'utilisation de RAG AWS en utilisant Terraform et Amazon Bedrock](deploy-rag-use-case-on-aws.md)
+ [Déployez des ressources dans une AWS Wavelength zone à l'aide de Terraform](deploy-resources-wavelength-zone-using-terraform.md)
+ [Déployez des instances de cluster de basculement SQL Server sur Amazon EC2 et Amazon à l'aide FSx de Terraform](deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.md)
+ [Déployez les automatisations de sécurité pour la AWS WAF solution à l'aide de Terraform](deploy-the-security-automations-for-aws-waf-solution-by-using-terraform.md)
+ [Détectez les instances de base de données Amazon RDS et Aurora dont les certificats CA expirent](detect-rds-instances-expiring-certificates.md)
+ [Documentez la conception de votre zone de landing zone AWS](document-your-aws-landing-zone-design.md)
+ [Exportez les rapports AWS Backup de l'ensemble d'une organisation dans AWS Organizations sous forme de fichier CSV](export-aws-backup-reports-from-across-an-organization-in-aws-organizations-as-a-csv-file.md)
+ [Générez des recommandations personnalisées et reclassées à l'aide d'Amazon Personalize](generate-personalized-and-re-ranked-recommendations-using-amazon-personalize.md)
+ [Gérez les ensembles d'autorisations pour plusieurs comptes en utilisant Account Factory pour Terraform](govern-permission-sets-aft.md)
+ [Identifiez et alertez lorsque les ressources Amazon Data Firehose ne sont pas chiffrées à l'aide d'une clé AWS KMS](identify-and-alert-when-amazon-data-firehose-resources-are-not-encrypted-with-an-aws-kms-key.md)
+ [Implémentez Account Factory for Terraform (AFT) en utilisant un pipeline bootstrap](implement-account-factory-for-terraform-aft-by-using-a-bootstrap-pipeline.md)
+ [Implémentez la gestion des versions d'API basée sur les chemins en utilisant des domaines personnalisés dans Amazon API Gateway](implement-path-based-api-versioning-by-using-custom-domains.md)
+ [Installation de l'agent SSM sur les nœuds de travail Amazon EKS à l'aide de Kubernetes DaemonSet](install-ssm-agent-on-amazon-eks-worker-nodes-by-using-kubernetes-daemonset.md)
+ [Installez l'agent SSM et l' CloudWatch agent sur les nœuds de travail Amazon EKS à l'aide de preBootstrapCommands](install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands.md)
+ [Gérez les ensembles AWS IAM Identity Center d'autorisations sous forme de code en utilisant AWS CodePipeline](manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.md)
+ [Gérez les ensembles AWS d'autorisations de manière dynamique à l'aide de Terraform](manage-aws-permission-sets-dynamically-by-using-terraform.md)
+ [Gérez les produits AWS Service Catalog dans plusieurs comptes AWS et régions AWS](manage-aws-service-catalog-products-in-multiple-aws-accounts-and-aws-regions.md)
+ [Gérez les applications de conteneur sur site en configurant Amazon ECS Anywhere avec le kit AWS CDK](manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk.md)
+ [Gérez AWS Organizations les politiques sous forme de code en utilisant AWS CodePipeline Amazon Bedrock](manage-organizations-policies-as-code.md)
+ [Migrer des enregistrements DNS en masse vers une zone hébergée privée Amazon Route 53](migrate-dns-records-in-bulk-to-an-amazon-route-53-private-hosted-zone.md)
+ [Migrer Oracle PeopleSoft vers Amazon RDS Custom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Migrez les systèmes RHEL BYOL vers des instances incluses dans une licence AWS à l'aide d'AWS MGN](migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.md)
+ [Surveillez les ElastiCache clusters Amazon pour le chiffrement au repos](monitor-amazon-elasticache-clusters-for-at-rest-encryption.md)
+ [Surveillez l'activité des applications à l'aide de CloudWatch Logs Insights](monitor-application-activity-by-using-cloudwatch-logs-insights.md)
+ [Surveillez les clusters SAP RHEL Pacemaker à l'aide des services AWS](monitor-sap-rhel-pacemaker-clusters-by-using-aws-services.md)
+ [Créez une architecture IPAM hiérarchique multirégionale à l'aide de AWS Terraform](multi-region-ipam-architecture.md)
+ [Optimisez les déploiements multicomptes sans serveur en utilisant les flux de travail et AWS CDK Actions GitHub](optimize-multi-account-serverless-deployments.md)
+ [Provisionner AWS Service Catalog des produits basés sur AWS CloudFormation des modèles à l'aide d' GitHub actions](provision-aws-service-catalog-products-using-github-actions.md)
+ [Fournissez des rôles IAM avec le moindre privilège en déployant une solution de distribution automatique de rôles](provision-least-privilege-iam-roles-by-deploying-a-role-vending-machine-solution.md)
+ [Supprimez les EC2 entrées Amazon Comptes AWS de l'autre côté AWS Managed Microsoft AD en utilisant l' AWS Lambda automatisation](remove-amazon-ec2-entries-across-aws-accounts-from-aws-managed-microsoft-ad.md)
+ [Supprimez EC2 les entrées Amazon dans le même Compte AWS formulaire AWS Managed Microsoft AD en utilisant l' AWS Lambda automatisation](remove-amazon-ec2-entries-in-the-same-aws-account-from-aws-managed-microsoft-ad.md)
+ [Transferts de fichiers sécurisés à l'aide de Transfer Family, Amazon Cognito et GuardDuty](secure-file-transfers.md)
+ [Envoyer une notification lors de la création d'un utilisateur IAM](send-a-notification-when-an-iam-user-is-created.md)
+ [Configuration d'un routeur cellulaire sans serveur pour une architecture cellulaire](serverless-cell-router-architecture.md)
+ [Configurez un CI/CD pipeline pour les charges de travail hybrides sur Amazon ECS Anywhere à l'aide d'AWS CDK et GitLab](set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab.md)
+ [Configuration d'une HA/DR architecture pour Oracle E-Business Suite sur Amazon RDS Custom avec une base de données de secours active](set-up-an-ha-dr-architecture-for-oracle-e-business-suite-on-amazon-rds-custom-with-an-active-standby-database.md)
+ [Configuration de la résolution DNS pour les réseaux hybrides dans un environnement multi-comptes AWS](set-up-dns-resolution-for-hybrid-networks-in-a-multi-account-aws-environment.md)
+ [Configurez une infrastructure multi-AZ pour un SQL Server Always On FCI à l'aide d'Amazon FSx](set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.md)
+ [Configuration de la fonctionnalité Oracle UTL\$1FILE sur Aurora compatible avec PostgreSQL](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Simplifiez l'authentification des applications avec le protocole TLS mutuel dans Amazon ECS en utilisant Application Load Balancer](simplify-application-authentication-with-mutual-tls-in-amazon-ecs.md)
+ [Simplifiez la gestion des certificats privés en utilisant AWS Private CA et AWS RAM](simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram.md)
+ [Rationalisez les flux de travail d'apprentissage automatique, du développement local aux expériences évolutives en utilisant l' SageMaker IA et Hydra](streamline-machine-learning-workflows-by-using-amazon-sagemaker.md)
+ [Marquez automatiquement les pièces jointes à Transit Gateway à l'aide d'AWS Organizations](tag-transit-gateway-attachments-automatically-using-aws-organizations.md)
+ [Rôles de transition pour une PeopleSoft application Oracle sur Amazon RDS Custom for Oracle](transition-roles-for-an-oracle-peoplesoft-application-on-amazon-rds-custom-for-oracle.md)
+ [Utilisez Amazon Q Developer comme assistant de codage pour augmenter votre productivité](use-q-developer-as-coding-assistant-to-increase-productivity.md)