Delen via


Azure-landingszones- Ontwerpoverwegingen voor Terraform-modules

In dit artikel worden belangrijke gebieden besproken die u moet overwegen bij het gebruik van de Terraform-module van Azure-landingszones. De module biedt een aanbevolen benadering voor het implementeren en gebruiken van een Azure-platform op basis van de conceptuele architectuur van de Azure-landingszone, zoals beschreven in het Cloud Adoption Framework (CAF).

Terraform is een opensource-hulpprogramma Infrastructure as Code (IaC), gemaakt door HashiCorp, dat declaratieve syntaxis gebruikt om infrastructuurbronnen te implementeren. Het is uitbreidbaar, biedt platformoverschrijdende ondersteuning en maakt onveranderbare infrastructuur mogelijk via statustracering.


Belangrijk

De module is beschikbaar in het Terraform Registry: Azure-landingszones Terraform-module. U kunt het als uitgangspunt gebruiken en configureren op basis van uw behoeften.

Notitie

Er zijn implementaties voor verschillende implementatietechnologieën, waaronder portalgebaseerde ARM-sjablonen en Terraform-modules. De keuze van implementatietechnologie mag geen invloed hebben op de resulterende implementatie van Azure-landingszones.

ALZ Terraform Accelerator

Om snel aan de slag te gaan met het implementeren van ALZ met Terraform, kunt u gebruikmaken van de ALZ Terraform Accelerator die is ontworpen om te worden gebruikt als sjabloon. Deze opslagplaats biedt een ondersteunende implementatie van de Terraform-module Azure Landing Zones, met Azure DevOps-pijplijnen en GitHub-actieswerkstromen.

De ALZ Terraform Accelerator volgt een driefasebenadering:

  1. Vereisten: instructies voor het configureren van referenties en abonnementen.
  2. Bootstrap: Voer het PowerShell-script uit om de continue leveringsomgeving te genereren.
  3. Uitvoeren: Werk de module (indien nodig) bij naar de behoeften van uw organisatie en implementeer deze via continue levering.

Begin met de gebruikershandleiding met een stap voor stap om uw Azure Landing Zone-omgeving aan de slag te laten gaan.

Ontwerpen

Diagram van de conceptuele architectuur van azure-landingszones.

De architectuur maakt gebruik van de configureerbare aard van Terraform en bestaat uit een primaire indelingsmodule. Deze module bevat meerdere mogelijkheden van de conceptarchitectuur van Azure-landingszones. U kunt elke mogelijkheid afzonderlijk of gedeeltelijk implementeren. U kunt bijvoorbeeld alleen een hubnetwerk of alleen de Azure DDoS Protection of alleen de DNS-resources implementeren. Als u dit doet, moet u rekening houden met het feit dat de mogelijkheden afhankelijkheden hebben.

De architectuur maakt gebruik van een orchestratorbenadering om de implementatie-ervaring te vereenvoudigen. Mogelijk wilt u liever elke mogelijkheid implementeren met behulp van een of meer toegewezen module-exemplaren, waarbij elk is toegewezen aan een specifiek deel van de architectuur. Dit is allemaal mogelijk met de juiste configuratie

Modules

Een kernconcept in Terraform is het gebruik van modules. Met modules kunt u implementaties organiseren in logische groeperingen. Met modules verbetert u de leesbaarheid van uw Terraform-bestanden door complexe details van uw implementatie in te kapselen. U kunt modules ook eenvoudig hergebruiken voor verschillende implementaties.

De mogelijkheid om modules opnieuw te gebruiken biedt een echt voordeel bij het definiëren en implementeren van landingszones. Het maakt herhaalbare, consistente omgevingen in code mogelijk en vermindert tegelijkertijd de inspanning die nodig is om op schaal te implementeren.

De Terraform-implementatie van Azure-landingszones wordt geleverd met één module die fungeert als een indelingslaag. Met de indelingslaag kunt u selecteren welke resources worden geïmplementeerd en beheerd met behulp van de module. De module kan meerdere keren in dezelfde omgeving worden gebruikt om resources onafhankelijk van elkaar te implementeren. Dit kan handig zijn in organisaties waar verschillende teams verantwoordelijk zijn voor de verschillende mogelijkheden of verzamelingen van subresources.

Lagen en fasering

De implementatie is gericht op de centrale resourcehiërarchie van de conceptuele architectuur van de Azure-landingszone. Het ontwerp is gecentreerd rond de volgende mogelijkheden:

  • Kernresources
  • Beheerbronnen
  • Connectiviteitsbronnen
  • Identiteitsbronnen

De module groepeert resources in deze mogelijkheden, omdat ze zijn bedoeld om samen te worden geïmplementeerd. Deze groepen vormen logische fasen van de implementatie.

U beheert de implementatie van elk van deze mogelijkheden met behulp van functievlagmen. Een voordeel van deze aanpak is de mogelijkheid om stapsgewijs aan uw omgeving toe te voegen. U kunt bijvoorbeeld beginnen met een klein aantal mogelijkheden. U kunt de resterende mogelijkheden in een later stadium toevoegen wanneer u klaar bent.

