Udostępnij za pośrednictwem


Moduł Terraform stref docelowych platformy Azure

Platforma Azure udostępnia usługi natywne do tworzenia stref docelowych platformy Azure. Inne narzędzia mogą również pomóc w tym wysiłku. Jednym z narzędzi używanych przez klientów i partnerów do wdrażania stref docelowych jest narzędzie Terraform firmy HashiCorp.

Wdrażanie zasobów w strefach docelowych aplikacji wykracza poza zakres modułu. Decyzje dotyczące metody i narzędzi wdrażania dotyczą zespołu odpowiedzialnego za aplikację.

Moduł Terraform stref docelowych platformy Azure zapewnia szybką implementację zasobów platformy, które należy zarządzać strefami docelowymi platformy Azure na dużą skalę przy użyciu narzędzia Terraform. Moduł został zaprojektowany w celu uproszczenia wdrażania hierarchii, zasad i zasobów grupy zarządzania w subskrypcjach łączności i zarządzania.

Wymagania wstępne

Jeśli dopiero zaczynasz korzystać z programu Terraform i chcesz uzyskać informacje o instalowaniu i używaniu go, zapoznaj się z samouczkiem Install Terraform on HashiCorp Learn (Instalowanie programu Terraform w środowisku HashiCorp Learn).

Aby uzyskać informacje na temat konfigurowania dostawcy programu Terraform i uwierzytelniania na platformie Azure, zobacz przewodniki dotyczące dostawcy modułu AzureRM w witrynie internetowej narzędzia Terraform. Aby dowiedzieć się, jak skonfigurować dostawcę do wdrażania w wielu subskrypcjach, zobacz stronę typu wiki Konfiguracja dostawcy.

Znaczenie używania modułów standardowych

Ponowne używanie składników jest podstawową zasadą infrastruktury jako kodu. Moduły mają kluczowe znaczenie podczas definiowania standardów i spójności we wdrażaniu zasobów w środowiskach i w różnych środowiskach.

Moduł Terraform stref docelowych platformy Azure jest publikowany w oficjalnym rejestrze terraform i jest weryfikowany przez firmę HashiCorp.

Wdrożenie modułu z rejestru Terraform zapewnia:

  • Przyspieszone dostarczanie stref docelowych platformy Azure w środowisku.
  • Przetestowana ścieżka uaktualnienia do najnowszej wersji modułu wraz ze ścisłą kontrolą wersji.

Zalety korzystania z modułu

Zalety korzystania z modułu Terraform stref docelowych platformy Azure obejmują:

  • Zarządzana i rozszerzalna podstawowa hierarchia zasobów dla organizacji subskrypcji za pośrednictwem grup zarządzania.
  • Skalowalny nadzór nad zabezpieczeniami i zgodność za pomocą mechanizmów kontroli zarządzania tożsamościami i dostępem (IAM) platformy Azure z obszerną biblioteką definicji niestandardowych gotowych do przypisania.
  • Wymuszanie zasad między subskrypcjami za pomocą dziedziczenia grupy zarządzania.
  • Zarządzane zasoby na potrzeby stref docelowych zarządzania i łączności. Te zasoby zapewniają:
    • Zapewnij zgodność zasad dzięki ścisłej integracji zasobów zarządzanych przez moduł i odpowiednich przypisań zasad.
    • Integracja między zasobami w celu zmniejszenia nakładu pracy związanego z zarządzaniem i zapewnienia ulepszonego środowiska użytkownika, takiego jak automatyczne tworzenie łączy sieci wirtualnej dla usługi Azure Prywatna strefa DNS.

Napiwek

Biblioteka szablonów jest aktualizowana programowo z repozytorium GitHub Azure/Enterprise-Scale . Aby być na bieżąco z najnowszą konfiguracją archetypu, zasadami i rolami, upewnij się, że używasz najnowszej wersji modułu.

Wdrażanie zasobów

Moduł można skonfigurować tak, aby wdrażał zestawy zasobów, które są zgodne z następującymi krytycznymi obszarami projektowymi w strefach docelowych platformy Azure. Dostosuj te zasoby, aby spełnić wymagania organizacji.

