Modulo Terraform zone di destinazione di Azure

Azure offre servizi nativi per la creazione delle zone di destinazione di Azure. Altri strumenti possono anche essere utili per questo sforzo. Uno strumento usato spesso da clienti e partner per distribuire le zone di destinazione è Terraform di HashiCorp.

La distribuzione delle risorse nelle zone di destinazione dell'applicazione non rientra nell'ambito del modulo. Le decisioni relative al metodo di distribuzione e agli strumenti sono destinate al team responsabile dell'applicazione.

Vedere Il modulo Terraform zone di destinazione di Azure offre un'implementazione rapida delle risorse della piattaforma necessarie per gestire Zone di destinazione di Azure su larga scala usando Terraform. Il modulo è progettato per semplificare la distribuzione della gerarchia, dei criteri e delle risorse dei gruppi di gestione nelle sottoscrizioni di connettività e gestione.

Prerequisiti

Se non si ha familiarità con Terraform e si vogliono informazioni sull'installazione e sull'uso, vedere Installare l'esercitazione su Terraform in HashiCorp Learn.

Per informazioni su come configurare il provider Terraform ed eseguire l'autenticazione con Azure, vedere Guide al provider AzureRM nel sito Web Terraform. Per informazioni su come configurare il provider per la distribuzione tra più sottoscrizioni, vedere la Pagina wiki configurazione provider .

Importanza dell'uso di moduli standard

Il riutilizzo dei componenti è un principio fondamentale dell'infrastruttura come codice. I moduli sono determinanti nella definizione di standard e coerenza nella distribuzione delle risorse all'interno degli ambienti e tra ambienti diversi.

Il modulo Terraform zone di destinazione di Azure viene pubblicato nei Terraform Registry e viene verificato da HashiCorp.

La distribuzione del modulo dal Registro Terraform fornisce:

  • Distribuzione accelerata delle zone di destinazione di Azure nell'ambiente in uso.
  • Percorso di aggiornamento testato alla versione più recente del modulo, insieme al controllo della versione strict.

Vantaggi offerti dall'uso del modulo

I vantaggi dell'uso del modulo Terraform zone di destinazione di Azure includono:

  • Gerarchia di risorse di base gestita ed estendibile per l'organizzazione della sottoscrizione tramite gruppi di gestione.
  • Governance e conformità della sicurezza scalabili tramite controlli IAM (Identity and Access Management) di Azure, con una vasta libreria di definizioni personalizzate pronte per l'assegnazione.
  • Applicazione dei criteri tra sottoscrizioni tramite l'ereditarietà del gruppo di gestione.
  • Risorse gestite per le zone di destinazione di gestione e connettività. Queste risorse forniscono:
    • Conformità ai criteri garantita tramite una stretta integrazione di risorse gestite dal modulo e assegnazioni di criteri corrispondenti.
    • Integrazione tra le risorse per ridurre il sovraccarico di gestione e offrire un'esperienza utente migliorata, ad esempio la creazione automatica di collegamenti di rete virtuale per Azure DNS privato.

Suggerimento

La libreria dei modelli viene aggiornata a livello di codice dal Repository GitHub di Azure/Enterprise-Scale . Per rimanere aggiornati con la configurazione, i criteri e i ruoli dell'archetipo più recenti, assicurarsi di usare la versione più recente del modulo.

Distribuzione risorse

È possibile configurare il modulo per distribuire set di risorse allineati alle aree di progettazione critiche seguenti nelle zone di destinazione di Azure. Personalizzare queste risorse per soddisfare i requisiti dell'organizzazione.

Categoria di risorse Area di progettazione critica
Risorse di base Sicurezza dell'organizzazione delle risorse
Governance della sicurezza
Governance
Risorse gestionali Gestione e monitoraggio
Risorse di connettività Topologia e connettività di rete
Risorse di identità Gestione delle identità e degli accessi

La creazione di queste funzionalità in un singolo modulo Terraform semplifica la compilazione e l'applicazione della coerenza nella piattaforma Azure quando si opera su larga scala.

Queste risorse sono allineate all'architettura concettuale delle zone di destinazione di Azure:

Diagramma dell'architettura concettuale della zona di destinazione di Azure.

È possibile distribuire queste risorse, tramite funzionalità, in più sottoscrizioni usando la Configurazione del provider nel blocco del modulo.

Le sezioni seguenti illustrano i tipi di risorsa e le opzioni di configurazione.

Risorse di base

La funzionalità di base di questo modulo distribuisce le basi architettura concettuale per le zone di destinazione di Azure, con particolare attenzione organizzazione delle risorse.

Diagramma dell'architettura concettuale della zona di destinazione di Azure, incentrata sulla gerarchia delle risorse di base.

