Udostępnij za pośrednictwem


Strefy docelowe platformy Azure — zagadnienia dotyczące projektowania modułu terraform

W tym artykule omówiono ważne obszary, które należy wziąć pod uwagę podczas korzystania z modułu Terraform stref docelowych platformy Azure. Moduł zawiera opinię dotyczącą wdrażania i obsługi platformy Azure opartej na architekturze koncepcyjnej strefy docelowej platformy Azure zgodnie z opisem w przewodniku Cloud Adoption Framework (CAF).

Terraform to narzędzie typu open source Infrastructure as Code (IaC) utworzone przez firmę HashiCorp, które używa składni deklaratywnej do wdrażania zasobów infrastruktury. Jest rozszerzalny, ma obsługę międzyplatformową i umożliwia niezmienną infrastrukturę za pośrednictwem śledzenia stanu.


Ważne

Moduł jest dostępny w module Terraform Registry: Strefy docelowe platformy Azure Terraform. Można go użyć jako punktu początkowego i skonfigurować zgodnie z potrzebami.

Uwaga

Istnieją implementacje dla kilku technologii wdrażania, w tym opartych na portalu, szablonach usługi ARM i modułach programu Terraform. Wybór technologii wdrażania nie powinien mieć wpływu na wynikowe wdrożenie stref docelowych platformy Azure.

ALZ Terraform Accelerator

Aby szybko rozpocząć wdrażanie usługi ALZ za pomocą narzędzia Terraform, możesz użyć akceleratora NARZĘDZIA Terraform ALZ przeznaczonego do użycia jako szablonu. To repozytorium udostępnia pomocniczą implementację modułu Terraform stref docelowych platformy Azure z potokami usługi Azure DevOps i przepływami pracy funkcji GitHub Actions.

Akcelerator terraform ALZ jest zgodny z podejściem 3 fazy:

  1. Wymagania wstępne: instrukcje dotyczące konfigurowania poświadczeń i subskrypcji.
  2. Bootstrap: uruchom skrypt programu PowerShell, aby wygenerować środowisko ciągłego dostarczania.
  3. Uruchom: zaktualizuj moduł (w razie potrzeby) zgodnie z potrzebami organizacji i wdróż go za pośrednictwem ciągłego dostarczania.

Zacznij od przewodnika użytkownika krok po kroku, aby uruchomić środowisko strefy docelowej platformy Azure.

Projektowanie

Diagram showing the Azure landing zones conceptual architecture.

Architektura korzysta z konfigurowalnego charakteru programu Terraform i składa się z podstawowego modułu aranżacji. Ten moduł hermetyzuje wiele możliwości architektury koncepcyjnej stref docelowych platformy Azure. Każdą możliwość można wdrożyć pojedynczo lub częściowo. Można na przykład wdrożyć tylko sieć piasty lub tylko usługę Azure DDoS Protection lub tylko zasoby DNS. W takim przypadku należy wziąć pod uwagę, że możliwości mają zależności.

Architektura wykorzystuje podejście orkiestratora, aby uprościć środowisko wdrażania. Wolisz zaimplementować każdą możliwość przy użyciu co najmniej jednego dedykowanego wystąpienia modułu, w którym każda z nich jest przeznaczona dla określonej części architektury. To wszystko jest możliwe z poprawną konfiguracją

Moduły

Podstawową koncepcją w narzędziu Terraform jest użycie modułów. Moduły umożliwiają organizowanie wdrożeń w grupach logicznych. Dzięki modułom można poprawić czytelność plików programu Terraform, hermetyzując złożone szczegóły wdrożenia. Można również łatwo używać modułów dla różnych wdrożeń.

Możliwość ponownego używania modułów zapewnia rzeczywistą korzyść podczas definiowania i wdrażania stref docelowych. Umożliwia powtarzalne, spójne środowiska w kodzie przy jednoczesnym zmniejszeniu nakładu pracy wymaganego do wdrożenia na dużą skalę.

