Dela via


Azure-landningszoner – Designöverväganden för Terraform-modul

I den här artikeln beskrivs viktiga områden att tänka på när du använder Terraform-modulen För Azure-landningszoner. Modulen innehåller en åsiktsbaserad metod för att distribuera och driva en Azure-plattform baserat på den konceptuella arkitekturen för Azure-landningszonen enligt beskrivningen i Cloud Adoption Framework (CAF).

Terraform är ett IaC-verktyg (Infrastruktur som kod med öppen källkod) som skapats av HashiCorp och som använder deklarativ syntax för att distribuera infrastrukturresurser. Den är utökningsbar, har plattformsoberoende stöd och möjliggör oföränderlig infrastruktur via tillståndsspårning.


Viktigt!

Modulen är tillgänglig i Terraform Registry: Azure-landningszoner Terraform-modulen. Du kan använda den som utgångspunkt och konfigurera den enligt dina behov.

Kommentar

Det finns implementeringar för flera distributionstekniker , inklusive portalbaserade ARM-mallar och Terraform-moduler. Valet av distributionsteknik bör inte påverka den resulterande distributionen av Azure-landningszoner.

ALZ Terraform Accelerator

För att snabbt komma igång med att distribuera ALZ med Terraform kan du använda ALZ Terraform Accelerator som är utformad för att användas som mall. Den här lagringsplatsen tillhandahåller en stödjande implementering av Terraform-modulen azure-landningszoner med Azure DevOps-pipelines och GitHub actions-arbetsflöden.

ALZ Terraform Accelerator följer en 3-fasmetod:

  1. Krav: Instruktioner för att konfigurera autentiseringsuppgifter och prenumerationer.
  2. Bootstrap: Kör PowerShell-skriptet för att generera miljön för kontinuerlig leverans.
  3. Kör: Uppdatera modulen (om det behövs) så att den passar organisationens behov och distribuera via kontinuerlig leverans.

Börja med användarhandboken med ett steg för steg för att få igång din Azure Landing Zone-miljö.

Designa

Diagram som visar konceptarkitekturen för Azure-landningszoner.

Arkitekturen utnyttjar terraformens konfigurerbara karaktär och består av en primär orkestreringsmodul. Den här modulen kapslar in flera funktioner i den konceptuella arkitekturen för Azure-landningszoner. Du kan distribuera varje funktion individuellt eller delvis. Du kan till exempel bara distribuera ett hubbnätverk, bara Azure DDoS Protection eller bara DNS-resurserna. När du gör det måste du ta hänsyn till att funktionerna har beroenden.

Arkitekturen använder en orkestreringsmetod för att förenkla distributionsupplevelsen. Du kanske föredrar att implementera varje funktion med hjälp av en eller flera dedikerade modulinstanser där var och en är dedikerad till en viss del av arkitekturen. Allt detta är möjligt med rätt konfiguration

Moduler

Ett grundläggande begrepp i Terraform är användningen av moduler. Med moduler kan du ordna distributioner i logiska grupper. Med moduler kan du förbättra läsbarheten för dina Terraform-filer genom att kapsla in komplex information om distributionen. Du kan också enkelt återanvända moduler för olika distributioner.

Möjligheten att återanvända moduler ger en verklig fördel när du definierar och distribuerar landningszoner. Det möjliggör repeterbara, konsekventa miljöer i kod samtidigt som du minskar den ansträngning som krävs för att distribuera i stor skala.

Terraform-implementeringen av Azure-landningszoner levereras med hjälp av en enda modul som fungerar som ett orkestreringslager. Med orkestreringsskiktet kan du välja vilka resurser som ska distribueras och hanteras med hjälp av modulen. Modulen kan användas flera gånger i samma miljö för att distribuera resurser oberoende av varandra. Detta kan vara användbart i organisationer där olika team ansvarar för de olika funktionerna eller samlingar av underresurser.

Lager och mellanlagring

Implementeringen fokuserar på den centrala resurshierarkin i den konceptuella arkitekturen i Azure-landningszonen. Designen är centrerad kring följande funktioner:

  • Kärnresurser
  • Hanteringsresurser
  • Anslutningsresurser
  • Identitetsresurser

Modulen grupperar resurser i dessa funktioner eftersom de är avsedda att distribueras tillsammans. Dessa grupper utgör logiska faser i implementeringen.

Du styr distributionen av var och en av dessa funktioner med hjälp av funktionsflaggor. En fördel med den här metoden är möjligheten att öka din miljö stegvis över tid. Du kan till exempel börja med ett litet antal funktioner. Du kan lägga till de återstående funktionerna i ett senare skede när du är redo.