Kernresources

De kernresourcemogelijkheden van de module zijn afgestemd op het ontwerpgebied van de resourceorganisatie van het Cloud Adoption Framework. Hiermee worden de basisbronnen van de conceptuele architectuur voor Azure-landingszones geïmplementeerd.

Diagram met de basisarchitectuur voor Azure-landingszones die is geïmplementeerd door de Terraform-module.

Archetypes

Een belangrijk concept binnen de kernresources is het opnemen van archetypen.

Archetypen bieden een herbruikbare, op code gebaseerde benadering voor het definiëren van welke beleidsdefinities, beleidssetdefinities, beleidstoewijzingen, roldefinities en roltoewijzingen op een bepaald bereik moeten worden toegepast. In de Terraform-implementatie worden deze beslissingen ingekapseld als archetypedefinities.

Als u een landingszone wilt maken, worden beheergroepen gekoppeld aan een archetypedefinitie. In het onderstaande voorbeeld voor een corp-landingszone heeft de archetype_config een aanwijzer naar de archetypedefinitie 'es_corp'. Deze definitie bevat alle beleids- en rolconfiguraties die worden toegevoegd aan deze beheergroep.

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

Wanneer de ingebouwde archetypen niet zijn afgestemd op uw vereisten, biedt de module opties voor het maken van nieuwe archetypen of het aanbrengen van wijzigingen in bestaande archetypen.

Beheerbronnen

De beheerresources van de module zijn afgestemd op het ontwerpgebied van het Cloud Adoption Framework. Deze mogelijkheid biedt de mogelijkheid om beheer- en bewakingsbronnen te implementeren in de landingszone van het beheerplatform.

Connectiviteitsbronnen

De connectiviteitsresources van de module bieden de mogelijkheid om de netwerktopologie en connectiviteit van de conceptuele architectuur voor Azure-landingszones te implementeren.

Identiteitsbronnen

De mogelijkheid van identiteitsresources van de module is afgestemd op het ontwerpgebied voor identiteits- en toegangsbeheer van het Cloud Adoption Framework. Deze mogelijkheid biedt de mogelijkheid om beleidsregels te configureren voor de landingszone van het Identiteitsplatform.

Notitie

Er worden geen resources geïmplementeerd met deze mogelijkheid. Wanneer de deploy_identity_resources variabele is ingesteld op true, worden Azure Policy-toewijzingen geconfigureerd die resources beveiligen in het abonnement van de landingszone voor identiteitsplatforms.

Modulebeschrijvingen

Deze sectie biedt een algemeen overzicht van de resources die door deze module zijn geïmplementeerd.

Laag Resourcetype(en) Beschrijving Nuttige koppelingen
Basis Beheergroepen Beheergroepen zijn de resources op het hoogste niveau in een Azure-tenant. Met beheergroepen kunt u uw resources eenvoudiger beheren. U kunt beleid toepassen op het niveau van de beheergroep en resources op lager niveau nemen dat beleid over. U kunt met name de volgende items toepassen op het niveau van de beheergroep die worden overgenomen door abonnementen onder de beheergroep:
  • Azure-beleid
  • RBAC-roltoewijzingen (Op rollen gebaseerd toegangsbeheer) van Azure
  • Kostenbeheer
Basis Beleidsdefinities, beleidstoewijzingen en definities van beleidssets DeployIfNotExists (DINE) of Beleid wijzigen helpt ervoor te zorgen dat de abonnementen en resources waaruit landingszones bestaan, compatibel zijn. Beleidsregels worden toegewezen aan beheergroepen via beleidstoewijzingen. Het beleid vereenvoudigt het beheer van landingszones. Groepsbeleidssetdefinities groeperen beleidsregels samen.

Niet alle klanten kunnen DINE gebruiken of beleid wijzigen. Als dat het geval is voor u, biedt CAF-richtlijnen voor aangepaste beleidsregels richtlijnen.
Basis Roldefinities en roltoewijzingen Op rollen gebaseerd toegangsbeheer (RBAC) vereenvoudigt het beheer van gebruikersrechten binnen een systeem. In plaats van de rechten van personen te beheren, bepaalt u de rechten die vereist zijn voor verschillende rollen in uw systeem. Azure RBAC heeft verschillende ingebouwde rollen. Met aangepaste roldefinities kunt u aangepaste rollen maken voor uw omgeving.

Identiteits- en toegangsbeheer (IAM) is de belangrijkste beveiligingsgrens in cloud-computing. Met Azure RBAC kunt u roltoewijzingen uitvoeren van ingebouwde rollen of aangepaste roldefinities voor service-principals, beheerde identiteiten of beveiligingsgroepen in beheergroepen en abonnementen.
Beheer Azure Monitor, Azure Automation en Microsoft Sentinel Met Azure Monitor, Azure Automation en Microsoft Sentinel kunt u uw infrastructuur en workloads bewaken en beheren. Azure Monitor is een oplossing waarmee u telemetriegegevens uit uw omgeving kunt verzamelen, analyseren en er actie op kunt ondernemen.

