Zones d’atterrissage Azure - Considérations relatives à la conception du module Terraform

Cet article décrit les aspects importants à prendre en compte lors de l’utilisation du module Terraform de zones d’atterrissage Azure. Ce module fournit une approche raisonnée pour déployer et exploiter une plateforme Azure basée sur l’architecture conceptuelle de zone d’atterrissage Azure, telle que détaillée dans le Cloud Adoption Framework (CAF).

Terraform est un outil d’infrastructure en tant que code (IaC) open source, créé par HashiCorp, qui utilise une syntaxe déclarative pour déployer des ressources d’infrastructure. Il est extensible, offre une prise en charge multiplateforme, et permet une infrastructure immuable grâce à un suivi d’état.


Important

Le module est disponible sur Terraform Registry: Azure landing zones Terraform module. Vous pouvez l’utiliser comme point de départ et la configurer en fonction de vos besoins.

Notes

Il existe des implémentations pour plusieurs technologies de déploiement, notamment des modèles ARM et des modules Terraform basés sur le portail. Le choix de la technologie de déploiement ne devrait pas influencer le déploiement des zones d’atterrissage Azure.

Accélérateur ALZ Terraform

Pour démarrer rapidement le déploiement ALZ avec Terraform, vous pouvez tirer profit de l’Accélérateur ALZ Terraform conçu pour être utilisé comme modèle. Ce référentiel fournit une implémentation de prise en charge du module Terraform Zone d’atterrissage Azure avec des pipelines Azure DevOps et des workflows d’actions GitHub.

L’Accélérateur ALZ Terraform suit une approche à 3 phases :

  1. Conditions préalables : instructions pour configurer des abonnements et des informations d’identification.
  2. Démarrage : exécutez le script PowerShell pour générer l’environnement de livraison continue.
  3. Exécution : mettez à jour le module (le cas échéant) pour répondre aux besoins de votre organisation et déployer via la livraison continue.

Commencez par le guide d’utilisateur pas à pas pour que votre environnement Zone d’atterrissage Azure fonctionne.

Concevoir

Diagram showing the Azure landing zones conceptual architecture.

L’architecture tire parti de la nature configurable de Terraform, et comprend un module d’orchestration primaire. Ce module encapsule plusieurs fonctionnalités de l’architecture conceptuelle de zones d’atterrissage Azure. Vous pouvez déployer chaque fonctionnalité individuellement ou partiellement. Par exemple, vous pouvez déployer uniquement un réseau hub, Azure DDoS Protection, ou les ressources DNS. Dans ce cas, vous devez prendre en compte le fait que les fonctionnalités ont des dépendances.

L’architecture utilise une approche d’orchestrateur pour simplifier l’expérience de déploiement. Vous pouvez implémenter chaque fonctionnalité à l’aide d’une ou plusieurs instances de module dédiées chacune à une partie spécifique de l’architecture. Tout cela est possible avec la configuration correcte

Modules

Un concept essentiel dans Terraform est l’utilisation de modules. Les modules permettent d’organiser des déploiements en regroupements logiques. Ils permettent aussi d’améliorer la lisibilité de vos fichiers Terraform en encapsulant les détails complexes de votre déploiement. Vous pouvez également facilement réutiliser des modules pour différents déploiements.

La possibilité de réutiliser les modules offre un avantage réel lors de la définition et du déploiement de zones d’atterrissage. Elle permet d’utiliser des environnements reproductibles et cohérents dans le code, tout en réduisant l’effort nécessaire au déploiement à grande échelle.

L’implémentation Terraform des zones d’atterrissage Azure est fournie à l’aide d’un seul module qui agit comme une couche d’orchestration. La couche d’orchestration vous permet de sélectionner les ressources qui sont déployées et gérées à l’aide du module. Le module peut être utilisé plusieurs fois dans le même environnement pour déployer des ressources indépendamment les unes des autres. Cela peut être utile dans des organisations où différentes équipes sont responsables des différentes fonctionnalités ou collections de sous-ressources.

Couches et étapes

L’implémentation se concentre sur la hiérarchie de ressources centrale de l’architecture conceptuelle de zone d’atterrissage Azure. La conception est centrée sur les fonctionnalités suivantes :

  • Ressources de base
  • Ressources de gestion
  • Ressources de connectivité
  • Ressources d’identité

Le module regroupe les ressources dans ces fonctionnalités, car elles sont destinées à être déployées ensemble. Ces groupes forment des étapes logiques de l’implémentation.

Vous contrôlez le déploiement de chacune de ces fonctionnalités à l’aide d’indicateurs de fonctionnalité. Un avantage de cette approche réside dans la possibilité d’étoffer votre environnement de façon incrémentielle au fil du temps. Par exemple, vous pouvez commencer par un petit nombre de fonctionnalités. Vous pourrez ajouter les fonctionnalités restantes à une étape ultérieure lorsque vous serez prêt.

Ressources de base