Kärnresurser

Modulens kärnresurser anpassas till designområdet för resursorganisationen i Cloud Adoption Framework. Den distribuerar de grundläggande resurserna i den konceptuella arkitekturen för Azure-landningszoner.

Diagram som visar kärnarkitekturen för Azure-landningszoner som distribueras av Terraform-modulen.

Arketyper

Ett viktigt begrepp inom kärnresurskapaciteten är inkluderingen av arketyper.

Arketyper ger en återanvändbar, kodbaserad metod för att definiera vilka principdefinitioner, principuppsättningsdefinitioner, principtilldelningar, rolldefinitioner och rolltilldelningar som måste tillämpas i ett visst omfång. I Terraform-implementeringen kapslas dessa beslut in som arketypdefinitioner.

För att skapa en landningszon associeras hanteringsgrupper med en arketypsdefinition. I exemplet nedan för en corp-landningszon har archetype_config en pekare till arketypdefinitionen "es_corp". Den definitionen innehåller alla princip- och rollkonfigurationer som ska läggas till i den här hanteringsgruppen.

  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 = {}
    }
  }

När de inbyggda arketyperna inte överensstämmer med dina krav ger modulen alternativ för att antingen skapa nya arketyper eller göra ändringar i befintliga.

Hanteringsresurser

Modulens hanteringsresurser anpassas till designområdet för hantering i Cloud Adoption Framework. Den här funktionen ger möjlighet att distribuera hanterings- och övervakningsresurser till landningszonen för hanteringsplattformen.

Anslutningsresurser

Modulens kapacitet för anslutningsresurser ger möjlighet att distribuera nätverkstopologin och anslutningen för den konceptuella arkitekturen för Azure-landningszoner.

Identitetsresurser

Modulens kapacitet för identitetsresurser är anpassad till designområdet för Azure-identitets- och åtkomsthantering i Cloud Adoption Framework. Den här funktionen ger möjlighet att konfigurera principer i landningszonen identitetsplattform.

Kommentar

Inga resurser distribueras med den här funktionen. När variabeln deploy_identity_resources är inställd på true konfigureras Azure Policy-tilldelningar som skyddar resurser i identitetsplattformens landningszonprenumeration.

Modulbeskrivningar

Det här avsnittet innehåller en översikt på hög nivå över de resurser som distribueras av den här modulen.

Skikt Resurstyper beskrivning Användbara länkar
Kärna Hanteringsgrupper Hanteringsgrupper är de högsta resurserna i en Azure-klientorganisation. Med hanteringsgrupper kan du enklare hantera dina resurser. Du kan tillämpa principen på hanteringsgruppsnivå och resurser på lägre nivå ärver den principen. Mer specifikt kan du använda följande objekt på hanteringsgruppsnivå som ska ärvas av prenumerationer under hanteringsgruppen:
  • Azure-principer
  • Rolltilldelningar för rollbaserade åtkomstkontroller (RBAC) i Azure
  • Kostnadskontroller
Kärna Principdefinitioner, principtilldelningar och principuppsättningsdefinitioner DeployIfNotExists (DINE) eller Ändra principer hjälper till att säkerställa att de prenumerationer och resurser som utgör landningszoner är kompatibla. Principer tilldelas till hanteringsgrupper via principtilldelningar. Policyerna underlättar hanteringen av landningszoner. Principuppsättningsdefinitioner grupperar uppsättningar med principer tillsammans.

Alla kunder kan inte använda DINE- eller Ändra-principer. Om så är fallet för dig ger CAF-vägledning om anpassade principer vägledning.
Kärna Rolldefinitioner och rolltilldelningar Rollbaserad åtkomstkontroll (RBAC) förenklar hanteringen av användarrättigheter i ett system. I stället för att hantera enskilda personers rättigheter bestämmer du vilka rättigheter som krävs för olika roller i systemet. Azure RBAC har flera inbyggda roller. Med anpassade rolldefinitioner kan du skapa anpassade roller för din miljö.

Identitets- och åtkomsthantering (IAM) är den viktigaste säkerhetsgränsen inom molnbaserad databehandling. Med Azure RBAC kan du utföra rolltilldelningar av inbyggda roller eller anpassade rolldefinitioner till tjänsthuvudnamn, hanterade identiteter eller säkerhetsgrupper mellan hanteringsgrupper och prenumerationer.
Hantering Azure Monitor, Azure Automation och Microsoft Sentinel Med Azure Monitor, Azure Automation och Microsoft Sentinel kan du övervaka och hantera din infrastruktur och dina arbetsbelastningar. Azure Monitor är en lösning som gör att du kan samla in, analysera och agera på telemetri från din miljö.

