Terraform gebruiken om uw landings zones samen te stellenUse Terraform to build your landing zones

Azure biedt systeem eigen services voor het implementeren van uw landings zones.Azure provides native services for deploying your landing zones. Andere hulpprogram ma's van derden kunnen u ook helpen bij deze inspanning.Other third-party tools can also help with this effort. Een dergelijk hulp programma dat klanten en partners vaak gebruiken om aanvoer zones te implementeren, is terraform door HashiCorp.One such tool that customers and partners often use to deploy landing zones is Terraform by HashiCorp. In deze sectie wordt beschreven hoe u een voor beeld van een landings zone gebruikt voor het implementeren van Foundational governance, accounting en beveiligings mogelijkheden voor een Azure-abonnement.This section shows how to use a sample landing zone to deploy foundational governance, accounting, and security capabilities for an Azure subscription.

Doel van de landings zonePurpose of the landing zone

De Cloud acceptatie Framework-basis zone voor terraform biedt functies voor het afdwingen van logboek registratie, accounting en beveiliging.The Cloud Adoption Framework foundations landing zone for Terraform provides features to enforce logging, accounting, and security. Deze landings zone maakt gebruik van standaard onderdelen die terraform-modules worden genoemd om consistentie te afdwingen tussen bronnen die in de omgeving zijn geïmplementeerd.This landing zone uses standard components known as Terraform modules to enforce consistency across resources deployed in the environment.

Standaard modules gebruikenUse standard modules

Hergebruik van onderdelen is een fundamenteel beginsel van de infra structuur als code.Reuse of components is a fundamental principle of infrastructure as code. Modules zijn een instrument voor het definiëren van standaarden en consistentie tussen de implementatie van resources binnen en tussen omgevingen.Modules are instrumental in defining standards and consistency across resource deployment within and across environments. De modules die worden gebruikt voor het implementeren van deze eerste aanvoer zone zijn beschikbaar in het officiële terraform-REGI ster.The modules used to deploy this first landing zone are available in the official Terraform registry.

ArchitectuurdiagramArchitecture diagram

De eerste aanvoer zone implementeert de volgende onderdelen in uw abonnement:The first landing zone deploys the following components in your subscription:

Foundation-aanvoer zone met behulp van terraform- afbeelding 1: een basis landings zone met behulp van terraform.Foundational landing zone using Terraform Figure 1: A foundation landing zone using Terraform.

FunctiesCapabilities

De onderdelen die zijn geïmplementeerd en hun doel zijn onder andere:The components deployed and their purpose include the following:

