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