Kategoria zasobów Krytyczny obszar projektowania
Zasoby podstawowe Zarządzanie zabezpieczeniami
organizacji zasobów

Zasoby zarządzania Zarządzanie i monitorowanie
Zasoby łączności Topologia sieci i łączność
Zasoby tożsamości Zarządzanie tożsamościami i dostępem

Tworzenie pakietów tych możliwości w jednym module programu Terraform ułatwia tworzenie i wymuszanie spójności na platformie Azure podczas działania na dużą skalę.

Te zasoby są zgodne z architekturą koncepcyjną stref docelowych platformy Azure:

Diagram architektury koncepcyjnej strefy docelowej platformy Azure.

Te zasoby można wdrożyć według możliwości w wielu subskrypcjach przy użyciu konfiguracji dostawcy w bloku modułu.

W poniższych sekcjach opisano typy zasobów i opcje konfiguracji.

Zasoby podstawowe

Podstawowa funkcja tego modułu wdraża podstawy architektury koncepcyjnej stref docelowych platformy Azure, koncentrując się na centralnej organizacji zasobów.

Diagram przedstawiający architekturę koncepcyjną strefy docelowej platformy Azure, która koncentruje się na podstawowej hierarchii zasobów.

Po włączeniu wdrażania podstawowych zasobów (domyślnie włączone) moduł wdraża następujące typy zasobów i zarządza nimi:

Zasób Typ zasobu platformy Azure Typ zasobu narzędzia Terraform
Grupy zarządzania Microsoft.Management/managementGroups azurerm_management_group
Subskrypcje grup zarządzania Microsoft.Management/managementGroups/subscriptions azurerm_management_group
Przypisania zasad Microsoft.Authorization/policyAssignments azurerm_management_group_policy_assignment
Definicje zasad Microsoft.Authorization/policyDefinitions azurerm_policy_definition
Definicje zestawu zasad Microsoft.Authorization/policySetDefinitions azurerm_policy_set_definition
Przypisania ról Microsoft.Authorization/roleAssignments azurerm_role_assignment
Definicje ról Microsoft.Authorization/roleDefinitions azurerm_role_definition

Dokładna liczba zasobów tworzonych przez moduł zależy od konfiguracji modułu. W przypadku konfiguracji domyślnej można oczekiwać, że moduł utworzy około 180 zasobów.

Napiwek

Żadne z tych zasobów nie są wdrażane w zakresie subskrypcji, ale narzędzie Terraform nadal wymaga subskrypcji do ustanowienia uwierzytelnionej sesji z platformą Azure. Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą platformy Azure, zobacz dokumentację dostawcy platformy Azure: uwierzytelnianie na platformie Azure .

Zasoby zarządzania

Moduł zawiera opcję włączenia wdrażania zasobów zarządzania i monitorowania z architektury koncepcyjnej stref docelowych platformy Azure do określonej subskrypcji zgodnie z opisem na stronie wiki Konfiguracja dostawcy. Moduł zapewnia również, że określona subskrypcja zostanie umieszczona w odpowiedniej grupie zarządzania.

Diagram przedstawiający architekturę koncepcyjną strefy docelowej platformy Azure, koncentrując się na zasobach zarządzania.

Po włączeniu wdrażania zasobów zarządzania moduł wdraża następujące typy zasobów i zarządza nimi (w zależności od konfiguracji):

Zasób Typ zasobu platformy Azure Typ zasobu narzędzia Terraform
Grupy zasobów Microsoft.Resources/resourceGroups azurerm_resource_group
Obszar roboczy usługi Log Analytics Microsoft.OperationalInsights/workspaces azurerm_log_analytics_workspace
Rozwiązania usługi Log Analytics Microsoft.OperationsManagement/solutions azurerm_log_analytics_solution
Konto usługi Automation Microsoft.Automation/automationAccounts azurerm_automation_account
Połączona usługa Log Analytics Microsoft.OperationalInsights/workspaces /linkedServices azurerm_log_analytics_linked_service

