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:
- Krav: Instruktioner för att konfigurera autentiseringsuppgifter och prenumerationer.
- Bootstrap: Kör PowerShell-skriptet för att generera miljön för kontinuerlig leverans.
- 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
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.
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:
|
|
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:
Azure Automation är ett molnbaserat automatiseringssystem. Den innehåller:
|
|
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:
|
|
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, Privat DNS-zoner och Privat DNS Zone Virtual Network Link | Privat 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. Privat 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
- Plattform
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:
- I demosyfte kan du ange variabeln
deploy_demo_landing_zones
till true som distribuerar SAP-, Corp- och Online-landningszoner - 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
- 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.
Dricks
Mer information finns i Anpassa arkitekturen för Azure-landningszoner för att uppfylla kraven .
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.
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.