La fonctionnalité Ressources de base du module s’aligne sur la zone de conception d’organisation des ressources du Cloud Adoption Framework. Elle déploie les ressources fondamentales de l’architecture conceptuelle pour les zones d’atterrissage Azure.

Diagram showing the core Azure landing zones architecture deployed by the Terraform module.

Archétypes

Un concept important au sein de la capacité des ressources de base est l’inclusion d’archétypes.

Les archétypes fournissent une approche réutilisable, basée sur du code, pour définir les définitions de stratégie, les définitions de jeu de stratégies, les attributions de stratégie, les définitions de rôle et les attributions de rôle à appliquer à une étendue donnée. Dans l’implémentation de Terraform, ces décisions sont encapsulées en tant que Définitions d’archétype.

Pour créer une zone d’atterrissage, des groupes d’administration sont associés à une définition d’archétype. Dans l’exemple ci-dessous pour une zone d’atterrissage d’entreprise, la configuration d’archétype a un pointeur vers la définition d’archétype « es_corp ». Cette définition contient toutes les configurations de stratégie et de rôle qui seront ajoutées à ce groupe d’administration.

  es_corp_landing_zones = {
    "contoso-corp" = {
      display_name               = "Corp"
      parent_management_group_id = "contoso-landing-zones"
      subscription_ids           = []
      archetype_config           = {
        archetype_id ="es_corp"
        parameters   = {}
        access_control = {}
    }
  }

Lorsque les archétypes intégrés ne correspondent pas à vos besoins, le module fournit des options pour créer des archétypes ou apporter des modifications à des archétypes existants.

Ressources de gestion

La fonctionnalité Ressources de gestion du module s’aligne sur la zone de conception de gestion du Cloud Adoption Framework. Cette fonctionnalité offre la possibilité de déployer des ressources de gestion et de surveillance dans la zone d’atterrissage de la plateforme de gestion.

Ressources de connectivité

La fonctionnalité Ressources de connectivité du module offre la possibilité de déployer les topologie et connectivité réseau de l’architecture conceptuelle pour les zones d’atterrissage Azure.

Ressources d’identité

La fonctionnalité Ressources d’identité du module s’aligne sur la zone de conception de gestion des identités et des accès Azure du Cloud Adoption Framework. Cette fonctionnalité offre la possibilité de configurer des stratégies sur la zone d’atterrissage de la plateforme d’identité.

Notes

Aucune autre ressource n’est déployée avec cette fonctionnalité. Lorsque la variable deploy_identity_resources est définie sur true, des affectations Azure Policy sont configurées pour protéger les ressources dans l’abonnement de la zone d’atterrissage de la plateforme d’identité.

Descriptions de module

Cette section fournit une vue d’ensemble générale des ressources déployées par ce module.

Couche Type(s) de ressource(s) Description Liens utiles
Core Groupes d'administration Les groupes d’administration sont les ressources du plus haut niveau dans un locataire Azure. Les groupes d’administration vous permettent de gérer plus facilement vos ressources. Vous pouvez appliquer une stratégie au niveau d’un groupe d’administration, dont hériteront les ressources de niveau inférieur. Plus précisément, vous pouvez appliquer les éléments suivants au niveau d’un groupe d’administration, dont hériteront les abonnements sous celui-ci :
  • Stratégies Azure
  • Attributions de rôles de contrôle d’accès en fonction du rôle (RBAC) Azure
  • Contrôle des coûts
Core Définitions de stratégie, affectations de stratégie et définitions d’ensemble de stratégies DeployIfNotExists (DINE) ou Modifier des stratégies permettent de s’assurer que les abonnements et ressources composant des zones d’atterrissage sont conformes. Les stratégies sont attribuées à des groupes d’administration via des affectations de stratégies. Les stratégies facilitent la gestion des zones d’atterrissage. Les définitions d’ensemble de stratégies regroupent des ensembles de stratégies.

Certains clients ne peuvent pas utiliser DINE ou Modifier des stratégies. Si vous êtes dans ce cas, consultez les Conseils du CAF sur les stratégies personnalisées.
Core Définitions de rôles et attributions de rôles Le contrôle d’accès en fonction du rôle (RBAC) simplifie la gestion des droits utilisateur au sein d’un système. Au lieu de gérer les droits des utilisateurs individuels, vous déterminez les droits requis pour différents rôles dans votre système. Un RBAC Azure comprend plusieurs rôles intégrés. Des définitions de rôles personnalisés vous permettent de créer des rôles personnalisés pour votre environnement.

La gestion des identités et des accès (IAM) est la principale limite de sécurité dans le cloud public. Un RBAC Azure vous permet d’effectuer des attributions de rôles intégrés ou de définitions de rôles personnalisés à des principaux de service, des identités gérées ou des groupes de sécurité dans des groupes d’administration et des abonnements.
Gestion Azure Monitor, Azure Automation et Microsoft Sentinel Azure Monitor, Azure Automation et Microsoft Sentinel vous permettent de surveiller et de gérer votre infrastructure et vos charges de travail. Azure Monitor est une solution qui vous permet de collecter, d’analyser et de manipuler la télémétrie de votre environnement.

Microsoft Sentinel est une solution SIEM (Gestion des informations et des événements de sécurité) native Cloud. Vous pouvez ainsi :
  • Collecter - Collecter des données dans votre infrastructure toute entière
  • Détecter - Détecter des menaces non détectées précédemment
  • Répondre - Répondre à des menaces légitimes avec une orchestration intégrée
  • Examiner - Examiner des menaces à l’aide de l’intelligence artificielle

Azure Automation est un système d’automatisation basé sur le cloud. Il inclut :
  • Gestion de la configuration - Inventaire et suivi des modifications pour les machines virtuelles Linux et Windows, et gestion de la configuration d’état souhaitée
  • Gestion des mises à jour - Évaluation de la conformité du système Windows et Linux, et création de déploiements planifiés pour respecter la conformité
  • Automatisation des processus - Automatisation des tâches de gestion
Connectivité Principaux types de ressources réseau répertoriés ici La topologie réseau est une considération clé dans les déploiements de zones d’atterrissage Azure. CAF se concentre sur deux approches de base de la mise en réseau :
  • Topologies basées sur Azure Virtual WAN
  • Topologies traditionnelles
Connectivité Protection DDoS dans Azure Les conseils en matière de zone d’atterrissage Azure recommandent d’activer Azure DDoS Network Protection. Ce service offre une protection clé en main contre les attaques DDoS.
Connectivité Zones DNS, Zones DNS privé et lien de réseau virtuel de zone DNS privé Vous pouvez déployer des zones DNS privé pour prendre en charge l’utilisation de points de terminaison privés. Un point de terminaison privé est une carte réseau à laquelle est attribuée une adresse IP privée de votre réseau virtuel. Vous pouvez utiliser l’adresse IP privée pour communiquer en toute sécurité avec les services qui prennent en charge Azure Private Link. Vous pouvez configurer des zones DNS privé pour résoudre le nom de domaine complet (FQDN) du service en l’adresse IP privée du point de terminaison privé.

Utilisation du module Terraform

Déploiement de ressources de base

Par défaut, le module déploie la hiérarchie suivante, qui est le jeu de base de groupes d’administration de zone d’atterrissage :

  • Root
    • Plateforme
      • Identité
      • Gestion
      • Connectivité
    • Zones d’atterrissage
    • Retiré
    • Bac à sable

Les groupes d’administration de zone d’atterrissage SAP, Corp et Online ne s’appliquant pas à tous, ils ne sont pas déployés par défaut. Les méthodes de déploiement sont les suivantes :

  1. À des fins de démonstration, vous pouvez définir la variable deploy_demo_landing_zones sur true afin de déployer les zones d’atterrissage SAP, Corp et Online
  2. À des fins de production, vous pouvez activer les groupes d’administration souhaités en définissant les variables suivantes sur true :
    • deploy_corp_landing_zones
    • deploy_online_landing_zones
    • deploy_sap_landing_zones
  3. Vous pouvez déployer vos propres groupes d’administration de zone d’atterrissage personnalisés en créant une définition de zone d’atterrissage personnalisée

Déploiement de ressources de gestion

Pour déployer les ressources de gestion, la variable deploy_management_resources doit être définie sur true, et la variable subscription_id_management sur l’ID de l’abonnement de gestion où les ressources doivent être déployées.

deploy_management_resources = true
subscription_id_management = <management subscription id>

Déploiement de ressources de connectivité

Déployer des ressources de connectivité fournit des conseils sur la façon de déployer ces topologies.

Déploiement de ressources d’identité

Pour déployer la fonctionnalité d’identité, la variable deploy_identity_resources doit être définie sur true, et la variable subscription_id_identity sur l’ID de l’abonnement d’identité où les stratégies doivent être configurées.

deploy_identity_resources = true
subscription_id_identity = <identity subscription id>

Personnalisation de l’implémentation de Terraform

Les implémentations de zone d’atterrissage Azure fournies dans le cadre du Cloud Adoption Framework répondent à un vaste éventail d’exigences et de cas d’usage. Toutefois, il existe souvent des scénarios où une personnalisation est requise en réponse à des besoins métier spécifiques.

Vous pouvez utiliser le module Terraform de zones d’atterrissage Azure comme base de votre déploiement personnalisé. Cela vous permet d’accélérer votre implémentation en éliminant la nécessité de partir de zéro en raison d’une modification requise spécifique excluant une option prête à l’emploi.

GitHub logo Les informations sur la personnalisation des modules sont disponibles dans le wiki de dépôt GitHub GitHub: Azure landing zones Terraform module - Wiki. Vous pouvez l’utiliser comme point de départ et la configurer en fonction de vos besoins.