Oprócz wdrażania powyższych zasobów moduł zapewnia natywną integrację z odpowiednimi przypisaniami zasad w celu zapewnienia pełnej zgodności z zasadami.

Aby uzyskać więcej informacji na temat korzystania z tej funkcji, zobacz stronę typu wiki Deploy Management Resources (Wdrażanie zasobów zarządzania).

Zasoby łączności

Moduł udostępnia opcję włączenia wdrażania topologii sieci i zasobów łączności z architektury koncepcyjnej stref docelowych platformy Azure do bieżącego kontekstu subskrypcji. Gwarantuje również, że określona subskrypcja zostanie umieszczona w odpowiedniej grupie zarządzania.

Ta funkcja umożliwia wdrażanie wielu sieci koncentratorów na podstawie dowolnej kombinacji tradycyjnej topologii sieci platformy Azure (piasty i szprych) oraz topologii sieci usługi Virtual WAN (zarządzanej przez firmę Microsoft).

Moduł może również tworzyć i łączyć ochronę sieci DDoS z sieciami wirtualnymi oraz zarządzać scentralizowanymi publicznymi i prywatnymi strefami DNS.

Uwaga

Obecnie nie zalecamy ochrony przed atakami DDoS IP w strefach docelowych platformy Azure i zalecamy użycie tej opcji w określonych okolicznościach. Zapoznaj się z dokumentacją produktu Porównanie jednostek SKU usługi Azure DDoS Protection

Tradycyjna topologia sieci platformy Azure (piasta i szprycha)

Moduł może opcjonalnie wdrożyć co najmniej jedną sieć piasty w oparciu o tradycyjną topologię sieci platformy Azure (piastę i szprychę).

Diagram przedstawiający architekturę koncepcyjną strefy docelowej platformy Azure, koncentrując się na zasobach łączności przy użyciu tradycyjnej topologii sieci platformy Azure (piasty i szprychy).

Uwaga

Moduł obecnie konfiguruje tylko centrum sieciowe i zasoby zależne dla subskrypcji łączności. Mimo że istnieje możliwość włączenia wychodzącej komunikacji równorzędnej sieci wirtualnych z piasty do szprychy, użytkownicy nadal muszą inicjować komunikację równorzędną z szprychy do piasty. Jest to spowodowane ograniczeniami dotyczącymi sposobu, w jaki dostawca modułu AzureRM jest przeznaczony dla określonej subskrypcji na potrzeby wdrożenia.

Podczas wdrażania zasobów w oparciu o tradycyjną topologię sieci platformy Azure (piastę i szprychę) moduł wdraża następujące typy zasobów i zarządza nimi (w zależności od konfiguracji):

Zasób Typ zasobu platformy Azure Typ zasobu narzędzia Terraform
Grupy zasobów Microsoft.Resources/resourceGroups azurerm_resource_group
Sieci wirtualne Microsoft.Network/virtualNetworks azurerm_virtual_network
Podsieci Microsoft.Network/virtualNetworks/subnets azurerm_subnet
Bramy sieci wirtualnej Microsoft.Network/virtualNetworkGateways azurerm_virtual_network_gateway
Zapory platformy Azure Microsoft.Network/azureFirewalls azurerm_firewall
Publiczne adresy IP Microsoft.Network/publicIPAddresses azurerm_public_ip
Komunikacja równorzędna sieci wirtualnych Microsoft.Network/virtualNetworks/virtualNetworkPeerings azurerm_virtual_network_peering

Aby uzyskać więcej informacji na temat korzystania z tej funkcji, zobacz stronę typu wiki Deploy Connectivity Resources (Wdrażanie zasobów łączności).

Topologia sieci wirtualnej sieci WAN (zarządzana przez firmę Microsoft)

Moduł może opcjonalnie wdrożyć co najmniej jedną sieć piasty na podstawie topologii sieci usługi Virtual WAN (zarządzanej przez firmę Microsoft).

Diagram koncepcyjnej architektury koncepcyjnej strefy docelowej platformy Azure, koncentrując się na zasobach łączności przy użyciu topologii sieci usługi Virtual WAN (zarządzanej przez firmę Microsoft).

