Condividi tramite


Zone di destinazione di Azure - Considerazioni sulla progettazione del modulo Terraform

Questo articolo illustra le aree importanti da considerare quando si usa il modulo Terraform zone di destinazione di Azure. Il modulo fornisce un approccio con parere per distribuire e gestire una piattaforma Azure basata sull'architettura concettuale della zona di destinazione di Azure, come descritto in Dettaglio in Cloud Adoption Framework (CAF).

Terraform è uno strumento IaC (Infrastructure as Code) open source, creato da HashiCorp, che usa la sintassi dichiarativa per distribuire le risorse dell'infrastruttura. È estendibile, ha supporto multipiattaforma e abilita l'infrastruttura non modificabile tramite il rilevamento dello stato.


Importante

Il modulo è disponibile nel modulo Terraform Registry: Zone di destinazione di Azure Terraform. È possibile usarlo come punto di partenza e configurarlo in base alle proprie esigenze.

Nota

Sono disponibili implementazioni per diverse tecnologie di distribuzione, tra cui modelli di Resource Manager e moduli Terraform basati sul portale. La scelta della tecnologia di distribuzione non deve influenzare la distribuzione delle zone di destinazione di Azure risultanti.

ALZ Terraform Accelerator

Per iniziare rapidamente a distribuire ALZ con Terraform, è possibile usare ALZ Terraform Accelerator progettato per essere usato come modello. Questo repository fornisce un'implementazione di supporto del modulo Terraform zone di destinazione di Azure, con le pipeline di Azure DevOps e i flussi di lavoro di GitHub actions.

L'acceleratore ALZ Terraform segue un approccio di 3 fasi:

  1. Prerequisiti: istruzioni per configurare credenziali e sottoscrizioni.
  2. Bootstrap: eseguire lo script di PowerShell per generare l'ambiente di recapito continuo.
  3. Esegui: aggiornare il modulo (se necessario) in base alle esigenze dell'organizzazione e distribuirlo tramite recapito continuo.

Iniziare con la guida dell'utente con una procedura dettagliata per rendere operativo l'ambiente della zona di destinazione di Azure.

Progettazione

Diagramma che mostra l'architettura concettuale delle zone di destinazione di Azure.

L'architettura sfrutta la natura configurabile di Terraform ed è costituita da un modulo di orchestrazione principale. Questo modulo incapsula più funzionalità dell'architettura concettuale delle zone di destinazione di Azure. È possibile distribuire ogni funzionalità singolarmente o in parte. Ad esempio, è possibile distribuire solo una rete hub o solo la protezione DDoS di Azure o solo le risorse DNS. In questo caso, è necessario tenere conto che le funzionalità hanno dipendenze.

L'architettura usa un approccio dell'agente di orchestrazione per semplificare l'esperienza di distribuzione. È consigliabile implementare ogni funzionalità usando una o più istanze di modulo dedicate in cui ognuna è dedicata a una parte specifica dell'architettura. Questo è tutto possibile con la configurazione corretta

moduli

Un concetto di base in Terraform è l'uso di moduli. I moduli consentono di organizzare le distribuzioni in raggruppamenti logici. Con i moduli è possibile migliorare la leggibilità dei file Terraform incapsulando dettagli complessi della distribuzione. È anche possibile riutilizzare facilmente i moduli per distribuzioni diverse.

La possibilità di riutilizzare i moduli offre un vantaggio reale quando si definiscono e distribuiscono le zone di destinazione. Consente ambienti ripetibili e coerenti nel codice riducendo al tempo stesso lo sforzo necessario per la distribuzione su larga scala.

L'implementazione terraform delle zone di destinazione di Azure viene distribuita usando un singolo modulo che funge da livello di orchestrazione. Il livello di orchestrazione consente di selezionare le risorse distribuite e gestite usando il modulo. Il modulo può essere usato più volte nello stesso ambiente per distribuire le risorse in modo indipendente l'una dall'altra. Ciò può essere utile nelle organizzazioni in cui i diversi team sono responsabili delle diverse funzionalità o delle raccolte di risorse secondarie.

Livelli e gestione temporanea

L'implementazione è incentrata sulla gerarchia centrale delle risorse dell'architettura concettuale della zona di destinazione di Azure. La progettazione è centrata sulle funzionalità seguenti:

  • Risorse di base
  • Risorse gestionali
  • Risorse di connettività
  • Risorse di identità

Il modulo raggruppa le risorse in queste funzionalità perché devono essere distribuite insieme. Questi gruppi formano fasi logiche dell'implementazione.

È possibile controllare la distribuzione di ognuna di queste funzionalità usando i flag di funzionalità. Un vantaggio di questo approccio è la possibilità di aggiungere all'ambiente in modo incrementale nel tempo. Ad esempio, è possibile iniziare con un numero ridotto di funzionalità. È possibile aggiungere le funzionalità rimanenti in una fase successiva quando si è pronti.