Quando si abilita la distribuzione delle risorse principali (abilitata per impostazione predefinita), il modulo distribuisce e gestisce i tipi di risorse seguenti:

Risorsa Tipo di risorsa di Azure Tipo di risorsa di Terraform
Gruppi di gestione Microsoft.Management/managementGroups azurerm_management_group
Sottoscrizioni del gruppo di gestione Microsoft.Management/managementGroups/subscriptions azurerm_management_group
Assegnazioni di criteri Microsoft.Authorization/policyAssignments azurerm_management_group_policy_assignment
Definizioni dei criteri Microsoft.Authorization/policyDefinitions azurerm_policy_definition
Definizioni dei set di criteri Microsoft.Authorization/policySetDefinitions azurerm_policy_set_definition
Assegnazioni di ruoli Microsoft.Authorization/roleAssignments azurerm_role_assignment
Definizioni dei ruoli Microsoft.Authorization/roleDefinitions azurerm_role_definition

Il numero esatto di risorse create dal modulo dipende dalla configurazione del modulo. Per una configurazione predefinita, è possibile prevedere che il modulo crei circa 180 risorse.

Suggerimento

Nessuna di queste risorse viene distribuita nell'ambito della sottoscrizione, ma Terraform richiede comunque una sottoscrizione per stabilire una sessione autenticata con Azure. Per altre informazioni sull'autenticazione con Azure, vedere Provider di Azure: autenticazione nella documentazione di Azure.

Risorse gestionali

Il modulo offre un'opzione per abilitare la distribuzione di risorse di gestione e monitoraggioarchitettura concettuale per le zone di destinazione di Azure nella sottoscrizione specificata, come descritto nella Pagina wiki configurazione provider. Il modulo garantisce inoltre che la sottoscrizione specificata venga inserita nel gruppo di gestione corretto.

Diagramma dell'architettura concettuale della zona di destinazione di Azure, incentrata sulle risorse di gestione.

Quando si abilita la distribuzione delle risorse di gestione, il modulo distribuisce e gestisce i tipi di risorse seguenti (a seconda della configurazione):

Risorsa Tipo di risorsa di Azure Tipo di risorsa di Terraform
Gruppi di risorse Microsoft.Resources/resourceGroups azurerm_resource_group
Area di lavoro Log Analytics Microsoft.OperationalInsights/workspaces azurerm_log_analytics_workspace
Soluzioni di Log Analytics Microsoft.OperationsManagement/solutions azurerm_log_analytics_solution
Account di Automazione Microsoft.Automation/automationAccounts azurerm_automation_account
Servizio collegato di Log Analytics Microsoft.OperationalInsights/workspaces /linkedServices azurerm_log_analytics_linked_service

Oltre a distribuire le risorse precedenti, il modulo fornisce l'integrazione nativa nelle assegnazioni di criteri corrispondenti per garantire la conformità completa dei criteri.

Per altre informazioni su come usare questa funzionalità, vedere la pagina Wiki).

Risorse di connettività

Il modulo offre un'opzione per abilitare la distribuzione della topologia di rete e risorse di connettività architettura concettuale per le zone di destinazione di Azure nel contesto della sottoscrizione corrente. Garantisce inoltre che la sottoscrizione specificata venga inserita nel gruppo di gestione corretto.

Questa funzionalità consente la distribuzione di più reti hub basate su qualsiasi combinazione di topologia di rete di Azure tradizionale (hub e spoke) e rete WAN virtuale topologia di rete (gestita da Microsoft).

Il modulo può anche creare e collegare protezione di rete DDoS alle reti virtuali e gestire zone DNS pubbliche e private centralizzate.

Nota

Attualmente non è consigliabile usare la protezione IP DDoS nelle zone di destinazione di Azure e si consiglia di usare questa opzione in circostanze specifiche. Esaminare la documentazione del prodotto Sul confronto degli SKU di Protezione DDoS di Azure

Topologia di rete di Azure tradizionale (hub e spoke)

Il modulo può facoltativamente distribuire una o più reti hub basate sulla topologia di rete di Azure tradizionale (hub e spoke).

Diagramma dell'architettura concettuale della zona di destinazione di Azure, concentrandosi sulle risorse di connettività usando una topologia di rete di Azure tradizionale (hub e spoke).

Nota

Il modulo attualmente configura solo l'hub di rete e le risorse dipendenti per la sottoscrizione di connettività. Anche se è disponibile un'opzione per abilitare il peering di reti virtuali in uscita dall'hub allo spoke, gli utenti devono comunque avviare il peering da spoke a hub. Ciò è dovuto alle limitazioni del modo in cui il provider AzureRM è destinato a una sottoscrizione specifica per la distribuzione.

Quando si distribuiscono le risorse in base a una topologia di rete di Azure tradizionale (hub e spoke), il modulo distribuisce e gestisce i tipi di risorse seguenti (a seconda della configurazione):