Uwaga

Ze względu na różne możliwości zasobów sieci wirtualnej sieci WAN za pośrednictwem tradycyjnych, komunikacja równorzędna dla szprych wirtualnych sieci WAN jest dwukierunkowa w przypadku korzystania z tej możliwości.

Podczas wdrażania zasobów na podstawie topologii sieci wirtualnej sieci WAN (zarządzanej przez firmę Microsoft) moduł wdraża następujące typy zasobów i zarządza nimi (w zależności od konfiguracji):

Zasób Typ zasobu platformy Azure Typ zasobu narzędzia Terraform
Grupy zasobów Microsoft.Resources/resourceGroups azurerm_resource_group
Wirtualne sieci WAN Microsoft.Network/virtualWans azurerm_virtual_wan
Wirtualne centra Microsoft.Network/virtualHubs azurerm_virtual_hub
Bramy usługi Express Route Microsoft.Network/expressRouteGateways azurerm_express_route_gateway
Bramy sieci VPN Microsoft.Network/vpnGateways azurerm_vpn_gateway
Zapory usługi Azure Firewall Microsoft.Network/azureFirewalls azurerm_firewall
Zasady usługi Azure Firewall Microsoft.Network/firewallPolicies azurerm_firewall_policy
Połączenia koncentratora wirtualnego Microsoft.Network/virtualHubs/hubVirtualNetworkConnections azurerm_virtual_hub_connection

Aby uzyskać więcej informacji na temat korzystania z tej funkcji, zobacz stronę typu wiki Deploy Virtual WAN Resources (Wdrażanie zasobów usługi Virtual WAN).

Plan usługi DDoS Protection

Moduł może opcjonalnie wdrożyć ochronę sieci DDoS i w razie potrzeby połączyć sieci wirtualne z planem.

Uwaga

Ze względu na ograniczenia platformy plany usługi DDoS Protection można włączyć tylko dla tradycyjnych sieci wirtualnych. Obsługa koncentratora wirtualnego jest obecnie niedostępna.

Ważne

Wskazówki dotyczące stref docelowych platformy Azure zalecają włączenie usługi DDoS Network Protection w celu zwiększenia ochrony platformy Azure. Aby zapobiec nieoczekiwanym kosztom wdrożeń nieprodukcyjnych i MVP, ta funkcja jest wyłączona w module Terraform stref docelowych platformy Azure ze względu na koszt skojarzony z tym zasobem.

W przypadku środowisk produkcyjnych zdecydowanie zalecamy włączenie tej funkcji.

Po włączeniu wdrożenia zasobów planu usługi DDoS Protection moduł wdraża następujące typy zasobów i zarządza nimi (w zależności od konfiguracji):

Zasób Typ zasobu platformy Azure Typ zasobu narzędzia Terraform
Grupy zasobów Microsoft.Resources/resourceGroups azurerm_resource_group
Plany usługi DDoS Protection Microsoft.Network/ddosProtectionPlans azurerm_network_ddos_protection_plan

DNS

Moduł może opcjonalnie wdrożyć strefy Prywatna strefa DNS w celu obsługi prywatnych punktów końcowych i połączyć je z sieciami wirtualnymi piasty i/lub szprych. Publiczne i prywatne strefy DNS określone przez użytkownika można również wdrażać i łączyć zgodnie z potrzebami.

Po włączeniu wdrażania zasobów DNS moduł wdraża następujące typy zasobów i zarządza nimi (w zależności od konfiguracji):

Zasób Typ zasobu platformy Azure Typ zasobu narzędzia Terraform
Grupy zasobów Microsoft.Resources/resourceGroups azurerm_resource_group
Strefy DNS Microsoft.Network/dnsZones azurerm_dns_zone
strefy Prywatna strefa DNS Microsoft.Network/privateDnsZones azurerm_private_dns_zone
łącze sieci wirtualnej strefy Prywatna strefa DNS Microsoft.Network/privatednszones/virtualnetworklinks azurerm_private_dns_zone_virtual_network_link

Zasoby tożsamości

