Amazon DOP-C02: Infrastructure en tant que code et gestion de la configuration — Guide d'étude

Fait partie du AWS DevOps Engineer Professional DOP-C02 — Guide d’étude. Entraînez-vous avec des réponses vérifiées dans le centre d’examens Amazon, ou passez des tests chronométrés sur ExamRoll.io.

Vue d’ensemble

L’Infrastructure as Code (IaC) et la gestion de configuration sur AWS permettent un provisionnement et une configuration reproductibles, auditables et gouvernés de l’infrastructure et des applications. CloudFormation et l’AWS Cloud Development Kit (CDK) décrivent les ressources de manière déclarative ou via du code qui est synthétisé en CloudFormation. Des couches de configuration telles qu’AWS OpsWorks et AWS Systems Manager appliquent et rapportent l’état désiré sur les instances à travers les parcs EC2 et hybrides. Les secrets, les paramètres et la création d’images (image-baking) complètent le cycle de vie, permettant des déploiements immuables et sécurisés à grande échelle.

Piles CloudFormation, contrôle des changements et gouvernance

Les piles (stacks) CloudFormation sont l’unité de déploiement. Concevez les piles en fonction des limites de cycle de vie et de la propriété pour minimiser le rayon d’impact (blast radius). Utilisez les paramètres avec parcimonie et préférez des valeurs par défaut bien définies (opinionated defaults) avec des mappages ou des recherches SSM. Exportez et importez uniquement des valeurs stables et partagées via les Outputs et Fn::ImportValue pour éviter un couplage fort.

Les piles imbriquées (nested stacks) encapsulent des composants réutilisables et permettent de conserver des modèles parents de petite taille. Une pile parente peut passer des paramètres aux piles enfants et consommer leurs sorties, permettant des architectures modulaires (par exemple, une pile imbriquée de réseau partagé consommée par une pile applicative). Maintenez les piles imbriquées focalisées sur une seule responsabilité (VPC, couche de données, couche applicative) et versionnez-les indépendamment.

Les StackSets déploient un modèle unique sur plusieurs comptes et Régions. Utilisez le modèle de permissions géré par le service avec AWS Organizations pour déployer automatiquement sur les UO (OUs) et inclure automatiquement les nouveaux comptes. Configurez les préférences d’opération (nombre maximum de comptes/Régions simultanés, tolérance aux pannes) pour contrôler le déploiement. Les substitutions de paramètres (parameter overrides) par compte ou par Région vous permettent d’adapter un modèle standard aux contraintes locales. Surveillez la dérive (drift) des StackSets et des instances de pile pour détecter les changements hors bande.

Les jeux de modifications (change sets) permettent des mises à jour sûres et vérifiables par un humain. Utilisez toujours CreateChangeSet et inspectez l’impact ressource par ressource, les remplacements et les pertes de données potentielles avant d’exécuter ExecuteChangeSet. Intégrez les jeux de modifications dans des pipelines automatisés pour des approbations contrôlées (gated approvals).

La détection de dérive (drift detection) valide que les ressources de la pile correspondent au modèle. Exécutez régulièrement la détection de dérive sur les piles et StackSets critiques ; comprenez que toutes les propriétés ne sont pas évaluées pour tous les types de ressources (les propriétés non prises en charge sont signalées comme « non vérifiées »). Traitez la dérive comme un incident : investiguez, capturez le contexte et corrigez soit par une mise à jour de la pile, soit en codifiant la dérive et en la réappliquant.

Les politiques de pile (stack policies) sont des documents JSON qui protègent les ressources critiques lors des mises à jour. Refusez les mises à jour sur les ressources irremplaçables (par exemple, les bases de données de production, les zones Route 53) et utilisez StackPolicyDuringUpdateBody pour ouvrir temporairement une voie chirurgicale pour un changement spécifique, puis restaurez la politique plus stricte. Combinez avec la protection contre la terminaison et la DeletionPolicy (Retain/Snapshot) pour mettre en place des garde-fous (guardrails). Pour les ressources avec un état externe (buckets S3), planifiez les comportements de suppression. Si un bucket doit être vidé avant sa suppression, implémentez une ressource personnalisée pour purger les objets lors de la suppression de la pile.

