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 często używanych przez klientów i partnerów do wdrażania stref docelowych jest firmy HashiCorp.

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

Moduł Moduł Terraform stref docelowych platformy Azure zapewnia szybką implementację zasobów platformy, które należy zarządzać Strefy docelowe 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, zobacz Zainstaluj samouczek programu Terraform w witrynie HashiCorp Learn.

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

Znaczenie używania modułów standardowych

Ponowne użycie składników jest podstawową zasadą infrastruktury jako kodu. Moduły mają kluczowe znaczenie w definiowaniu standardów i spójności we wdrożeniu zasobów w środowiskach i w różnych środowiskach.

Moduł Terraform stref docelowych platformy Azure jest publikowany w oficjalnych Narzędzie Terraform Registry i jest weryfikowane 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 z ś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ą niestandardowych definicji gotowych do przypisania.
  • Wymuszanie zasad między subskrypcjami za pomocą dziedziczenia grupy zarządzania.
  • Zasoby zarządzane na potrzeby stref docelowych zarządzania i łączności. Te zasoby zapewniają:
    • Zapewnienie zgodności zasad dzięki ścisłej integracji zasobów zarządzanych przez moduł i odpowiednich przypisań zasad.
    • Integracja między zasobami w celu zmniejszenia obciążeń związanych z zarządzaniem i zapewnienia ulepszonego środowiska użytkownika, takiego jak automatyczne tworzenie łączy sieci wirtualnej dla usługi Azure Prywatna strefa DNS.

Porada

Biblioteka szablonów jest aktualizowana programowo z Repozytorium GitHub w skali przedsiębiorstwa /platformy Azure. 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 projektowania w strefach docelowych platformy Azure. Dostosuj te zasoby, aby spełnić wymagania organizacji.

Kategoria zasobów Krytyczny obszar projektowania
Zasoby podstawowe Zabezpieczenia organizacji
zasobówZarządzanie zabezpieczeniami
Zarządzania
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

Pakowanie tych możliwości w jednym module terraform ułatwia tworzenie i wymuszanie spójności na platformie Azure podczas pracy 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, korzystając z Konfiguracja 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 koncepcyjna architektura stref docelowych platformy Azure, która koncentruje się na centralnej organizacja zasobów.

Diagram architektury koncepcyjnej strefy docelowej platformy Azure, koncentrując się na podstawowej hierarchii zasobów.

Po włączeniu wdrażania zasobów podstawowych (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.

Porada

Ż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 Dostawca platformy Azure: uwierzytelnianie w dokumentacji platformy Azure .

Zasoby zarządzania

Moduł udostępnia opcję włączania wdrażania zarządzanie i monitorowanie zasobów z architektura koncepcyjna stref docelowych platformy Azure do określonej subskrypcji, zgodnie z opisem w Strona typu wiki Konfiguracja dostawcy. Moduł zapewnia również, że określona subskrypcja zostanie umieszczona w odpowiedniej grupie zarządzania.

Diagram koncepcyjnej architektury koncepcyjnej 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 o sposobie korzystania z tej funkcji, zobacz stronę typu zarządzania).

Zasoby łączności

Moduł udostępnia opcję włączenia wdrażania topologia sieci i zasoby łączności z architektura koncepcyjna stref docelowych platformy Azure w bieżącym kontekście subskrypcji. Zapewnia 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 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 na podstawie tradycyjnej topologii sieci platformy Azure (piasty i szprychy).

Diagram koncepcyjnej architektury koncepcyjnej 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 wirtualnej z piasty do szprychy, użytkownicy nadal muszą inicjować komunikację równorzędną z szprychy do koncentratora. Jest to spowodowane ograniczeniami w sposobie, w jaki dostawca azureRM jest przeznaczony dla określonej subskrypcji na potrzeby wdrożenia.

Podczas wdrażania zasobów na podstawie tradycyjnej topologii sieci platformy Azure (piasty i szprychy) 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 o sposobie korzystania z tej funkcji, zobacz stronę typu na stronie typu wiki.

topologia sieci Virtual WAN (zarządzana przez firmę Microsoft)

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

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

Uwaga

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

Podczas wdrażania zasobów na podstawie topologii sieci Virtual 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 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 o sposobie korzystania z tej funkcji, zobacz stronę typu ).

Plan ochrony przed atakami DDoS

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

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 ochrony przed atakami DDoS 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. Strefy PUBLICZNE i prywatne 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
link Prywatna strefa DNS strefy Virtual Network Microsoft.Network/privatednszones/virtualnetworklinks azurerm_private_dns_zone_virtual_network_link

Zasoby tożsamości

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

Diagram architektury koncepcyjnej 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 witrynie typu wiki wdrażanie zasobów tożsamości).

Wprowadzenie

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

Aby uprościć rozpoczęcie pracy, moduł został opublikowany w Rejestr 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ć w Karta 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ć, uruchamiając ponownie wdrożenie.

Zazwyczaj zalecamy przypięcie do określonych wersji i dokładne przetestowanie 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 naszą — wskazówki dotyczące wydań modułów .

Aby uzyskać najnowsze funkcje, upewnij się, że wersja modułu jest ustawiona na najnowszą wersję. Jeśli uaktualniasz do nowszej wersji modułu, 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.

Porada

Mimo że root_parent_id jest to jedyna obowiązkowa zmienna modułu, zalecamy również ustawienie 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ł Moduł Terraform dla 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 dokumentacja modułu w witrynie GitHub. W dokumentacji znajdziesz więcej przykładów i samouczków dotyczących dostosowywania wdrożenia.

Dowiedz się, jak wdrażanie modułu Terraform stref docelowych platformy Azure za pomocą narzędzia HashiCorp Learn. W tym miejscu możesz również dowiedzieć się, jak działają niektóre części modułu.