Microsoft Sentinel is een cloudeigen SIEM (Security Information and Event Management). Hiermee kunt u het volgende doen:
  • Verzamelen - Gegevens verzamelen in uw hele infrastructuur
  • Detecteren - Bedreigingen detecteren die eerder niet zijn gedetecteerd
  • Reageren - Reageren op legitieme bedreigingen met ingebouwde indeling
  • Onderzoeken - Bedreigingen onderzoeken met kunstmatige intelligentie

Azure Automation is een automatiseringssysteem in de cloud. Deze bevat:
  • Configuratiebeheer: wijzigingen inventariseren en bijhouden voor virtuele Linux- en Windows-machines en gewenste statusconfiguratie beheren
  • Updatebeheer - Windows- en Linux-systeemnaleving beoordelen en geplande implementaties maken om te voldoen aan de naleving
  • Procesautomatisering - Beheertaken automatiseren
Connectiviteit Resourcetypen voor kernnetwerken die hier worden vermeld Netwerktopologie is een belangrijke overweging in implementaties van Azure-landingszones. CAF richt zich op twee kernnetwerken:
  • Topologieën op basis van Azure Virtual WAN
  • Traditionele topologieën
Connectiviteit Azure DDoS-beveiliging Richtlijnen voor azure-landingszones raden u aan Azure DDoS-netwerkbeveiliging in te schakelen. Deze service biedt kant-en-klare beveiliging tegen DDoS-aanvallen.
Connectiviteit DNS-zones, Privé-DNS-zones en Privé-DNS Zone Virtual Network Link Privé-DNS zones kunnen worden geïmplementeerd ter ondersteuning van het gebruik van privé-eindpunten. Een privé-eindpunt is een NIC waaraan een privé-IP-adres van uw virtuele netwerk is toegewezen. U kunt het privé-IP-adres gebruiken om veilig te communiceren met services die Ondersteuning bieden voor Azure Private Link. Privé-DNS zones kunnen worden geconfigureerd om de FQDN (Fully Qualified Domain Name) van de service op te lossen naar het privé-eindpunt privé-IP-adres.

De Terraform-module gebruiken

Kernresources implementeren

Standaard implementeert de module de volgende hiërarchie. Dit is de kernset van beheergroepen voor landingszones:

  • Wortel
    • Platform
      • Identiteit
      • Beheer
      • Connectiviteit
    • Landingszones
    • Uit bedrijf genomen
    • Sandbox

De beheergroepen voor sap-, corp- en onlinelandingszones zijn niet van toepassing op iedereen, zodat ze niet standaard worden geïmplementeerd. Hier volgen manieren om deze te implementeren:

  1. Voor demodoeleinden kunt u de deploy_demo_landing_zones variabele instellen op waar waarmee SAP-, Corp- en Online-landingszones worden geïmplementeerd
  2. Voor productiedoeleinden kunt u de gewenste beheergroepen inschakelen door de volgende variabelen in te stellen op waar:
    • deploy_corp_landing_zones
    • deploy_online_landing_zones
    • deploy_sap_landing_zones
  3. U kunt uw eigen aangepaste beheergroepen voor landingszones implementeren door een aangepaste definitie van de landingszone te maken

Beheerbronnen implementeren

Als u de beheerbronnen wilt implementeren, moet de deploy_management_resources variabele worden ingesteld op true en moet de subscription_id_management variabele worden ingesteld op de id van het beheerabonnement waar de resources moeten worden geïmplementeerd.

deploy_management_resources = true
subscription_id_management = <management subscription id>

Connectiviteitsbronnen implementeren

Connectiviteitsbronnen implementeren biedt richtlijnen voor het implementeren van deze topologieën.

Identiteitsbronnen implementeren

Als u de identiteitsmogelijkheid wilt implementeren, moet de deploy_identity_resources variabele worden ingesteld op waar en moet de subscription_id_identity variabele worden ingesteld op de id van het identiteitsabonnement waar het beleid moet worden geconfigureerd.

deploy_identity_resources = true
subscription_id_identity = <identity subscription id>

De Terraform-implementatie aanpassen

De implementaties van de Azure-landingszone die worden geleverd als onderdeel van het Cloud Adoption Framework, zijn geschikt voor een groot aantal vereisten en gebruiksscenario's. Er zijn echter vaak scenario's waarin aanpassing is vereist om te voldoen aan specifieke bedrijfsbehoeften.

De Terraform-module voor Azure-landingszones kan worden gebruikt als basis voor uw aangepaste implementatie. Het biedt u een manier om uw implementatie te versnellen door de noodzaak om helemaal opnieuw te beginnen te verwijderen vanwege een specifieke vereiste wijziging die een kant-en-klare optie uitvoert.

GitHub-logo Informatie over het aanpassen van de modules is beschikbaar in de GitHub-opslagplaatswiki GitHub: Azure-landingszones Terraform-module - Wiki. U kunt het als uitgangspunt gebruiken en configureren op basis van uw behoeften.