Använd terraform för att bygga landnings zonerUse Terraform to build your landing zones

Azure tillhandahåller inbyggda tjänster för att distribuera landnings zoner.Azure provides native services for deploying your landing zones. Andra verktyg från tredje part kan också hjälpa dig med den här ansträngningen.Other third-party tools can also help with this effort. Ett sådant verktyg som kunder och partners ofta använder för att distribuera landnings zoner är terraform av HashiCorp.One such tool that customers and partners often use to deploy landing zones is Terraform by HashiCorp. Det här avsnittet visar hur du använder en exempel zon för att distribuera grundläggande styrnings-, redovisnings-och säkerhets funktioner för en Azure-prenumeration.This section shows how to use a sample landing zone to deploy foundational governance, accounting, and security capabilities for an Azure subscription.

Syftet med landnings zonenPurpose of the landing zone

I avsnittet om att införa ramverk för moln införande i terraform finns funktioner för att genomdriva loggning, redovisning och säkerhet.The Cloud Adoption Framework foundations landing zone for Terraform provides features to enforce logging, accounting, and security. Den här landnings zonen använder standard komponenter som kallas terraform-moduler för att tvinga fram konsekvens mellan resurser som distribueras i miljön.This landing zone uses standard components known as Terraform modules to enforce consistency across resources deployed in the environment.

Använda standardmodulerUse standard modules

Åter användning av komponenter är en grundläggande princip för infrastruktur som kod.Reuse of components is a fundamental principle of infrastructure as code. Moduler är instrumentell för att definiera standarder och konsekvens för resurs distribution inom och mellan olika miljöer.Modules are instrumental in defining standards and consistency across resource deployment within and across environments. Modulerna som används för att distribuera den första landnings zonen är tillgängliga i den officiella terraform-registret.The modules used to deploy this first landing zone are available in the official Terraform registry.

ArkitekturdiagramArchitecture diagram

Den första landnings zonen distribuerar följande komponenter i din prenumeration:The first landing zone deploys the following components in your subscription:

Grundläggande landnings zon med terraform bild 1: en grund landnings zon med terraform.Foundational landing zone using Terraform Figure 1: A foundation landing zone using Terraform.

FunktionerCapabilities

De komponenter som distribueras och deras syfte är följande:The components deployed and their purpose include the following:

