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 vá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 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á týmu, který je za aplikaci zodpovědný.
Modul Terraform cílových zón Azure poskytuje rychlou implementaci prostředků platformy, které potřebujete ke správě Cílové zóny Azure ve velkém měřítku pomocí Terraformu Modul je navržený tak, aby zjednodušil nasazení hierarchie skupin pro správu, zásad a prostředků v předplatných připojení a správy.
Požadavky
Pokud s Terraformem začínáte a chcete získat informace o jeho instalaci a používání, přečtěte si téma Nainstalujte kurz Terraformu na webu HashiCorp Learn.
Informace o nastavení zprostředkovatele Terraformu a ověřování v Azure najdete v tématu Průvodci poskytovatelem AzureRM na webu Terraformu Informace o tom, jak nastavit poskytovatele pro nasazení napříč několika předplatnými, najdete v Stránka wikiwebu Konfigurace zprostředkovatele
Důležitost používání standardních modulů
Opakované použití komponent je základním principem infrastruktury jako kódu. Moduly pomáhají definovat standardy a konzistenci při nasazování prostředků v rámci prostředí a napříč prostředími.
Modul Terraform cílových zón Azure se publikuje do oficiálních Terraform Registry a je ověřený 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 přísnou správou verzí.
Výhody používání modulu
Mezi výhody použití 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 ovládacích prvků správy identit a přístupu (IAM) v Azure 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 cílové zóny správy a 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ích přiřazení 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ě GitHub na podnikové úrovni Azure Pokud chcete mít přehled o nejnovější konfiguraci archetypu, zásadách a rolích, ujistěte se, že používáte nejnovější verzi modulu.
Nasazení prostředků
Modul můžete nakonfigurovat pro nasazení sad prostředků, které jsou v souladu s následujícími důležitými oblastmi 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 prostředku | Oblast kritického návrhu |
---|---|
Základní prostředky | Zabezpečení organizace prostředkůZásady správného řízení zabezpečeníSprávy |
Prostředky pro správu | Správa a monitorování |
Prostředky připojení | Síťová topologie a připojení |
Prostředky identit | Správa identit a přístupu |
Zabalení těchto funkcí do jednoho modulu Terraformu usnadňuje sestavení a vynucování konzistence napříč platformou Azure, když pracujete ve velkém.
Tyto prostředky jsou v souladu s koncepční architekturou cílových zón Azure:
Tyto prostředky můžete podle schopností nasadit 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 nasazují základy koncepční architektura cílových zón Azure se zaměřením na centrální organizace prostředků.
Když povolíte nasazení základních prostředků (ve výchozím nastavení 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 sad 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ů není nasazený 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í pomocí Azure najdete v tématu Poskytovatel Azure: Ověřování v dokumentaci k Azure
Prostředky pro správu
Modul poskytuje možnost povolit nasazení správa a monitorování prostředků z koncepční architektura cílových zón Azure do zadaného předplatného, jak je popsáno v Stránka wikiwebu Konfigurace zprostředkovatele Modul také zajišťuje, aby se zadané předplatné umístilo do správné skupiny 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í předpisů zásad.
Další informace o tom, jak tuto funkci používat, najdete na Nasazení prostředků správy .
Prostředky připojení
Modul poskytuje možnost povolit nasazení topologie sítě a prostředky připojení z koncepční architektura cílových zón Azure v kontextu aktuálního předplatného. Zajišťuje také umístění zadaného předplatného do správné skupiny pro správu.
Tato funkce umožňuje nasazení více centrálních sítí na základě jakékoli kombinace tradiční síťové topologie Azure (hvězdicová a paprsková) a Virtual WAN síťové topologie (spravovaná Microsoftem).
Modul může také vytvořit 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 před útoky DDoS IP v cílových zónách Azure a doporučujeme použít tuto možnost za určitých okolností. Projděte si dokumentaci k produktu Porovnání skladových položek služby Azure DDoS Protection.
Tradiční síťová topologie Azure (hvězdicová)
Modul může volitelně nasadit jednu nebo více centrálních sítí na základě tradiční síťové topologie Azure (hvězdicové a hvězdicové).
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 peering odchozích virtuálních sítí z centra na paprsek, uživatelé stále potřebují zahájit partnerský vztah z paprsku do centra. Důvodem jsou omezení v tom, jak poskytovatel AzureRM cílí na konkrétní předplatné pro nasazení.
Když nasazujete prostředky založené na tradiční síťové topologii Azure (hvězdicová a hvězdicová), 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í 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 Nasazení prostředků připojení.
Virtual WAN síťové topologie (spravovaná Microsoftem)
Modul může volitelně nasadit jednu nebo více centrálních sítí na základě Virtual WAN síťové topologie (spravované Microsoftem).
Poznámka
Vzhledem k různým možnostem Virtual WAN síťových prostředků oproti tradičnímu je při použití této funkce peering pro Virtual WAN paprsky obousměrný.
Když nasazujete prostředky založené na Virtual WAN síťové topologii (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 prostředků | 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 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 wikiwebové stránce Nasazení Virtual WAN Prostředků.
Plán ochrany před útoky DDoS
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 virtuálního centra v současné době není k dispozici.
Důležité
Pokyny k cílovým zónám Azure doporučují povolení ochrany DDoS Network Protection, aby se zvýšila ochrana vaší platformy Azure. Aby se zabránilo neočekávaným nákladům v neprodukčním nasazení a nasazení MVP, je tato funkce v modulu Terraform cílových zón Azure zakázaná kvůli nákladům spojeným s tímto prostředkem.
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 ochrany před útoky DDoS | Microsoft.Network/ddosProtectionPlans |
azurerm_network_ddos_protection_plan |
DNS
Modul může volitelně nasadit zóny Privátní DNS pro podporu privátních koncových bodů a propojit je s hvězdicovou virtuální sítí. Podle potřeby je také možné nasadit a propojit veřejné a privátní zóny DNS zadané uživatelem.
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 prostředků | Microsoft.Resources/resourceGroups |
azurerm_resource_group |
Zóny DNS | Microsoft.Network/dnsZones |
azurerm_dns_zone |
Privátní DNS zón | Microsoft.Network/privateDnsZones |
azurerm_private_dns_zone |
odkaz Virtual Network zóny Privátní DNS | Microsoft.Network/privatednszones/virtualnetworklinks |
azurerm_private_dns_zone_virtual_network_link |
Prostředky identit
Modul poskytuje možnost konfigurace zásad týkajících se cílová zóna správy identit a přístupu. Zajišťuje také umístění zadaného předplatného do správné skupiny pro správu.
Poznámka
Tato funkce nenasadí žádné prostředky. Pokud chcete aktualizovat nastavení zásad související se skupinou pro správu identit, použijte configure_identity_resources
vstupní proměnnou.
Další informace o tom, jak tuto funkci používat, najdete na Nasazení prostředků identity .
Začínáme
Požadavky na zahájení práce s modulem jsou popsané na Začínáme Wiki.
Pro zjednodušení se modul publikoval do Registr 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ím terraform init
se automaticky stáhne modul a všechny závislosti.
Nejnovější závislosti modulů a zprostředkovatelů si můžete prohlédnout v Karta 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 před upgradem důkladně otestovat.
Nové verze modulu vydáme, až budou potřeba změny. Nové verze zajistí kompatibilitu s nejnovějšími verzemi zprostředkovatele Terraformu a AzureRM. Další informace najdete v našem Pokyny 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 příkaz terraform init -upgrade
.
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í tohoto jednoduchého příkladu můžete začít přizpůsobovat své nasazení.
Tip
I když root_parent_id
se jedná o jedinou povinnou proměnnou modulu, doporučujeme také nastavit root_id
. root_id
Změnou hodnoty zahájíte ú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 pro kořenový main.tf
modul:
# 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 Cloud Adoption Framework na podnikové úrovni poskytuje zrychlenou cestu k vytvoření cílových zón na podnikové úrovni. Poskytuje také flexibilitu pro rozšíření a přizpůsobení nasazení při zachování zjednodušeného přístupu ke správě konfigurace jednotlivých cílových zón.
Další informace Projděte si modul v registru Terraformu a projděte dokumentace k modulu na GitHubu. V dokumentaci najdete další příklady a kurzy týkající se přizpůsobení nasazení.
Zjistěte, jak nasaďte modul Terraform cílových zón Azure prostřednictvím nástroje HashiCorp Learn. Odtud můžete také zjistit, jak fungují některé části modulu.