Modul Terraform cílových zón Azure
Azure poskytuje nativní služby pro vytváření cílových zón Azure. S tímto úsilím můžou pomoct i další nástroje. Jedním z nástrojů, který zákazníci a partneři často používají k nasazení cílových zón, je Terraform od Společnosti HashiCorp.
Nasazení prostředků do cílových zón aplikace je mimo rozsah modulu. Rozhodnutí o metodě nasazení a nástrojích jsou určená pro tým, který je zodpovědný za aplikaci.
Modul Terraform cílových zón Azure poskytuje rychlou implementaci prostředků platformy, které potřebujete ke správě cílových zón Azure ve velkém měřítku pomocí Terraformu. Tento modul je navržený tak, aby zjednodušil nasazení hierarchie skupin pro správu, zásad a prostředků v předplatných pro připojení a správu.
Požadavky
Pokud s Terraformem začínáte a chcete získat informace o instalaci a jeho používání, přečtěte si kurz Instalace Terraformu na platformě HashiCorp Learn.
Informace o tom, jak nastavit zprostředkovatele Terraformu a ověřit se v Azure, najdete v průvodcích poskytovatele AzureRM na webu Terraform. Informace o nastavení poskytovatele pro nasazení napříč několika předplatnými najdete na stránce wikiwebu Konfigurace poskytovatele.
Důležitost používání standardních modulů
Opětovné použití součástí je základním principem infrastruktury jako kódu. Moduly slouží k definování standardů a konzistence napříč nasazením prostředků v rámci prostředí a napříč prostředími.
Modul Terraform cílových zón Azure se publikuje v oficiálním registru Terraformu a ověřuje ho HashiCorp.
Nasazení modulu z registru Terraformu poskytuje:
- Zrychlené doručování cílových zón Azure ve vašem prostředí.
- Otestovaná cesta upgradu na nejnovější verzi modulu spolu s striktní správou verzí.
Výhody používání modulu
Mezi výhody používání modulu Terraform cílových zón Azure patří:
- Spravovaná a rozšiřitelná základní hierarchie prostředků pro organizaci předplatného prostřednictvím skupin pro správu.
- Škálovatelné zásady správného řízení zabezpečení a dodržování předpisů prostřednictvím řízení identit a přístupu Azure (IAM) s rozsáhlou knihovnou vlastních definic připravených k přiřazení.
- Vynucování zásad napříč předplatnými prostřednictvím dědičnosti skupin pro správu
- Spravované prostředky pro správu a cílové zóny připojení Tyto zdroje informací poskytují:
- Zajištění dodržování zásad prostřednictvím těsné integrace prostředků spravovaných modulem a odpovídajícími přiřazeními zásad.
- Integrace mezi prostředky za účelem snížení režie na správu a zajištění vylepšeného uživatelského prostředí, jako je automatické vytváření propojení virtuálních sítí pro Azure Privátní DNS
Tip
Knihovna šablon se aktualizuje programově z úložiště Azure/Enterprise-Scale Na GitHubu. Abyste měli přehled o nejnovější konfiguraci, zásadách a rolích archetypu, ujistěte se, že používáte nejnovější verzi modulu.
Nasazení prostředků
Modul můžete nakonfigurovat tak, aby nasazovali sady prostředků, které odpovídají následujícím důležitým oblastem návrhu v cílových zónách Azure. Přizpůsobte si tyto prostředky tak, aby splňovaly požadavky vaší organizace.
Kategorie zdroje | Oblast kritického návrhu |
---|---|
Základní prostředky | Zásady správného řízení zabezpečení organizace prostředků |
Prostředky pro správu | Správa a monitorování |
Prostředky připojení | Síťová topologie a možnosti připojení |
Prostředky identit | Správa identit a přístupu |
Zabalení těchto funkcí do jednoho modulu Terraform usnadňuje sestavování a vynucování konzistence napříč platformou Azure, když pracujete ve velkém měřítku.
Tyto prostředky odpovídají koncepční architektuře cílových zón Azure:
Tyto prostředky můžete nasadit pomocí možností napříč několika předplatnými pomocí konfigurace zprostředkovatele v bloku modulu.
Následující části popisují typy prostředků a možnosti konfigurace.
Základní prostředky
Základní funkce tohoto modulu nasadí základy konceptuální architektury cílových zón Azure se zaměřením na centrální organizaci prostředků.
Když povolíte nasazení základních prostředků (ve výchozím nastavení je povolené), modul nasadí a spravuje následující typy prostředků:
Prostředek | Typ prostředku Azure | Typ prostředku Terraform |
---|---|---|
Skupiny pro správu | Microsoft.Management/managementGroups |
azurerm_management_group |
Předplatná skupin pro správu | Microsoft.Management/managementGroups/subscriptions |
azurerm_management_group |
Přiřazení zásad | Microsoft.Authorization/policyAssignments |
azurerm_management_group_policy_assignment |
Definice zásad | Microsoft.Authorization/policyDefinitions |
azurerm_policy_definition |
Definice sady zásad | Microsoft.Authorization/policySetDefinitions |
azurerm_policy_set_definition |
Přiřazení rolí | Microsoft.Authorization/roleAssignments |
azurerm_role_assignment |
Definice rolí | Microsoft.Authorization/roleDefinitions |
azurerm_role_definition |
Přesný počet prostředků, které modul vytvoří, závisí na konfiguraci modulu. U výchozí konfigurace můžete očekávat, že modul vytvoří přibližně 180
prostředky.
Tip
Žádné z těchto prostředků se nenasadí v oboru předplatného, ale Terraform stále vyžaduje předplatné k navázání ověřené relace s Azure. Další informace o ověřování v Azure najdete v dokumentaci k Azure Provider: Ověřování v Dokumentaci k Azure .
Prostředky pro správu
Modul poskytuje možnost povolit nasazení prostředků pro správu a monitorování z koncepční architektury cílových zón Azure do zadaného předplatného, jak je popsáno na stránce wikiwebu Konfigurace poskytovatele. Modul také zajišťuje, aby zadané předplatné bylo umístěné ve správné skupině pro správu.
Když povolíte nasazení prostředků pro správu, modul nasadí a spravuje následující typy prostředků (v závislosti na konfiguraci):
Prostředek | Typ prostředku Azure | Typ prostředku Terraform |
---|---|---|
Skupiny prostředků | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Pracovní prostor služby Log Analytics | Microsoft.OperationalInsights/workspaces |
azurerm_log_analytics_workspace |
Řešení Log Analytics | Microsoft.OperationsManagement/solutions |
azurerm_log_analytics_solution |
Účet Automation | Microsoft.Automation/automationAccounts |
azurerm_automation_account |
Propojená služba Log Analytics | Microsoft.OperationalInsights/workspaces /linkedServices |
azurerm_log_analytics_linked_service |
Kromě nasazení výše uvedených prostředků modul poskytuje nativní integraci do odpovídajících přiřazení zásad, aby se zajistilo úplné dodržování zásad.
Další informace o tom, jak tuto funkci používat, najdete na stránce wikiwebu Nasazení prostředků pro správu.
Prostředky připojení
Tento modul poskytuje možnost povolit nasazení síťových topologií a prostředků připojení z koncepční architektury cílových zón Azure do aktuálního kontextu předplatného. Zajišťuje také, aby zadané předplatné bylo umístěné ve správné skupině pro správu.
Tato funkce umožňuje nasazení několika sítí rozbočovačů na základě jakékoli kombinace tradiční síťové topologie Azure (hvězdicová topologie) a topologie sítě Virtual WAN (spravovaná Microsoftem).
Tento modul může také vytvářet a propojit službu DDoS Network Protection s virtuálními sítěmi a spravovat centralizované veřejné a privátní zóny DNS.
Poznámka:
V současné době nedoporučujeme ochranu IP adres před útoky DDoS v cílových zónách Azure a v určitých případech doporučujeme tuto možnost použít. Projděte si dokumentaci k produktu o porovnání skladových položek služby Azure DDoS Protection.
Tradiční síťová topologie Azure (hvězdicová topologie)
Modul může volitelně nasadit jednu nebo více sítí rozbočovačů na základě tradiční síťové topologie Azure (hvězdicová topologie).
Poznámka:
Modul aktuálně konfiguruje pouze síťové centrum a závislé prostředky pro předplatné připojení. I když existuje možnost povolit odchozí partnerský vztah virtuální sítě z centra do paprsku, uživatelé stále potřebují zahájit partnerský vztah z paprsku do centra. Důvodem jsou omezení způsobu, jakým poskytovatel AzureRM cílí na konkrétní předplatné pro nasazení.
Když nasadíte prostředky založené na tradiční síťové topologii Azure (hvězdicová topologie), modul nasadí a spravuje následující typy prostředků (v závislosti na konfiguraci):
Prostředek | Typ prostředku Azure | Typ prostředku Terraform |
---|---|---|
Skupiny prostředků | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Virtuální sítě | Microsoft.Network/virtualNetworks |
azurerm_virtual_network |
Podsítě | Microsoft.Network/virtualNetworks/subnets |
azurerm_subnet |
Brány virtuálních sítí | Microsoft.Network/virtualNetworkGateways |
azurerm_virtual_network_gateway |
Brány firewall Azure | Microsoft.Network/azureFirewalls |
azurerm_firewall |
veřejné IP adresy, | Microsoft.Network/publicIPAddresses |
azurerm_public_ip |
Partnerské vztahy virtuálních sítí | Microsoft.Network/virtualNetworks/virtualNetworkPeerings |
azurerm_virtual_network_peering |
Další informace o tom, jak tuto funkci používat, najdete na stránce wikiwebu Nasazení prostředků připojení.
Síťová topologie virtuální sítě WAN (spravovaná Microsoftem)
Modul může volitelně nasadit jednu nebo více centrálních sítí na základě topologie sítě Virtual WAN (spravovaná Microsoftem).
Poznámka:
Vzhledem k různým možnostem síťových prostředků virtual WAN oproti tradičnímu peeringu pro paprsky Virtual WAN je obousměrný při použití této funkce.
Když nasadíte prostředky založené na topologii sítě Virtual WAN (spravovaná Microsoftem), modul nasadí a spravuje následující typy prostředků (v závislosti na konfiguraci):
Prostředek | Typ prostředku Azure | Typ prostředku Terraform |
---|---|---|
Skupiny zdrojů | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Virtuální sítě WAN | Microsoft.Network/virtualWans |
azurerm_virtual_wan |
Virtuální centra | Microsoft.Network/virtualHubs |
azurerm_virtual_hub |
Brány Express Route | Microsoft.Network/expressRouteGateways |
azurerm_express_route_gateway |
Brány VPN Gateway | Microsoft.Network/vpnGateways |
azurerm_vpn_gateway |
Brány Azure Firewall | Microsoft.Network/azureFirewalls |
azurerm_firewall |
Zásady služby Azure Firewall | Microsoft.Network/firewallPolicies |
azurerm_firewall_policy |
Připojení k virtuálnímu centru | Microsoft.Network/virtualHubs/hubVirtualNetworkConnections |
azurerm_virtual_hub_connection |
Další informace o tom, jak tuto funkci používat, najdete na stránce wikiwebu Nasazení prostředků virtual WAN.
Plán DDoS Protection
Modul může volitelně nasadit službu DDoS Network Protection a v případě potřeby propojit virtuální sítě s plánem.
Poznámka:
Kvůli omezením platformy je možné plány DDoS Protection povolit jenom pro tradiční virtuální sítě. Podpora služby Virtual Hub není aktuálně dostupná.
Důležité
Pokyny k cílovým zónám Azure doporučují, aby služba DDoS Network Protection zvýšila ochranu vaší platformy Azure. Aby se zabránilo neočekávaným nákladům v neprodukčním nasazení a nasazení MVP, tato funkce je v modulu Terraform cílových zón Azure zakázaná kvůli nákladům přidruženým k tomuto prostředku.
V produkčních prostředích důrazně doporučujeme tuto funkci povolit.
Když povolíte nasazení prostředků plánu DDoS Protection, modul nasadí a spravuje následující typy prostředků (v závislosti na konfiguraci):
Prostředek | Typ prostředku Azure | Typ prostředku Terraform |
---|---|---|
Skupiny prostředků | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Plány DDoS Protection | Microsoft.Network/ddosProtectionPlans |
azurerm_network_ddos_protection_plan |
DNS
Modul může volitelně nasadit Privátní DNS zóny pro podporu privátních koncových bodů a propojit je s hvězdicovou virtuální sítí. Podle potřeby je možné nasadit a propojit také zóny DNS určené uživatelem a privátními zónami DNS.
Když povolíte nasazení prostředků DNS, modul nasadí a spravuje následující typy prostředků (v závislosti na konfiguraci):
Prostředek | Typ prostředku Azure | Typ prostředku Terraform |
---|---|---|
Skupiny zdrojů | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Zóny DNS | Microsoft.Network/dnsZones |
azurerm_dns_zone |
Zóny Privátní DNS | Microsoft.Network/privateDnsZones |
azurerm_private_dns_zone |
Propojení virtuální sítě se zónou Privátní DNS | Microsoft.Network/privatednszones/virtualnetworklinks |
azurerm_private_dns_zone_virtual_network_link |
Prostředky identit
Modul poskytuje možnost konfigurovat zásady týkající se cílové zóny správy identit a přístupu. Zajišťuje také, aby zadané předplatné bylo umístěné ve správné skupině pro správu.
Poznámka:
Tato funkce nenasazuje žádné prostředky. Pokud chcete aktualizovat nastavení zásad související se skupinou pro správu identit, použijte vstupní proměnnou configure_identity_resources
.
Další informace o tom, jak tuto funkci používat, najdete na stránce wikiwebu Nasazení prostředků identit.
Začínáme
Požadavky na zahájení práce s modulem jsou popsané na wikistráně Začínáme .
Aby se zjednodušilo zahájení práce, modul byl publikován do registru Terraformu. Můžete na něj odkazovat přímo v kódu, jak je znázorněno v jednoduchém příkladu dále v tomto článku. Spuštění terraform init
automaticky stáhne modul a všechny závislosti.
Nejnovější závislosti modulu a zprostředkovatele můžete zobrazit na kartě Závislosti v registru Terraformu.
Důležité
Existují známé problémy s některými kombinacemi verzí zprostředkovatele Terraformu a AzureRM. Některé známé problémy můžete vyřešit upgradem na nejnovější verze zprostředkovatele Terraformu a AzureRM. Další známé problémy jsou přechodné chyby, které můžete obvykle opravit opětovným spuštěním nasazení.
Obecně doporučujeme připnout na konkrétní verze a důkladně otestovat před upgradem.
V případě potřeby vydáme nové verze modulu. Nové verze zajistí kompatibilitu s nejnovějšími verzemi zprostředkovatele Terraformu a AzureRM. Další informace najdete v našich doprovodných materiálech k vydání modulů.
Pokud chcete získat nejnovější funkce, ujistěte se, že je verze modulu nastavená na nejnovější verzi. Pokud upgradujete na novější verzi modulu, spusťte terraform init -upgrade
příkaz .
Jednoduchý příklad
Tento ukázkový kód nasadí minimální doporučenou skupinu pro správu a organizaci předplatného z referenční architektury na podnikové úrovni. Po zprovoznění a zprovoznění tohoto jednoduchého příkladu můžete začít přizpůsobovat nasazení.
Tip
I když root_parent_id
je jedinou povinnou proměnnou modulu, doporučujeme také nastavit root_id
. root_id
Změna hodnoty zahájí úplné opětovné nasazení všech prostředků, které modul spravuje, včetně podřízených závislostí.
Následující kód je jednoduchá počáteční konfigurace kořenového main.tf
modulu:
# 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
}
Další kroky
Modul Terraform pro architekturu přechodu na cloud v podnikovém měřítku poskytuje akcelerovanou cestu k vytváření cílových zón na podnikové úrovni. Poskytuje také flexibilitu pro rozšíření a přizpůsobení nasazení a zachování zjednodušeného přístupu ke správě konfigurace jednotlivých cílových zón.
Další informace najdete v modulu v registru Terraformu a projděte si dokumentaci k modulu na GitHubu. V dokumentaci najdete další příklady a kurzy týkající se přizpůsobení nasazení.
Zjistěte, jak nasadit modul Terraform cílových zón Azure prostřednictvím hashiCorp Learn. Odtud můžete také zjistit, jak některé části modulu fungují.