Moduł zawiera opcję konfigurowania zasad dotyczących strefy docelowej zarządzania tożsamościami i dostępem . Gwarantuje również, że określona subskrypcja zostanie umieszczona w odpowiedniej grupie zarządzania.

Diagram przedstawiający architekturę koncepcyjną strefy docelowej platformy Azure, koncentrując się na zasobach tożsamości.

Uwaga

Ta funkcja nie wdraża żadnych zasobów. Jeśli chcesz zaktualizować ustawienia zasad związane z grupą zarządzania tożsamościami, użyj zmiennej wejściowej configure_identity_resources .

Aby uzyskać więcej informacji na temat korzystania z tej funkcji, zobacz stronę typu wiki Deploy Identity Resources (Wdrażanie zasobów tożsamości).

Wprowadzenie

Wymagania dotyczące rozpoczynania pracy z modułem są udokumentowane na stronie wiki Wprowadzenie .

Aby uprościć rozpoczęcie pracy, moduł został opublikowany w rejestrze programu Terraform. Możesz odwoływać się do niego bezpośrednio w kodzie, jak pokazano w prostym przykładzie w dalszej części tego artykułu. Uruchomienie terraform init spowoduje automatyczne pobranie modułu i wszystkich zależności.

Najnowsze zależności modułu i dostawcy można wyświetlić na karcie Zależności w rejestrze programu Terraform.

Ważne

Istnieją znane problemy z niektórymi kombinacjami wersji dostawcy programu Terraform i modułu AzureRM. Niektóre znane problemy można rozwiązać, uaktualniając do najnowszych wersji dostawcy programu Terraform i modułu AzureRM. Inne znane problemy to błędy przejściowe, które zazwyczaj można rozwiązać przez ponowne uruchomienie wdrożenia.

Zazwyczaj zalecamy przypinanie do określonych wersji i dokładne testowanie przed uaktualnieniem.

W razie potrzeby udostępnimy nowe wersje modułu. Nowe wersje zapewnią zgodność z najnowszymi wersjami dostawcy programu Terraform i modułu AzureRM. Aby uzyskać więcej informacji, zapoznaj się z naszymi wskazówkami dotyczącymi wydań modułów.

Aby uzyskać najnowsze funkcje, upewnij się, że wersja modułu jest ustawiona na najnowszą wersję. Jeśli uaktualniasz moduł do nowszej wersji, uruchom polecenie terraform init -upgrade.

Wersja usługi GitHub (najnowsza wersja SemVer)

Prosty przykład

Ten przykładowy kod wdraża minimalną zalecaną grupę zarządzania i organizację subskrypcji z architektury referencyjnej w skali przedsiębiorstwa. Po uruchomieniu tego prostego przykładu możesz rozpocząć dostosowywanie wdrożenia.

Napiwek

Mimo że root_parent_id jest to jedyna obowiązkowa zmienna modułu, zalecamy również ustawienie parametru root_id. root_id Zmiana wartości spowoduje ponowne wdrożenie wszystkich zasobów zarządzanych przez moduł, w tym zależności podrzędnych.

Poniższy kod to prosta konfiguracja początkowa modułu main.tf głównego:

# 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

}

Następne kroki

Moduł Terraform dla struktury Cloud Adoption Framework w skali przedsiębiorstwa zapewnia przyspieszoną ścieżkę do tworzenia stref docelowych w skali przedsiębiorstwa. Zapewnia również elastyczność rozszerzania i dostosowywania wdrożenia przy zachowaniu uproszczonego podejścia do zarządzania konfiguracją każdej strefy docelowej.

Aby dowiedzieć się więcej, zapoznaj się z modułem w rejestrze Terraform i zapoznaj się z dokumentacją modułu w usłudze GitHub. W dokumentacji znajdziesz więcej przykładów i samouczków dotyczących dostosowywania wdrożenia.

Dowiedz się, jak wdrożyć moduł Terraform stref docelowych platformy Azure za pomocą platformy HashiCorp Learn. Z tego miejsca możesz również dowiedzieć się, jak działają niektóre części modułu.