Risorsa Tipo di risorsa di Azure Tipo di risorsa di Terraform
Gruppi di risorse Microsoft.Resources/resourceGroups azurerm_resource_group
Reti virtuali Microsoft.Network/virtualNetworks azurerm_virtual_network
Subnet Microsoft.Network/virtualNetworks/subnets azurerm_subnet
Gateway di rete virtuale Microsoft.Network/virtualNetworkGateways azurerm_virtual_network_gateway
Firewall di Azure Microsoft.Network/azureFirewalls azurerm_firewall
Indirizzi IP pubblici Microsoft.Network/publicIPAddresses azurerm_public_ip
Peering di rete virtuale Microsoft.Network/virtualNetworks/virtualNetworkPeerings azurerm_virtual_network_peering

Per altre informazioni su come usare questa funzionalità, vedere la pagina risorse di connettività wiki.

Topologia di rete WAN virtuale (gestita da Microsoft)

Il modulo può facoltativamente distribuire una o più reti hub in base alla topologia di rete rete WAN virtuale (gestita da Microsoft).

Diagramma dell'architettura concettuale della zona di destinazione di Azure, concentrandosi sulle risorse di connettività usando una topologia di rete rete WAN virtuale (Microsoft-managed).

Nota

A causa delle diverse funzionalità di rete WAN virtuale risorse di rete rispetto alle tradizionali, il peering per rete WAN virtuale spoke è bidirezionale quando si usa questa funzionalità.

Quando si distribuiscono le risorse in base a una topologia di rete rete WAN virtuale (gestita da Microsoft), il modulo distribuisce e gestisce i tipi di risorse seguenti (a seconda della configurazione):

Risorsa Tipo di risorsa di Azure Tipo di risorsa di Terraform
Gruppi di risorse Microsoft.Resources/resourceGroups azurerm_resource_group
Reti WAN virtuali Microsoft.Network/virtualWans azurerm_virtual_wan
Hub virtuali Microsoft.Network/virtualHubs azurerm_virtual_hub
Gateway ExpressRoute Microsoft.Network/expressRouteGateways azurerm_express_route_gateway
Gateway VPN Microsoft.Network/vpnGateways azurerm_vpn_gateway
Firewall di Azure Microsoft.Network/azureFirewalls azurerm_firewall
Criteri Firewall di Azure Microsoft.Network/firewallPolicies azurerm_firewall_policy
Connessioni hub virtuali Microsoft.Network/virtualHubs/hubVirtualNetworkConnections azurerm_virtual_hub_connection

Per altre informazioni su come usare questa funzionalità, vedere la pagina Resources wiki .For more information about to use this capability, see the Wiki: Deploy rete WAN virtuale Resources Deploy rete WAN virtuale Resources wiki.

Piano di protezione DDoS

Il modulo può facoltativamente distribuire Protezione rete DDoS e collegare reti virtuali al piano, se necessario.

Nota

A causa delle limitazioni della piattaforma, i piani di protezione DDoS possono essere abilitati solo per le reti virtuali tradizionali. Il supporto dell'hub virtuale non è attualmente disponibile.

Importante

Le linee guida sulle zone di destinazione di Azure consiglia di abilitare La protezione della rete DDoS per aumentare la protezione della piattaforma Azure. Per evitare costi imprevisti nelle distribuzioni non di produzione e MVP, questa funzionalità è disabilitata nel modulo Terraform zone di destinazione di Azure a causa del costo associato a questa risorsa.

Per gli ambienti di produzione, è consigliabile abilitare questa funzionalità.

Quando si abilita la distribuzione delle risorse del piano di protezione DDoS, il modulo distribuisce e gestisce i tipi di risorse seguenti (a seconda della configurazione):

Risorsa Tipo di risorsa di Azure Tipo di risorsa di Terraform
Gruppi di risorse Microsoft.Resources/resourceGroups azurerm_resource_group
Piani di protezione DDoS Microsoft.Network/ddosProtectionPlans azurerm_network_ddos_protection_plan

DNS

Il modulo può facoltativamente distribuire DNS privato zone per supportare endpoint privati e collegarli a reti virtuali hub e/o spoke. Le zone DNS pubbliche e private specificate dall'utente possono essere distribuite e collegate in base alle esigenze.

Quando si abilita la distribuzione delle risorse DNS, il modulo distribuisce e gestisce i tipi di risorse seguenti (a seconda della configurazione):

Risorsa Tipo di risorsa di Azure Tipo di risorsa di Terraform
Gruppi di risorse Microsoft.Resources/resourceGroups azurerm_resource_group
Zone DNS Microsoft.Network/dnsZones azurerm_dns_zone
zone DNS privato Microsoft.Network/privateDnsZones azurerm_private_dns_zone
Collegamento DNS privato zona Rete virtuale Microsoft.Network/privatednszones/virtualnetworklinks azurerm_private_dns_zone_virtual_network_link

