Introduction

Effectué

Quand vous déployez votre infrastructure en tant que code, vous pouvez automatiser vos déploiements, améliorer votre confiance dans vos déploiements et augmenter l’efficacité du travail de votre équipe. Toutefois, ces avantages ne s’appliquent que si vous et votre équipe faites preuve de diligence et évitez d’apporter des modifications manuelles à votre environnement.

Dans ce module, vous découvrez comment appliquer la configuration et la gouvernance dans votre environnement et vos pipelines Azure, afin d’éviter les changements inattendus ou non contrôlés.

Notes

Le terme GitHub Actions pour un pipeline est workflow. Pour plus de simplicité, nous utiliserons le terme pipeline tout au long de ce module pour désigner les pipelines dans Azure Pipelines et les workflows dans GitHub Actions.

Exemple de scénario

Supposons que vous êtes administrateur Azure dans une entreprise de jouets. Au cours des derniers mois, vous et votre équipe avez converti vos déploiements Azure pour utiliser Bicep. Vous avez automatisé vos processus de déploiement à l’aide de pipelines. Quelques membres de votre équipe n’ont cependant pas encore adopté l’état d’esprit consistant à déployer toutes leurs modifications en tant que code.

Récemment, vous avez eu affaire à des situations où les personnes ont utilisé différents processus pour déployer sur Azure :

  1. Quelqu’un a apporté une modification directe à la configuration d’un site web à l’aide du portail Azure.
  2. Quelqu’un a déployé un nouveau fichier Bicep directement à partir de son propre ordinateur.
  3. Quelqu’un a copié les informations d’identification du principal de service d’un pipeline et les a utilisées pour accéder à l’environnement de production avec Azure CLI.
  4. Quelqu’un a commité un changement de fichier Bicep directement dans la branche main du dépôt, en contournant les révisions de demande de tirage.
  5. Quelqu’un a mis à jour un fichier Bicep en utilisant une demande de tirage. Les modifications ont été validées, testées et déployées dans la bonne séquence d’environnements.

Le diagramme suivant illustre ces scénarios :

Diagramme montrant plusieurs approches pour effectuer des modifications de la configuration Azure.

De tous ces changements, seul le numéro 5 a été déployé avec les outils d’automatisation que vous avez adoptés et selon le processus que votre équipe a mis en place. Aucune des autres modifications n’a causé de dommages, mais n’allez pas trop loin. Votre équipe a décidé d’appliquer votre processus afin que vous puissiez tirer le meilleur parti de votre investissement dans l’automatisation. Vous et votre équipe êtes convenus d’interdire les déploiements sur votre environnement Azure, sauf s’ils sont effectués via le processus approuvé :

Diagramme montrant plusieurs approches pour effectuer des modifications de la configuration Azure qui sont toutes bloquées, à l’exception du processus approuvé.

Qu’allez-vous faire ?

Dans ce module, vous découvrez comment forcer le déploiement de votre infrastructure Azure en tant que code. Vous examinez les contrôles que vous devez appliquer à chacun de vos environnements, et vous appliquez des stratégies de gouvernance et de sécurité pour protéger vos ressources Azure. Vous découvrez aussi comment sécuriser vos pipelines et vos dépôts en faisant en sorte que tous les aspects de votre configuration Azure suivent un processus recommandé et renforcé.

Conseil

Ce module présente de nombreuses fonctionnalités de sécurité. L’unité récapitulative contient des liens vers des informations supplémentaires sur chaque fonctionnalité.

Quel est l’objectif principal ?

À la fin de ce module, vous serez en mesure d’identifier les contrôles de sécurité et la gouvernance que vous devez appliquer à votre environnement, à vos dépôts et à vos pipelines Azure afin de déployer l’ensemble de votre infrastructure en tant que code.

Prérequis

Vous devez être familiarisé avec l’utilisation de :

  • Infrastructure en tant que code, avantages et technologies (comme Bicep ou Terraform).
  • Azure, dont le portail Azure, les abonnements, les groupes de ressources et les ressources.
  • Git pour gérer votre code, y compris les branches et les demandes de tirage.
  • Déploiements automatisés via GitHub Actions ou Azure Pipelines.