OnderdeelComponent OnderResponsibility
ResourcegroepenResource groups Kern resource groepen die nodig zijn voor de basisCore resource groups needed for the foundation
Logboekregistratie van activiteitenActivity logging Alle abonnements activiteiten controleren en archiveren:Auditing all subscription activities and archiving:
  • Storage-accountStorage account
  • Azure Event HubsAzure Event Hubs
  • Logboek registratie van diagnostische gegevensDiagnostics logging Alle bewerkings logboeken gedurende een bepaald aantal dagen:All operation logs kept for a specific number of days:
  • Storage-accountStorage account
  • Event HubsEvent Hubs
  • Log AnalyticsLog Analytics Hiermee slaat u de bewerkings Logboeken.Stores the operation logs. Algemene oplossingen implementeren voor beoordeling van de best practices van de toepassing:Deploy common solutions for deep application best practices review:
  • NetworkMonitoringNetworkMonitoring
  • OnverwachteAdAssessment
  • AdReplicationAdReplication
  • AgentHealthAssessmentAgentHealthAssessment
  • DnsAnalyticsDnsAnalytics
  • KeyVaultAnalyticsKeyVaultAnalytics
  • Azure Security CenterAzure Security Center Metrische gegevens over beveiligings hygiëne en waarschuwingen die worden verzonden naar e-mail en telefoon nummerSecurity hygiene metrics and alerts sent to email and phone number

    Deze blauwdruk gebruikenUse this blueprint

    Voordat u de Cloud adoptie Framework Foundation-landings zone gebruikt, raadpleegt u de volgende veronderstellingen, beslissingen en richt lijnen voor de implementatie.Before you use the Cloud Adoption Framework foundation landing zone, review the following assumptions, decisions, and implementation guidance.

    AannamesAssumptions

    De volgende hypo Thesen of beperkingen werden overwogen wanneer deze initiële landings zone werd gedefinieerd.The following assumptions or constraints were considered when this initial landing zone was defined. Als deze veronderstellingen overeenkomen met uw beperkingen, kunt u de blauwdruk gebruiken om uw eerste landingszone te maken.If these assumptions align with your constraints, you can use the blueprint to create your first landing zone. De blauwdruk kan ook worden uitgebreid om een landingszoneblauwdruk te maken die overeenkomt met uw unieke beperkingen.The blueprint also can be extended to create a landing zone blueprint that meets your unique constraints.

    • Abonnements limieten: Het is waarschijnlijk niet meer dan de abonnements limietente overschrijden.Subscription limits: This adoption effort is unlikely to exceed subscription limits. Twee algemene indicatoren zijn meer dan 25.000 VM's of 10.000 vCPU's.Two common indicators are an excess of 25,000 VMs or 10,000 vCPUs.
    • Naleving: Er zijn geen nalevings vereisten van derden nodig voor deze aanvoer zone.Compliance: No third-party compliance requirements are needed for this landing zone.
    • Complexiteit van architectuur: Architecturale complexiteit vereist geen extra productie abonnementen.Architectural complexity: Architectural complexity doesn't require additional production subscriptions.
    • Gedeelde services: Voor geen van de bestaande gedeelde services in azure moet dit abonnement worden behandeld als een spoke in een hub-en spoke-architectuur.Shared services: No existing shared services in Azure require this subscription to be treated like a spoke in a hub and spoke architecture.

    Als deze hypo Thesen overeenkomen met uw huidige omgeving, is deze blauw druk mogelijk een goede manier om uw landings zone te bouwen.If these assumptions match your current environment, this blueprint might be a good way to start building your landing zone.

    Ontwerp beslissingenDesign decisions

    De volgende beslissingen worden weer gegeven in de CAF terraform-modules:The following decisions are represented in the CAF Terraform modules:

    OnderdeelComponent BeslissingenDecisions Alternatieve benaderingenAlternative approaches
    Logboekregistratie en bewakingLogging and monitoring Azure Monitor Log Analytics werk ruimte wordt gebruikt.Azure Monitor Log Analytics workspace is used. Er wordt een diagnostische opslag account en Event Hub ingericht.A diagnostics storage account as well as event hub is provisioned.
    NetwerkNetwork N.v.t. netwerk is geïmplementeerd in een andere aanvoer zone.N/A - network is implemented in another landing zone. Netwerk beslissingenNetworking decisions
    IdentiteitIdentity Er wordt van uitgegaan dat het abonnement al is gekoppeld aan een Azure Active Directory-exemplaar.It's assumed that the subscription is already associated with an Azure Active Directory instance. Best practices voor identiteitsbeheerIdentity management best practices
    BeleidPolicy Deze landings zone gaat er momenteel van uit dat er geen Azure-beleid wordt toegepast.This landing zone currently assumes that no Azure policies are to be applied.
    AbonnementsontwerpSubscription design N.v.t.-ontworpen voor één productie abonnement.N/A - designed for a single production subscription. Eerste abonnementen makenCreate initial subscriptions
    ResourcegroepenResource groups N.v.t.-ontworpen voor één productie abonnement.N/A - designed for a single production subscription. Abonnementen schalenScale subscriptions
    BeheergroepenManagement groups N.v.t.-ontworpen voor één productie abonnement.N/A - designed for a single production subscription. Abonnementen organiserenOrganize subscriptions
    GegevensData N.v.t.N/A Kies de optie juiste SQL Server in azure en de richt lijnen voor gegevens opslag van AzureChoose the correct SQL Server option in Azure and Azure data store guidance
    StorageStorage N.v.t.N/A Azure Storage richtlijnenAzure Storage guidance
    NaamgevingsstandaardenNaming standards Als de omgeving is gemaakt, wordt er ook een uniek voor voegsel gemaakt.When the environment is created, a unique prefix is also created. Resources die een wereld wijd unieke naam (zoals opslag accounts) vereisen, gebruiken dit voor voegsel.Resources that require a globally unique name (such as storage accounts) use this prefix. De aangepaste naam wordt toegevoegd met een wille keurig achtervoegsel.The custom name is appended with a random suffix. Het gebruik van tags is verplicht zoals beschreven in de volgende tabel.Tag usage is mandated as described in the following table. Best practices voor naamgeving en tagsNaming and tagging best practices
    KostenbeheerCost management N.v.t.N/A Kosten voor bijhoudenTracking costs
    ComputeCompute N.v.t.N/A RekenoptiesCompute options

    Coderings standaardenTagging standards

    De minimale set met tags die hieronder worden weer gegeven, moet aanwezig zijn voor alle resources en resource groepen:The minimum set of tags shown below must be present on all resources and resource groups:

    Label naamTag name DescriptionDescription SleutelKey VoorbeeldwaardenExample values
    BedrijfseenheidBusiness unit Afdeling op het hoogste niveau van uw bedrijf dat eigenaar is van het abonnement of de workload waartoe de resource behoort.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
    KostenplaatsCost center Het kostencentrum voor boekhouding dat is gekoppeld aan deze resource.Accounting cost center associated with this resource. CostCenter <cost-center-number>
    Herstel na noodgevalDisaster recovery De mate waarin de toepassing, workload of service bedrijfskritiek is.Business criticality of the application, workload, or service. DR dr-enabled, non-dr-enableddr-enabled, non-dr-enabled
    OmgevingEnvironment Implementatieomgeving van de toepassing, workload of service.Deployment environment of the application, workload, or service. Env prod, dev, qa, staging, test, trainingprod, dev, qa, staging, test, training
    Naam van eigenaarOwner name Eigenaar van de toepassing, workload of service.Owner of the application, workload, or service. Owner email
    Implementatie typeDeployment type Hiermee wordt gedefinieerd hoe de resources worden onderhouden.Defines how the resources are being maintained. DeploymentType manual, terraformmanual, terraform
    VersieVersion De versie van de blauw druk is geïmplementeerd.Version of the blueprint deployed. Version v0.1
    De naam van de toepassingApplication name De naam van de gekoppelde toepassing, service of werk belasting die aan de resource is gekoppeld.Name of the associated application, service, or workload associated with the resource. ApplicationName <app-name>

    Uw eerste aanvoer zone aanpassen en implementerenCustomize and deploy your first landing zone

    U kunt uw terraform Foundation-landings zone klonen.You can clone your Terraform foundation landing zone. Ga snel aan de slag met de landings zone door de variabelen voor terraform te wijzigen.Get started easily with the landing zone by modifying the Terraform variables. In ons voor beeld gebruiken we blueprint_foundations. sandbox. auto. tfvars, zodat de waarden in dit bestand automatisch door terraform worden ingesteld.In our example, we use blueprint_foundations.sandbox.auto.tfvars, so Terraform automatically sets the values in this file for you.

    Laten we eens kijken naar de verschillende gedeelten van de variabele.Let's look at the different variable sections.

    In dit eerste object maken we twee resource groepen in de southeastasia regio -hub-core-sec en -hub-operations samen met een voor voegsel dat tijdens runtime is toegevoegd.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"
        }
    }
    

    Vervolgens geven we de regio's op waar we de stichtingen kunnen instellen.Next, we specify the regions where we can set the foundations. Hier southeastasia wordt gebruikt om alle resources te implementeren.Here, southeastasia is used to deploy all the resources.

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

    Vervolgens geven we de Bewaar periode voor de logboeken van de bewerkingen en het Azure-abonnement op.Then, we specify the retention period for the operations logs and the Azure subscription logs. Deze gegevens worden opgeslagen in afzonderlijke opslag accounts en een Event Hub, waarvan de namen wille keurig worden gegenereerd omdat ze uniek moeten zijn.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
    

    In de tags_hub geven we de minimale set labels op die worden toegepast op alle gemaakte resources.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"
    }
    

    Vervolgens geven we de Log Analytics naam en een set oplossingen op waarmee de implementatie wordt geanalyseerd.Then, we specify the Log Analytics name and a set of solutions that analyze the deployment. Hier hebben we netwerk bewaking, Active Directory evaluatie en replicatie, DNS-analyse en Key Vault Analytics bewaard.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"
        }
    }
    
    

    Vervolgens hebben we de waarschuwings parameters voor Azure Security Center geconfigureerd.Next, we configured the alert parameters for Azure Security Center.

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

    Actie ondernemenTake action

    Nadat u de configuratie hebt gecontroleerd, kunt u de configuratie implementeren op dezelfde manier als u een terraform-omgeving implementeert.After you've reviewed the configuration, you can deploy the configuration as you would deploy a Terraform environment. Het is raadzaam om de Rover te gebruiken. Dit is een docker-container die implementatie vanuit Windows, Linux of macOS toestaat.We recommend that you use the rover, which is a Docker container that allows deployment from Windows, Linux, or macOS. U kunt aan de slag met de landings zones.You can get started with the landing zones.

    Volgende stappenNext steps

    De Foundation-landings zone legt de basis voor een complexe omgeving op een opgebouwde manier vast.The foundation landing zone lays the groundwork for a complex environment in a decomposed manner. Deze editie biedt een aantal eenvoudige mogelijkheden die kunnen worden uitgebreid door andere modules toe te voegen aan de blauw druk of extra zones boven op de schijf te plaatsen.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.

    Het belagen van uw landings zones is een goede gewoonte voor het loskoppelen van systemen, het versie beheer van elk onderdeel dat u gebruikt en snelle innovatie en stabiliteit voor uw infra structuur als code-implementatie.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.

    In toekomstige referentie architecturen wordt dit concept gedemonstreerd voor een hub-en spoke-topologie.Future reference architectures will demonstrate this concept for a hub and spoke topology.