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 risorseGovernance della sicurezzaGovernance |
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:
È 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.
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.
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).
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).
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.
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
.
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.