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:

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

Diagram konceptuální 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í 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.

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

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é 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).

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

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

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.

Vydání GitHubu (nejnovější Verze 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í 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.