Blog

Domine a plataforma e otimize seus gastos!

Azure Landing Zones com Terraform: como padronizar e automatizar ambientes multi-cloud-ready

Introdução

À medida que as empresas migram para a nuvem e crescem em escala, se torna essencial garantir que todos os recursos sejam criados com segurança, governança e padrões consistentes desde o início.

As Azure Landing Zones, baseadas no Cloud Adoption Framework (CAF) da Microsoft, fornecem essa fundação. E quando combinadas com Terraform, elas permitem padronização, automação e versionamento — inclusive em cenários multi-cloud.

Neste artigo, você vai aprender como implementar Landing Zones no Azure usando módulos CAF Terraform, entendendo os componentes, práticas recomendadas e como começar.


O que é uma Azure Landing Zone?

Uma Landing Zone é uma estrutura base de nuvem que define:

  • Management groups
  • Controle de identidade e acesso (RBAC)
  • Políticas e compliance (Azure Policy)
  • Redes e conectividade (Hub-and-Spoke)
  • Monitoramento, logs e segurança
  • Subscriptions padronizadas por ambiente

Com Terraform, você pode definir e manter essas zonas como infraestrutura como código (IaC) — promovendo reprodutibilidade e governança desde o primeiro deploy.


Usando o projeto CAF Terraform module (enterprise-scale)

A Microsoft mantém um módulo oficial no GitHub para automatizar landing zones com Terraform:

🔗 https://github.com/Azure/terraform-azurerm-caf-enterprise-scale

Este módulo provê:

  • Estrutura de management groups
  • Criação de subscriptions associadas
  • Políticas e RBAC
  • Deploy de recursos base: logs, redes, key vaults

📦 Estrutura da solução


🚀 Pré-requisitos

  • Azure CLI autenticado (az login)
  • Terraform ≥ v1.4 instalado
  • Permissão: Owner ou User Access Administrator na subscription
  • Uma conta no GitHub para usar os módulos CAF

🛠️ Exemplo prático com Terraform

1. Estrutura mínima de arquivos

azure-landingzone-tf/
├── main.tf
├── variables.tf
└── terraform.tfvars

2. main.tf

provider "azurerm" {
  features {}
}

module "caf-enterprise-scale" {
  source  = "Azure/caf-enterprise-scale/azurerm"
  version = "4.1.1"

  default_location = "eastus"
  root_parent_id   = data.azurerm_client_config.current.tenant_id
  deploy_management_resources = true

  library_path = "${path.module}/lib"
}

3. Inicializando e aplicando

terraform init
terraform plan
terraform apply

O Terraform irá:

  • Criar management groups hierarquizados
  • Atribuir políticas de segurança
  • Criar diagnósticos e logs
  • Preparar um ambiente alinhado ao CAF

Expandindo com módulos reutilizáveis

Você pode adicionar módulos para:

  • VNet Hub & Spoke
  • Azure Firewall ou DDoS
  • Key Vault + Secrets
  • Monitoramento com Log Analytics
  • Azure AD Role assignments

Exemplo: módulo de VNet

module "hub-networking" {
  source  = "Azure/terraform-azurerm-network/azurerm"
  version = "4.0.0"
  name    = "hub-vnet"
  location = "eastus"
  address_space = ["10.0.0.0/16"]
}

🔄 Integração com CI/CD

Você pode aplicar tudo via GitHub Actions, usando um fluxo YAML como:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: hashicorp/setup-terraform@v2
        with:
          terraform_version: 1.4.6

      - run: terraform init
      - run: terraform apply -auto-approve
        env:
          ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
          ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
          ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
          ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}

Use o Azure Service Principal com permissões para deploy.


Boas práticas com Landing Zones + Terraform

Prática recomendadaBenefício
Versionar módulos com GitControle de mudanças
Segmentar ambientes por Workspace (Dev, Prod)Isolamento de estado e deploys independentes
Integrar com Azure PolicyGarantir compliance automático
Utilizar RBAC mínimo necessárioMenor risco operacional
Usar Backends remotos (ex: Azure Storage)Armazenamento seguro do terraform.tfstate

Referências oficiais


Conclusão

Utilizar Azure Landing Zones com Terraform traz um grande ganho de controle, repetibilidade e segurança. Você consegue escalar a criação de ambientes com governança, políticas e rede já prontas — seja em uma empresa pequena ou em um ambiente multi-cloud complexo.

Automatize sua fundação na nuvem com Terraform e comece certo desde o início.

Podemos te ajudar com uma revisão 100% gratuita do seu ambiente cloud.

Agendar a revisão gratuita do meu ambiente

Share this post

Inscreva-se para novas postagens

Inscreva-se