Implementacja programu Terraform stref docelowych platformy Azure jest dostarczana przy użyciu jednego modułu, który działa jako warstwa aranżacji. Warstwa aranżacji umożliwia wybranie, które zasoby są wdrażane i zarządzane przy użyciu modułu. Moduł może być używany wiele razy w tym samym środowisku, aby wdrażać zasoby niezależnie od siebie. Może to być przydatne w organizacjach, w których różne zespoły są odpowiedzialne za różne możliwości lub kolekcje zasobów podrzędnych.

Warstwy i przemieszczanie

Implementacja koncentruje się na centralnej hierarchii zasobów architektury koncepcyjnej strefy docelowej platformy Azure. Projekt jest skoncentrowany na następujących możliwościach:

  • Zasoby podstawowe
  • Zasoby zarządzania
  • zasoby Połączenie ivity
  • Zasoby tożsamości

Moduł grupuje zasoby w tych możliwościach, ponieważ mają być wdrażane razem. Grupy te tworzą logiczne etapy implementacji.

Wdrożenie każdej z tych funkcji można kontrolować przy użyciu flag funkcji. Zaletą tego podejścia jest możliwość przyrostowego dodawania środowiska w czasie. Na przykład możesz zacząć od niewielkiej liczby możliwości. Pozostałe możliwości można dodać na późniejszym etapie, gdy wszystko będzie gotowe.

Zasoby podstawowe

Podstawowa funkcja zasobów modułu jest zgodna z obszarem projektowania organizacji zasobów przewodnika Cloud Adoption Framework. Wdraża podstawowe zasoby architektury koncepcyjnej dla stref docelowych platformy Azure.

Diagram showing the core Azure landing zones architecture deployed by the Terraform module.

Archetypów

Ważną koncepcją w zakresie podstawowych zasobów jest włączenie archetypów.

Archetypy zapewniają podejście wielokrotnego użytku oparte na kodzie do definiowania definicji zasad, definicji zestawu zasad, przypisań zasad, definicji ról i przypisań ról należy zastosować w danym zakresie. W implementacji programu Terraform te decyzje są hermetyzowane jako definicje archetypów.