KomponentComponent LiggerResponsibility
ResursgrupperResource groups Kärn resurs grupper som behövs för stiftelsenCore resource groups needed for the foundation
AktivitetsloggningActivity logging Granska alla prenumerations aktiviteter och arkivering:Auditing all subscription activities and archiving:
  • LagringskontoStorage account
  • Azure Event HubsAzure Event Hubs
  • DiagnostikloggningDiagnostics logging Alla åtgärds loggar som behålls under ett angivet antal dagar:All operation logs kept for a specific number of days:
  • LagringskontoStorage account
  • Event HubsEvent Hubs
  • Log AnalyticsLog Analytics Lagrar åtgärds loggarna.Stores the operation logs. Distribuera vanliga lösningar för djupgående program metod tips:Deploy common solutions for deep application best practices review:
  • NetworkMonitoringNetworkMonitoring
  • AdAssessmentAdAssessment
  • AdReplicationAdReplication
  • AgentHealthAssessmentAgentHealthAssessment
  • DnsAnalyticsDnsAnalytics
  • KeyVaultAnalyticsKeyVaultAnalytics
  • Azure Security CenterAzure Security Center Mått och aviseringar för säkerhets hygien som skickas till e-post och telefonnummerSecurity hygiene metrics and alerts sent to email and phone number

    Använd den här skissenUse this blueprint

    Läs igenom följande antaganden, beslut och implementerings vägledning innan du använder Cloud implementation Framework Foundation-zonen.Before you use the Cloud Adoption Framework foundation landing zone, review the following assumptions, decisions, and implementation guidance.

    AntagandenAssumptions

    Följande antaganden eller begränsningar ansågs när den inledande landnings zonen definierades.The following assumptions or constraints were considered when this initial landing zone was defined. Om dessa antaganden överensstämmer med dina begränsningar kan du använda skissen för att skapa din första landningszon.If these assumptions align with your constraints, you can use the blueprint to create your first landing zone. Skissen kan också utökas för att skapa en landningszonskiss som uppfyller dina unika begränsningar.The blueprint also can be extended to create a landing zone blueprint that meets your unique constraints.

    • Prenumerations begränsningar: Den här antagande ansträngningen är osannolik för att överskrida prenumerations gränserna.Subscription limits: This adoption effort is unlikely to exceed subscription limits. Två vanliga indikatorer är ett överskott på 25 000 virtuella datorer eller 10 000 virtuella processorer.Two common indicators are an excess of 25,000 VMs or 10,000 vCPUs.
    • Kompatibilitet: Det behövs inga krav från tredje parts efterlevnad för denna landnings zon.Compliance: No third-party compliance requirements are needed for this landing zone.
    • Arkitektur komplexitet: Arkitektur komplexitet kräver inte ytterligare produktions prenumerationer.Architectural complexity: Architectural complexity doesn't require additional production subscriptions.
    • Delade tjänster: Inga befintliga delade tjänster i Azure kräver att den här prenumerationen behandlas som en eker i en hubb och eker-arkitektur.Shared services: No existing shared services in Azure require this subscription to be treated like a spoke in a hub and spoke architecture.

    Om dessa antaganden matchar din aktuella miljö kan den här skissen vara ett bra sätt att börja skapa din landnings zon.If these assumptions match your current environment, this blueprint might be a good way to start building your landing zone.

    Design beslutDesign decisions

    Följande beslut visas i CAF terraform-modulerna:The following decisions are represented in the CAF Terraform modules:

    KomponentComponent BeslutDecisions Alternativa metoderAlternative approaches
    Loggning och övervakningLogging and monitoring Azure Monitor Log Analytics arbets ytan används.Azure Monitor Log Analytics workspace is used. Ett diagnostiskt lagrings konto samt händelsehubben är etablerad.A diagnostics storage account as well as event hub is provisioned.
    NätverkNetwork N/A-nätverket är implementerat i en annan landnings zon.N/A - network is implemented in another landing zone. Nätverks beslutNetworking decisions
    IdentitetIdentity Vi förutsätter att prenumerationen redan är associerad med en instans av Azure Active Directory.It's assumed that the subscription is already associated with an Azure Active Directory instance. Metodtips för identitetshanteringIdentity management best practices
    PolicyPolicy Denna landnings zon förutsätter för närvarande att inga Azure-principer ska tillämpas.This landing zone currently assumes that no Azure policies are to be applied.
    PrenumerationsdesignSubscription design Ej tillämpligt – utformad för en enda produktions prenumeration.N/A - designed for a single production subscription. Skapa första prenumerationerCreate initial subscriptions
    ResursgrupperResource groups Ej tillämpligt – utformad för en enda produktions prenumeration.N/A - designed for a single production subscription. Skala prenumerationerScale subscriptions
    HanteringsgrupperManagement groups Ej tillämpligt – utformad för en enda produktions prenumeration.N/A - designed for a single production subscription. Organisera prenumerationerOrganize subscriptions
    DataData Ej tillämpligtN/A Välj rätt SQL Server alternativ i Azure och Azure Data Store vägledningChoose the correct SQL Server option in Azure and Azure data store guidance
    StorageStorage Ej tillämpligtN/A Azure Storage vägledningAzure Storage guidance
    NamngivningsreglerNaming standards När miljön skapas skapas även ett unikt prefix.When the environment is created, a unique prefix is also created. Resurser som kräver ett globalt unikt namn (till exempel lagrings konton) använder det här prefixet.Resources that require a globally unique name (such as storage accounts) use this prefix. Det anpassade namnet läggs till med ett slumpmässigt suffix.The custom name is appended with a random suffix. Tagga användningen bestäms enligt beskrivningen i följande tabell.Tag usage is mandated as described in the following table. Metodtips för namngivning och taggningNaming and tagging best practices
    KostnadshanteringCost management Ej tillämpligtN/A Spåra kostnaderTracking costs
    BeräkningCompute Ej tillämpligtN/A Beräknings alternativCompute options

    Tagga standarderTagging standards

    Den minsta uppsättningen taggar som visas nedan måste finnas på alla resurser och resurs grupper:The minimum set of tags shown below must be present on all resources and resource groups:

    TaggnamnTag name BeskrivningDescription NyckelKey ExempelvärdenExample values
    AffärsenhetBusiness unit Avdelning på toppnivå för ditt företag som äger prenumerationen eller arbetsbelastningen som resursen tillhör.Top-level division of your company that owns the subscription or workload the resource belongs to. BusinessUnit finance, marketing, <product-name>, corp, sharedfinance, marketing, <product-name>, corp, shared
    KostnadsställeCost center Kostnadsställe som associeras med resursen.Accounting cost center associated with this resource. CostCenter <cost-center-number>
    HaveriberedskapDisaster recovery Programmet, arbetsbelastningen eller tjänstens affärskritiskhet.Business criticality of the application, workload, or service. DR dr-enabled, non-dr-enableddr-enabled, non-dr-enabled
    MiljöEnvironment Programmet, arbetsbelastningen eller tjänstens distributionsmiljö.Deployment environment of the application, workload, or service. Env prod, dev, qa, staging, test, trainingprod, dev, qa, staging, test, training
    Ägarens namnOwner name Programmet, arbetsbelastningen eller tjänstens ägare.Owner of the application, workload, or service. Owner email
    Distributions typDeployment type Definierar hur resurserna upprätthålls.Defines how the resources are being maintained. DeploymentType manual, terraformmanual, terraform
    VersionVersion Ritningens version har distribuerats.Version of the blueprint deployed. Version v0.1
    ProgramnamnApplication name Namnet på det associerade programmet, tjänsten eller arbets belastningen som är associerad med resursen.Name of the associated application, service, or workload associated with the resource. ApplicationName <app-name>

    Anpassa och distribuera din första landnings zonCustomize and deploy your first landing zone

    Du kan klona din terraform Foundation-landnings zon.You can clone your Terraform foundation landing zone. Kom igång enkelt med landnings zonen genom att ändra terraform-variablerna.Get started easily with the landing zone by modifying the Terraform variables. I vårt exempel använder vi blueprint_foundations. sandbox. Auto. tfvars, så terraform ställer automatiskt in värdena i den här filen åt dig.In our example, we use blueprint_foundations.sandbox.auto.tfvars, so Terraform automatically sets the values in this file for you.

    Nu ska vi titta på de olika variabel avsnitten.Let's look at the different variable sections.

    I det här första objektet skapar vi två resurs grupper i southeastasia regionen med namnet -hub-core-sec och -hub-operations tillsammans med ett prefix som lagts till vid körning.In this first object, we create two resource groups in the southeastasia region named -hub-core-sec and -hub-operations along with a prefix added at runtime.

    resource_groups_hub = {
        HUB-CORE-SEC    = {
            name = "-hub-core-sec"
            location = "southeastasia"
        }
        HUB-OPERATIONS  = {
            name = "-hub-operations"
            location = "southeastasia"
        }
    }
    

    Därefter anger vi de regioner där vi kan ställa in grunderna.Next, we specify the regions where we can set the foundations. Här southeastasia används för att distribuera alla resurser.Here, southeastasia is used to deploy all the resources.

    location_map = {
        region1   = "southeastasia"
        region2   = "eastasia"
    }
    

    Sedan anger vi kvarhållningsperioden för åtgärds loggarna och Azure-prenumerations loggarna.Then, we specify the retention period for the operations logs and the Azure subscription logs. Dessa data lagras i separata lagrings konton och en Event Hub, vars namn skapas slumpmässigt eftersom de måste vara unika.This data is stored in separate storage accounts and an event hub, whose names are randomly generated because they must be unique.

    azure_activity_logs_retention = 365
    azure_diagnostics_logs_retention = 60
    

    I tags_hub anger vi den minsta uppsättning taggar som används för alla resurser som skapats.Into the tags_hub, we specify the minimum set of tags that are applied to all resources created.

    tags_hub = {
        environment     = "DEV"
        owner           = "Arnaud"
        deploymentType  = "Terraform"
        costCenter      = "65182"
        BusinessUnit    = "SHARED"
        DR              = "NON-DR-ENABLED"
    }
    

    Sedan anger vi Log Analytics namn och en uppsättning lösningar som analyserar distributionen.Then, we specify the Log Analytics name and a set of solutions that analyze the deployment. Här behålls nätverks övervakning, Active Directory utvärdering och replikering, DNS-analys och Key Vault analys.Here, we retained network monitoring, Active Directory assessment and replication, DNS Analytics, and Key Vault analytics.

    
    analytics_workspace_name = "lalogs"
    
    solution_plan_map = {
        NetworkMonitoring = {
            "publisher" = "Microsoft"
            "product"   = "OMSGallery/NetworkMonitoring"
        },
        ADAssessment = {
            "publisher" = "Microsoft"
            "product"   = "OMSGallery/ADAssessment"
        },
        ADReplication = {
            "publisher" = "Microsoft"
            "product"   = "OMSGallery/ADReplication"
        },
        AgentHealthAssessment = {
            "publisher" = "Microsoft"
            "product"   = "OMSGallery/AgentHealthAssessment"
        },
        DnsAnalytics = {
            "publisher" = "Microsoft"
            "product"   = "OMSGallery/DnsAnalytics"
        },
        KeyVaultAnalytics = {
            "publisher" = "Microsoft"
            "product"   = "OMSGallery/KeyVaultAnalytics"
        }
    }
    
    

    Därefter konfigurerade vi aviserings parametrarna för Azure Security Center.Next, we configured the alert parameters for Azure Security Center.

    # Azure Security Center Configuration
    security_center = {
        contact_email   = "joe@contoso.com"
        contact_phone   = "+6500000000"
    }
    

    Vidta åtgärdTake action

    När du har granskat konfigurationen kan du distribuera konfigurationen på samma sätt som du distribuerar en terraform-miljö.After you've reviewed the configuration, you can deploy the configuration as you would deploy a Terraform environment. Vi rekommenderar att du använder Rover, som är en Docker-behållare som tillåter distribution från Windows, Linux eller macOS.We recommend that you use the rover, which is a Docker container that allows deployment from Windows, Linux, or macOS. Du kan komma igång med landnings zonerna.You can get started with the landing zones.

    Nästa stegNext steps

    I bas landnings zonen fördelas en komplicerad miljö på ett sammansatt sätt.The foundation landing zone lays the groundwork for a complex environment in a decomposed manner. Den här versionen innehåller en uppsättning enkla funktioner som kan utökas genom att lägga till andra moduler till skissen eller skikta ytterligare landnings zoner ovanpå den.This edition provides a set of simple capabilities that can be extended by adding other modules to the blueprint or layering additional landing zones on top of it.

    Att skikta dina landnings zoner är en bra metod för att koppla från system, versions hantering av varje komponent som du använder och möjliggör snabb innovation och stabilitet för din infrastruktur som kod distribution.Layering your landing zones is a good practice for decoupling systems, versioning each component that you're using, and allowing fast innovation and stability for your infrastructure as code deployment.

    Framtida referens arkitekturer visar det här konceptet för en nav-och eker-topologi.Future reference architectures will demonstrate this concept for a hub and spoke topology.