AWS CDK et extensibilité de CloudFormation

L’AWS CDK modélise l’infrastructure dans des langages familiers (TypeScript, Python, Java, .NET, Go). Les Constructs sont les blocs de construction du CDK :

Une application CDK contient une ou plusieurs piles. Pendant l’exécution de cdk synth, l’application résout les recherches de contexte (par exemple, les ID de VPC), génère les assets et produit un modèle CloudFormation. Avant de déployer, cdk bootstrap crée les buckets d’assets et les rôles de l’environnement. Utilisez cdk diff pour prévisualiser les changements, puis cdk deploy pour soumettre les modèles et les assets ; le CDK utilise en interne les jeux de modifications et affichera et confirmera les changements sensibles à la sécurité (IAM ou remplacements de ressources). Taguez les piles et les ressources via les Aspects pour appliquer une politique de taggage à l’échelle de l’organisation. Lorsque les abstractions L2 sont insuffisantes, utilisez les échappatoires (escape hatches) (node.defaultChild) ou revenez aux constructs L1.

Les ressources personnalisées (custom resources) de CloudFormation étendent l’IaC à tout ce qui est accessible via des API. Une ressource personnalisée basée sur Lambda reçoit des événements Create, Update et Delete avec un RequestId, un PhysicalResourceId et des propriétés. La fonction doit :

Utilisez des rôles d’exécution IAM de moindre privilège pour la Lambda, incluez un backoff exponentiel sur les appels d’API, et corrélez les logs via le RequestId. Pour les opérations volumineuses ou de longue durée, envisagez d’utiliser Step Functions avec une ressource personnalisée qui attend un jeton d’exécution. Préférez le CloudFormation Registry pour des fournisseurs (providers) réutilisables et versionnés lorsque cela est applicable.

Secrets et paramètres dans l’Infrastructure as Code

Ne codez jamais de secrets en dur dans les modèles ou le code. Utilisez des références dynamiques pour résoudre les valeurs sensibles au moment du déploiement :

Les références dynamiques empêchent le stockage des secrets dans le modèle de pile ou les événements. Ne placez pas de secrets dans les Outputs ou les propriétés de ressources que CloudFormation journalise en texte clair. Accordez au rôle d’exécution de CloudFormation la permission de déchiffrer ou de récupérer les valeurs référencées, et limitez la portée des KMS CMK aux principaux qui ont besoin d’y accéder.

Parameter Store est idéal pour la configuration non secrète (indicateurs de fonctionnalités, ID d’AMI, points de terminaison). Utilisez des paramètres SSM versionnés pour créer des restaurations (rollbacks) sécurisées et des promotions atomiques entre les environnements. Dans le CDK, importez les valeurs avec ssm.StringParameter.fromStringParameterName ou fromSecureStringParameterAttributes pour les valeurs sécurisées, et intégrez les lectures de paramètres dans les user data ou les bootstraps d’application.

Secrets Manager est conçu pour les contrôles de cycle de vie, la rotation et l’audit. Intégrez la rotation avec les moteurs pris en charge (RDS, Aurora) ou des Lambdas personnalisées. Référencez les secrets au moment de l’exécution (runtime) plutôt que de les intégrer (baking) dans les AMI pour éviter la prolifération de matériel obsolète. Pour les charges de travail conteneurisées ou serverless, injectez les secrets via des variables d’environnement soutenues par des références Secrets Manager ou montez-les via les secrets ECS/TaskDefinition ; effectuez la rotation avec un temps d’arrêt minimal en utilisant des pools de connexions à court TTL et des tentatives (retries).

Gestion de la Configuration et Infrastructure Immuable