Risorse di identità

Il modulo offre un'opzione per configurare i criteri relativi alla zona di destinazione di gestione delle identità e degli accessi. Garantisce inoltre che la sottoscrizione specificata venga inserita nel gruppo di gestione corretto.

Diagramma dell'architettura concettuale della zona di destinazione di Azure, concentrandosi sulle risorse di identità.

Nota

Questa funzionalità non distribuisce risorse. Se si desidera aggiornare le impostazioni dei criteri correlate al gruppo di gestione delle identità, usare la configure_identity_resources variabile di input.

Per altre informazioni su come usare questa funzionalità, vedere la pagina

Introduzione

I requisiti per iniziare a usare il modulo sono documentati nella pagina Introduzione Wiki.

Per semplificare l'avvio, il modulo è stato pubblicato nei Registro Terraform. È possibile farvi riferimento direttamente all'interno del codice, come illustrato nell'esempio semplice più avanti in questo articolo. Se si esegue terraform init il modulo e tutte le dipendenze vengono scaricati automaticamente.

È possibile visualizzare le dipendenze più recenti del modulo e Scheda Dipendenze nel Registro Terraform.

Importante

Vi sono problemi noti con alcune combinazioni di versione di Terraform e del provider di AzureRM. È possibile risolvere alcuni di questi problemi eseguendo l'aggiornamento alle versioni più recenti di Terraform e del provider di AzureRM. Altri problemi noti sono errori temporanei che in genere è possibile risolvere eseguendo nuovamente la distribuzione.

In genere è consigliabile aggiungere versioni specifiche e testarle accuratamente prima di eseguire l'aggiornamento.

Verranno rilasciate nuove versioni del modulo quando sono necessarie modifiche. Le nuove versioni garantiranno la compatibilità con le versioni più recenti del provider Terraform e AzureRM. Per altre informazioni, vedere Module Release Guidance (Informazioni dettagliate sui moduli di rilascio del modulo ).

Per ottenere le funzionalità più recenti, assicurarsi che la versione del modulo sia impostata sulla versione più recente. Se si esegue l'aggiornamento a una versione successiva del modulo, eseguire terraform init -upgrade.

Versione di GitHub (più recente SemVer)

Esempio semplice

Questo codice di esempio distribuisce il gruppo di gestione minimo consigliato e l'organizzazione di sottoscrizione dall'architettura di riferimento su scala aziendale. Dopo aver eseguito questo semplice esempio, è possibile iniziare a personalizzare la distribuzione.

Suggerimento

Anche se root_parent_id è l'unica variabile obbligatoria del modulo, è consigliabile impostare anche root_id. La modifica del root_id valore avvierà una ridistribuzione completa di tutte le risorse gestite dal modulo, incluse le dipendenze downstream.

Il codice seguente è una semplice configurazione iniziale per il modulo radice main.tf:

# Configure Terraform to set the required AzureRM provider
# version and features{} block.

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = ">= 2.77.0"
    }
  }
}

provider "azurerm" {
  features {}
}

# Get the current client configuration from the AzureRM provider.
# This configuration is used to populate the root_parent_id variable with the
# current tenant ID used as the ID for the "Tenant Root Group"
# management group.

data "azurerm_client_config" "core" {}

# Use variables to customize the deployment

variable "root_id" {
  type    = string
  default = "es"
}

variable "root_name" {
  type    = string
  default = "Enterprise-Scale"
}

# Declare the Terraform Module for Cloud Adoption Framework
# Enterprise-scale and provide a base configuration.

module "enterprise_scale" {
  source  = "Azure/caf-enterprise-scale/azurerm"
  version = ">= 1.0.0"

  providers = {
    azurerm              = azurerm
    azurerm.connectivity = azurerm
    azurerm.management   = azurerm
  }

  root_parent_id = data.azurerm_client_config.core.tenant_id
  root_id        = var.root_id
  root_name      = var.root_name

}

Passaggi successivi

Il modulo Terraform per Cloud Adoption Framework scala enterprise offre un percorso accelerato per la creazione delle zone di destinazione su scala aziendale. Offre anche la flessibilità necessaria per espandere e personalizzare la distribuzione mantenendo un approccio semplificato alla gestione della configurazione di ogni zona di destinazione.

Per altre informazioni, esaminare il modulo nel Registro Terraform ed esplorare ladocumentazione del modulo in GitHub. Nella documentazione sono disponibili altri esempi e esercitazioni su come personalizzare la distribuzione.

Informazioni su come distribuire il modulo Terraform zone di destinazione di Azure tramite HashiCorp Learn. Da qui è anche possibile scoprire come funzionano alcune parti del modulo.