Aby utworzyć strefę docelową, grupy zarządzania są skojarzone z definicją archetypu. W poniższym przykładzie dla strefy docelowej corp archetype_config ma wskaźnik do definicji archetypu "es_corp". Ta definicja zawiera wszystkie konfiguracje zasad i ról, które zostaną dodane do tej grupy zarządzania.

  es_corp_landing_zones = {
    "contoso-corp" = {
      display_name               = "Corp"
      parent_management_group_id = "contoso-landing-zones"
      subscription_ids           = []
      archetype_config           = {
        archetype_id ="es_corp"
        parameters   = {}
        access_control = {}
    }
  }

Gdy wbudowane archetypy nie są zgodne z wymaganiami, moduł udostępnia opcje tworzenia nowych archetypów lub wprowadzania zmian w istniejących.

Zasoby zarządzania

Możliwość zarządzania zasobami modułu jest zgodna z obszarem projektowania zarządzania w przewodniku Cloud Adoption Framework. Ta funkcja umożliwia wdrażanie zasobów zarządzania i monitorowania w strefie docelowej platformy zarządzania.

zasoby Połączenie ivity

Możliwości zasobów łączności w module udostępniają opcję wdrożenia topologii sieci i łącznościarchitektury koncepcyjnej dla stref docelowych platformy Azure.

Zasoby tożsamości

Funkcja zasobów tożsamości modułu jest zgodna z obszarem projektowania zarządzania tożsamościami i dostępem platformy Azure w przewodniku Cloud Adoption Framework. Ta funkcja umożliwia skonfigurowanie zasad w strefie docelowej platformy tożsamości.

Uwaga

Dzięki tej możliwości nie są wdrażane żadne zasoby. Gdy zmienna deploy_identity_resources ma wartość true, przypisania usługi Azure Policy są skonfigurowane, aby chronić zasoby w subskrypcji strefy docelowej platformy tożsamości.

Opisy modułów

Ta sekcja zawiera ogólne omówienie zasobów wdrożonych przez ten moduł.

Warstwa Typy zasobów opis Przydatne linki
Podstawowe funkcje Grupy zarządzania Grupy zarządzania to zasoby najwyższego poziomu w dzierżawie platformy Azure. Grupy zarządzania umożliwiają łatwiejsze zarządzanie zasobami. Zasady można stosować na poziomie grupy zarządzania, a zasoby niższego poziomu będą dziedziczyć te zasady. W szczególności można zastosować następujące elementy na poziomie grupy zarządzania, które będą dziedziczone przez subskrypcje w grupie zarządzania:
  • Zasady platformy Azure
  • Przypisania ról kontroli dostępu opartej na rolach (RBAC) platformy Azure
  • Kontrole kosztów
Podstawowe funkcje Definicje zasad, przypisania zasad i definicje zestawu zasad Zasady DeployIfNotExists (DINE) lub Modyfikuj pomagają zapewnić zgodność subskrypcji i zasobów tworzących strefy docelowe. Zasady są przypisywane do grup zarządzania za pomocą przypisań zasad. Zasady ułatwiają zarządzanie strefami docelowymi. Definicje zestawu zasad grupują zestawy zasad razem.

Nie wszyscy klienci mogą używać zasad DINE lub Modify. Jeśli tak się dzieje, wskazówki caF dotyczące zasad niestandardowych zawierają wskazówki.
Podstawowe funkcje Definicje ról i przypisania ról Kontrola dostępu oparta na rolach (RBAC) upraszcza zarządzanie prawami użytkowników w systemie. Zamiast zarządzać prawami osób fizycznych, należy określić prawa wymagane dla różnych ról w systemie. Kontrola dostępu oparta na rolach platformy Azure ma kilka wbudowanych ról. Definicje ról niestandardowych umożliwiają tworzenie ról niestandardowych dla danego środowiska.

Zarządzanie tożsamościami i dostępem (IAM) to kluczowa granica zabezpieczeń w przetwarzaniu w chmurze. Kontrola dostępu oparta na rolach platformy Azure umożliwia wykonywanie przypisań ról wbudowanych lub niestandardowych definicji ról do jednostek usługi, tożsamości zarządzanych lub grup zabezpieczeń w grupach zarządzania i subskrypcjach.
Zarządzanie Azure Monitor, Azure Automation i Microsoft Sentinel Usługi Azure Monitor, Azure Automation i Microsoft Sentinel umożliwiają monitorowanie infrastruktury i obciążeń oraz zarządzanie nimi. Azure Monitor to rozwiązanie, które umożliwia zbieranie, analizowanie i wykonywanie działań telemetrycznych ze środowiska.

Microsoft Sentinel to natywna dla chmury funkcja zarządzania informacjami i zdarzeniami zabezpieczeń (SIEM). Umożliwia to:
  • Zbieranie — zbieranie danych w całej infrastrukturze
  • Wykrywanie — wykrywanie zagrożeń, które wcześniej nie zostały wykryte
  • Reagowanie — reagowanie na uzasadnione zagrożenia za pomocą wbudowanej aranżacji
  • Badanie — badanie zagrożeń za pomocą sztucznej inteligencji

Usługa Azure Automation to oparty na chmurze system automatyzacji. Zawartość:
  • Zarządzanie konfiguracją — spis i śledzenie zmian maszyn wirtualnych z systemem Linux i Windows oraz zarządzanie konfiguracją żądanego stanu
  • Zarządzanie aktualizacjami — ocena zgodności systemu Windows i Linux oraz tworzenie zaplanowanych wdrożeń w celu spełnienia wymagań zgodności
  • Automatyzacja procesów — automatyzowanie zadań zarządzania
Łączność Podstawowe typy zasobów sieci wymienionych tutaj Topologia sieci to kluczowa kwestia we wdrożeniach strefy docelowej platformy Azure. CaF koncentruje się na dwóch podstawowych podejściach sieciowych:
  • Topologie oparte na usłudze Azure Virtual WAN
  • Tradycyjne topologie
Łączność Ochrona przed atakami DDoS Wskazówki dotyczące strefy docelowej platformy Azure zaleca włączenie usługi Azure DDoS Network Protection. Ta usługa oferuje kompleksową ochronę przed atakami DDoS.
Łączność Strefy DNS, strefy Prywatna strefa DNS i łącze sieci wirtualnej strefy Prywatna strefa DNS Prywatna strefa DNS stref można wdrożyć w celu obsługi korzystania z prywatnych punktów końcowych. Prywatny punkt końcowy to karta sieciowa, która ma przypisany prywatny adres IP z sieci wirtualnej. Za pomocą prywatnego adresu IP można bezpiecznie komunikować się z usługami obsługującymi usługę Azure Private Link. Prywatna strefa DNS strefy można skonfigurować w celu rozpoznawania w pełni kwalifikowanej nazwy domeny (FQDN) usługi na prywatny adres IP prywatnego punktu końcowego.

Korzystanie z modułu Terraform

Wdrażanie podstawowych zasobów

Domyślnie moduł wdroży następującą hierarchię, która jest podstawowym zestawem grup zarządzania strefami docelowymi:

  • Głównego
    • Platforma
      • Tożsamość
      • Zarządzanie
      • Łączność
    • Strefy docelowe
    • Sprzęt zlikwidowany
    • Piaskownica

Grupy zarządzania strefami docelowymi SAP, Corp i Online nie mają zastosowania do wszystkich użytkowników, więc nie są one domyślnie wdrażane. Poniżej przedstawiono sposoby wdrażania następujących elementów:

  1. W celach demonstracyjnych można ustawić zmienną deploy_demo_landing_zones na true, która będzie wdrażać strefy docelowe SAP, Corp i Online
  2. W celach produkcyjnych można włączyć żądane grupy zarządzania, ustawiając następujące zmienne na true:
    • deploy_corp_landing_zones
    • deploy_online_landing_zones
    • deploy_sap_landing_zones
  3. Możesz wdrożyć własne niestandardowe grupy zarządzania strefami docelowymi, tworząc niestandardową definicję strefy docelowej

Wdrażanie zasobów zarządzania

Aby wdrożyć zasoby zarządzania, zmienna deploy_management_resources musi być ustawiona na wartość true, a subscription_id_management zmienna musi być ustawiona na identyfikator subskrypcji zarządzania, w której mają być wdrażane zasoby.

deploy_management_resources = true
subscription_id_management = <management subscription id>

Wdrażanie zasobów łączności

Wdrażanie zasobów Połączenie ivity zawiera wskazówki dotyczące wdrażania tych topologii.

Wdrażanie zasobów tożsamości

Aby wdrożyć funkcję tożsamości, zmienna musi być ustawiona na wartość true, deploy_identity_resources a subscription_id_identity zmienna musi być ustawiona na identyfikator subskrypcji tożsamości, w której mają zostać skonfigurowane zasady.

deploy_identity_resources = true
subscription_id_identity = <identity subscription id>

Dostosowywanie implementacji narzędzia Terraform

Implementacje strefy docelowej platformy Azure udostępniane w ramach przewodnika Cloud Adoption Framework odpowiadają szerokiej gamie wymagań i przypadków użycia. Jednak często istnieją scenariusze, w których dostosowanie jest wymagane do spełnienia określonych potrzeb biznesowych.

Moduł Terraform stref docelowych platformy Azure może służyć jako podstawa dostosowanego wdrożenia. Dzięki temu można przyspieszyć implementację, usuwając konieczność rozpoczęcia od podstaw z powodu określonej wymaganej zmiany reguł gotowej opcji.

GitHub logo Informacje na temat dostosowywania modułów są dostępne w witrynie typu wiki repozytorium GitHub: moduł Terraform stref docelowych platformy Azure — wiki. Można go użyć jako punktu początkowego i skonfigurować zgodnie z potrzebami.