Risorse di base

La funzionalità di base delle risorse del modulo è allineata all'area di progettazione dell'organizzazione delle risorse di Cloud Adoption Framework. Distribuisce le risorse fondamentali dell'architettura concettuale per le zone di destinazione di Azure.

Diagramma che mostra l'architettura principale delle zone di destinazione di Azure distribuite dal modulo Terraform.

Archetipi

Un concetto importante all'interno della funzionalità di base delle risorse è l'inclusione di archetipi.

Gli archetipi offrono un approccio riutilizzabile basato sul codice per definire le definizioni dei criteri, le definizioni dei set di criteri, le assegnazioni di criteri, le definizioni dei ruoli e le assegnazioni di ruolo devono essere applicate a un determinato ambito. Nell'implementazione di Terraform queste decisioni vengono incapsulate come definizioni archetipo.

Per creare una zona di destinazione, i gruppi di gestione sono associati a una definizione archetipo. Nell'esempio seguente per una zona di destinazione aziendale, il archetype_config ha un puntatore alla definizione archetipo "es_corp". Questa definizione contiene tutte le configurazioni di criteri e ruoli che verranno aggiunte a questo gruppo di gestione.

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

Quando gli archetipi predefiniti non sono allineati ai requisiti, il modulo fornisce opzioni per creare nuovi archetipi o apportare modifiche a esistenti.

Risorse gestionali

La funzionalità delle risorse di gestione del modulo è allineata all'area di progettazione di gestione di Cloud Adoption Framework. Questa funzionalità offre la possibilità di distribuire le risorse di gestione e monitoraggio nella zona di destinazione della piattaforma di gestione.

Risorse di connettività

La funzionalità delle risorse di connettività del modulo offre la possibilità di distribuire la topologia di rete e la connettività dell'architettura concettuale per le zone di destinazione di Azure.

Risorse di identità

La funzionalità delle risorse di identità del modulo è allineata all'area di progettazione della gestione delle identità e degli accessi di Cloud Adoption Framework. Questa funzionalità offre la possibilità di configurare i criteri nell'area di destinazione di Identity Platform.

Nota

Nessuna risorsa viene distribuita con questa funzionalità. Quando la deploy_identity_resources variabile è impostata su true, Criteri di Azure le assegnazioni vengono configurate per proteggere le risorse nella sottoscrizione della zona di destinazione di Identity Platform.

Descrizioni dei moduli

Questa sezione offre una panoramica generale delle risorse distribuite da questo modulo.

Livello Tipi di risorsa Descrizione Collegamenti utili
Core Gruppi di gestione I gruppi di gestione sono le risorse di livello più alto in un tenant di Azure. I gruppi di gestione consentono di gestire più facilmente le risorse. È possibile applicare criteri a livello di gruppo di gestione e le risorse di livello inferiore erediteranno tale criterio. In particolare, è possibile applicare gli elementi seguenti a livello di gruppo di gestione che verranno ereditati dalle sottoscrizioni nel gruppo di gestione:
  • Criteri di Azure
  • Assegnazioni di ruolo Controllo di accesso basate su ruoli di Azure
  • Controlli dei costi
Core Definizioni di criteri, assegnazioni di criteri e definizioni dei set di criteri DeployIfNotExists (DINE) o Modifica criteri consentono di garantire che le sottoscrizioni e le risorse che costituiscono le zone di destinazione siano conformi. I criteri vengono assegnati ai gruppi di gestione tramite assegnazioni di criteri. I criteri semplificano la gestione delle zone di destinazione. Insieme i set di definizioni dei set di criteri.

Non tutti i clienti possono usare i criteri DINE o Modify. In tal caso, le linee guida di Cloud Adoption Framework per i criteri personalizzati forniscono indicazioni.
Core Definizioni di ruolo e assegnazioni di ruolo Il controllo degli accessi in base al ruolo semplifica la gestione dei diritti utente all'interno di un sistema. Invece di gestire i diritti delle persone, si determinano i diritti necessari per ruoli diversi nel sistema. Il controllo degli accessi in base al ruolo di Azure include diversi ruoli predefiniti. Le definizioni di ruolo personalizzate consentono di creare ruoli personalizzati per l'ambiente.

La gestione delle identità e degli accessi (IAM) è il limite di sicurezza chiave nel cloud computing. Il controllo degli accessi in base al ruolo di Azure consente di eseguire assegnazioni di ruolo predefiniti o definizioni di ruolo personalizzate a entità servizio, identità gestite o gruppi di sicurezza tra gruppi di gestione e sottoscrizioni.
Gestione Monitoraggio di Azure, Automazione di Azure e Microsoft Sentinel Monitoraggio di Azure, Automazione di Azure e Microsoft Sentinel consentono di monitorare e gestire l'infrastruttura e i carichi di lavoro. Monitoraggio di Azure è una soluzione che consente di raccogliere, analizzare e agire sui dati di telemetria dall'ambiente.