Microsoft Sentinel är en molnbaserad säkerhetsinformation och händelsehantering (SIEM). Det gör att du kan:
  • Samla in – Samla in data i hela infrastrukturen
  • Identifiera – Identifiera hot som tidigare inte identifierades
  • Svara – Svara på legitima hot med inbyggd orkestrering
  • Undersök – Undersöka hot med artificiell intelligens

Azure Automation är ett molnbaserat automatiseringssystem. Den innehåller:
  • Konfigurationshantering – Inventera och spåra ändringar för virtuella Linux- och Windows-datorer och hantera önskad tillståndskonfiguration
  • Uppdateringshantering – Utvärdera Windows- och Linux-systemefterlevnad och skapa schemalagda distributioner för att uppfylla efterlevnad
  • Processautomatisering – Automatisera hanteringsuppgifter
Anslutning Resurstyper för kärnnätverk som anges här Nätverkstopologi är en viktig faktor i distributioner av Azure-landningszoner. CAF fokuserar på två grundläggande nätverksmetoder:
  • Topologier baserade på Azure Virtual WAN
  • Traditionella topologier
Anslutning Azure DDoS-skydd Vägledning för Azure-landningszoner rekommenderar att du aktiverar Azure DDoS Network Protection. Den här tjänsten erbjuder nyckelfärdigt skydd mot DDoS-attacker.
Anslutning DNS-zoner, privata DNS-zoner och länk till privat DNS-zon virtuellt nätverk Privata DNS-zoner kan distribueras för att stödja användningen av privata slutpunkter. En privat slutpunkt är ett nätverkskort som tilldelas en privat IP-adress från ditt virtuella nätverk. Du kan använda den privata IP-adressen för att på ett säkert sätt kommunicera med tjänster som stöder Azure Private Link. Privata DNS-zoner kan konfigureras för att matcha tjänstens fullständigt kvalificerade domännamn (FQDN) till den privata slutpunktens privata IP-adress.

Använda Terraform-modulen

Distribuera kärnresurser

Som standard distribuerar modulen följande hierarki, som är kärnuppsättningen för hanteringsgrupper för landningszoner:

  • Rot
    • Plattform
      • Identitet
      • Hantering
      • Anslutning
    • Landningszoner
    • Avvecklas
    • Begränsat läge

Hanteringsgrupperna SAP, Corp och Online-landningszoner gäller inte för alla, så de distribueras inte som standard. Följande är sätt att distribuera dessa:

  1. I demosyfte kan du ange variabeln deploy_demo_landing_zones till true som distribuerar SAP-, Corp- och Online-landningszoner
  2. I produktionssyfte kan du aktivera de hanteringsgrupper som du vill använda genom att ställa in följande variabler på sant:
    • deploy_corp_landing_zones
    • deploy_online_landing_zones
    • deploy_sap_landing_zones
  3. Du kan distribuera dina egna anpassade hanteringsgrupper för landningszoner genom att skapa en anpassad definition för landningszoner

Distribuera hanteringsresurser

Om du vill distribuera hanteringsresurserna måste variabeln deploy_management_resources vara inställd på true och variabeln subscription_id_management måste anges till ID för hanteringsprenumerationen där resurserna ska distribueras.

deploy_management_resources = true
subscription_id_management = <management subscription id>

Distribuera anslutningsresurser

Distribuera anslutningsresurser ger vägledning om hur du distribuerar dessa topologier.

Distribuera identitetsresurser

Om du vill distribuera identitetsfunktionen måste variabeln deploy_identity_resources vara inställd på true och variabeln subscription_id_identity måste anges till ID för identitetsprenumerationen där principerna ska konfigureras.

deploy_identity_resources = true
subscription_id_identity = <identity subscription id>

Anpassa Terraform-implementeringen

Implementeringarna av Azure-landningszonen som tillhandahålls som en del av Cloud Adoption Framework passar en mängd olika krav och användningsfall. Det finns dock ofta scenarier där anpassning krävs för att uppfylla specifika affärsbehov.

Terraform-modulen för Azure-landningszoner kan användas som grund för din anpassade distribution. Det ger dig ett sätt att påskynda implementeringen genom att ta bort behovet av att börja från början på grund av en specifik nödvändig ändring som styr ett färdigt alternativ.

GitHub-logotyp Information om hur du anpassar modulerna finns i GitHub-lagringsplatsens GitHub : Azure-landningszoner Terraform-modul – Wiki. Du kan använda den som utgångspunkt och konfigurera den enligt dina behov.