Sdílet prostřednictvím


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:

Diagram koncepční architektury cílové zóny 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ů.

Diagram koncepční architektury cílové zóny Azure se zaměřením na základní hierarchii 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.

Diagram koncepční architektury cílové zóny Azure se zaměřením na prostředky 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).

Diagram koncepční architektury cílové zóny Azure se zaměřením na prostředky připojení s využitím 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).

Diagram koncepční architektury cílové zóny Azure se zaměřením na prostředky připojení pomocí 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.

Diagram koncepční architektury cílové zóny Azure se zaměřením na prostředky identit

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 -upgradepříkaz .

Verze GitHubu (nejnovější SemVer)

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í.