Microsoft Sentinel è una soluzione SIEM (Security Information and Event Management) nativa del cloud. Consente di:
  • Raccogliere : raccogliere dati nell'intera infrastruttura
  • Rilevare: rilevare le minacce che in precedenza non sono state rilevate
  • Rispondere: rispondere alle minacce legittime con l'orchestrazione predefinita
  • Analizzare - Analizzare le minacce con l'intelligenza artificiale

Automazione di Azure è un sistema di automazione basato sul cloud. Comprende:
  • Gestione della configurazione - Inventario e rilevamento delle modifiche per le macchine virtuali Linux e Windows e gestire la configurazione dello stato desiderata
  • Gestione degli aggiornamenti - Valutare la conformità del sistema Windows e Linux e creare distribuzioni pianificate per soddisfare la conformità
  • Automazione dei processi - Automatizzare le attività di gestione
Connettività Tipi di risorse di rete principali elencati qui La topologia di rete è una considerazione fondamentale nelle distribuzioni della zona di destinazione di Azure. Cloud Adoption Framework è incentrato su due approcci di rete principali:
  • Topologie basate su Azure rete WAN virtuale
  • Topologie tradizionali
Connettività Protezione di Azure dagli attacchi DDoS Le linee guida per la zona di destinazione di Azure consigliano di abilitare Protezione di rete DDoS di Azure. Questo servizio offre protezione chiavi in mano dagli attacchi DDoS.
Connettività Zone DNS, zone DNS privato e collegamento DNS privato zona Rete virtuale DNS privato zone possono essere distribuite per supportare l'uso di endpoint privati. Un endpoint privato è una scheda di interfaccia di rete a cui viene assegnato un indirizzo IP privato dalla rete virtuale. È possibile usare l'indirizzo IP privato per comunicare in modo sicuro ai servizi che supportano collegamento privato di Azure. DNS privato zone possono essere configurate per risolvere il nome di dominio completo (FQDN) del servizio nell'indirizzo IP privato dell'endpoint privato.

Uso del modulo Terraform

Distribuzione delle risorse principali

Per impostazione predefinita, il modulo distribuirà la gerarchia seguente, ovvero il set principale di gruppi di gestione della zona di destinazione:

  • Radice
    • Piattaforma
      • Identità
      • Gestione
      • Connettività
    • Zone di destinazione
    • Rimosso
    • Sandbox

I gruppi di gestione delle zone di destinazione SAP, Corp e Online non si applicano a tutti, quindi non vengono distribuiti per impostazione predefinita. Di seguito sono riportati i modi per distribuire questi elementi:

  1. Ai fini della demo, è possibile impostare la deploy_demo_landing_zones variabile su true che distribuirà le zone di destinazione SAP, Corp e Online
  2. A scopo di produzione, è possibile attivare i gruppi di gestione desiderati impostando le variabili seguenti su true:
    • deploy_corp_landing_zones
    • deploy_online_landing_zones
    • deploy_sap_landing_zones
  3. È possibile distribuire gruppi di gestione della zona di destinazione personalizzati creando una definizione di zona di destinazione personalizzata

Distribuzione delle risorse di gestione

Per distribuire le risorse di gestione, la deploy_management_resources variabile deve essere impostata su true e la subscription_id_management variabile deve essere impostata sull'ID della sottoscrizione di gestione in cui devono essere distribuite le risorse.

deploy_management_resources = true
subscription_id_management = <management subscription id>

Distribuzione delle risorse di connettività

Distribuire le risorse di connettività fornisce indicazioni su come distribuire queste topologie.

Distribuzione delle risorse di identità

Per distribuire la funzionalità identity, la deploy_identity_resources variabile deve essere impostata su true e la subscription_id_identity variabile deve essere impostata sull'ID della sottoscrizione identity in cui devono essere configurati i criteri.

deploy_identity_resources = true
subscription_id_identity = <identity subscription id>

Personalizzazione dell'implementazione di Terraform

Le implementazioni della zona di destinazione di Azure fornite come parte di Cloud Adoption Framework soddisfano un'ampia gamma di requisiti e casi d'uso. Tuttavia, esistono spesso scenari in cui è necessaria la personalizzazione per soddisfare esigenze aziendali specifiche.

Il modulo Terraform zone di destinazione di Azure può essere usato come base della distribuzione personalizzata. Offre un modo per accelerare l'implementazione rimuovendo la necessità di iniziare da zero a causa di una modifica specifica necessaria che regola un'opzione pronta.

Logo GitHub Le informazioni sulla personalizzazione dei moduli sono disponibili nel wiki del repository GitHub GitHub: azure landing zones Terraform module - Wiki(Aree di destinazione di Azure - Wiki). È possibile usarlo come punto di partenza e configurarlo in base alle proprie esigenze.