AWS OpsWorks fournit une gestion de configuration prescriptive. OpsWorks Stacks utilise des cookbooks Chef et des événements de cycle de vie (Setup, Configure, Deploy, Undeploy, Shutdown) pour orchestrer la configuration et les déploiements d’applications, et prend en charge l’auto-réparation avec des bilans de santé qui arrêtent/démarrent ou remplacent les instances. Historiquement, OpsWorks proposait également des services gérés Chef Automate et Puppet Enterprise ; aujourd’hui, de nombreuses équipes se standardisent sur Systems Manager pour l’orchestration basée sur des agents ou gèrent elles-mêmes des plans de contrôle Ansible/Chef/Puppet. Ansible n’est pas intégré nativement avec OpsWorks ; à la place, utilisez Systems Manager State Manager pour exécuter des playbooks, ou AWX/Ansible Automation Platform avec la connectivité SSM Session Manager et l’inventaire dynamique EC2.

AWS Systems Manager est le plan de contrôle moderne pour la configuration hybride :

undefined

,

undefined

,

undefined

et des documents personnalisés pour faire converger la configuration. Paramétrez les associations et ciblez par tags pour des changements à l’échelle du parc.

L’infrastructure immuable élimine la dérive et accélère les retours en arrière (rollbacks). EC2 Image Builder codifie les pipelines d’images avec :

Ajoutez des composants de test pour valider les référentiels CIS, la santé des agents (SSM/CloudWatch) et les tests de fumée applicatifs. Versionnez les images et étiquetez-les avec des tags sémantiques. Publiez les ID d’AMI dans Parameter Store (par exemple, /app/frontend/ami) et référencez-les dans les modèles de lancement Auto Scaling. Déployez avec des stratégies de type rolling ou blue/green ; remplacez les instances au lieu d’appliquer des correctifs sur place pour préserver l’immuabilité. Intégrez les analyses de vulnérabilités (Amazon Inspector) dans les portes de promotion du pipeline. N’intégrez pas de secrets dans les images ; récupérez-les au démarrage via l’Instance Metadata Service v2 et des références SSM/Secrets Manager.

Scénario de Problème Pratique

Capital One doit standardiser les déploiements multi-comptes et multi-régions pour une plateforme destinée aux clients, tout en appliquant une gouvernance stricte, une gestion des secrets rigoureuse et en éliminant la dérive de configuration. L’environnement s’étend sur des centaines de comptes dans AWS Organizations, avec des contrôles stricts sur l’accès aux bases de données et le durcissement des systèmes d’exploitation.

  1. Modéliser l’infrastructure avec AWS CDK et la synthétiser en CloudFormation
  1. Distribuer les piles de réseau de base et de garde-fous via CloudFormation StackSets
  1. Protéger les ressources critiques avec des politiques de pile et des change sets
  1. Étendre l’IaC avec des ressources personnalisées (custom resources) basées sur Lambda
  1. Centraliser les secrets et la configuration avec Secrets Manager et Parameter Store
  1. Appliquer l’état désiré et la conformité via Systems Manager State Manager
  1. Adopter une infrastructure immuable avec EC2 Image Builder
  1. Orchestration et gouvernance du pipeline

Pipelines CI · Tous les domaines · Surveillance

Entraînez-vous sur ces questions → · Tests chronométrés sur ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Réussissez votre examen →

Parcourir Amazon →

Related guides

Accès tout-en-un

Un seul abonnement. Chaque examen.

Chaque plan débloque la recherche de réponses illimitée, les tests pratiques, les explications IA et la bibliothèque complète de ressources — en plus de 20 langues.

Mensuel
24.87
Just €0.83/day
Tout inclus :
  • Recherche de réponses illimitée
  • Tests pratiques illimités
  • Explications basées sur l'IA
  • Bibliothèque complète de ressources
  • Plus de 20 langues
  • Mises à jour de contenu hebdomadaires
  • Récompenses et parrainages
  • Support prioritaire
Commencer l'essai gratuit

Aucune carte de crédit requise*

Meilleur rapport qualité/prix
12 mois
179.87
Just €0.49/daySave 40%
Tout inclus :
  • Recherche de réponses illimitée
  • Tests pratiques illimités
  • Explications basées sur l'IA
  • Bibliothèque complète de ressources
  • Plus de 20 langues
  • Mises à jour de contenu hebdomadaires
  • Récompenses et parrainages
  • Support prioritaire
Commencer l'essai gratuit

Aucune carte de crédit requise*

✓ Plan gratuit inclus · ✓ Annulez à tout moment · ✓ Tous les plans débloquent le produit complet