Partilhar via


Zonas de aterrissagem do Azure - Considerações de design do módulo Terraform

Este artigo discute áreas importantes a serem consideradas ao usar o módulo Terraform de zonas de aterrissagem do Azure. O módulo fornece uma abordagem opinativa para implantar e operar uma plataforma do Azure com base na arquitetura conceitual da zona de aterrissagem do Azure, conforme detalhado no CAF (Cloud Adoption Framework).

Terraform é uma ferramenta de código aberto Infrastructure as Code (IaC), criada pela HashiCorp, que usa sintaxe declarativa para implantar recursos de infraestrutura. É extensível, tem suporte multiplataforma e permite infraestrutura imutável através de rastreamento de estado.


Importante

O módulo está disponível no módulo Terraform Registry: Azure landing zones Terraform. Você pode usá-lo como ponto de partida e configurá-lo de acordo com suas necessidades.

Nota

Existem implementações para várias tecnologias de implantação, incluindo baseadas em portal, modelos ARM e módulos Terraform. A escolha da tecnologia de implantação não deve influenciar a implantação resultante das zonas de aterrissagem do Azure.

ALZ Acelerador Terraform

Para começar rapidamente a implantar ALZ com Terraform, você pode aproveitar o ALZ Terraform Accelerator que foi projetado para ser usado como um modelo. Este repositório fornece uma implementação de suporte do módulo Terraform das Zonas de Pouso do Azure, com pipelines do Azure DevOps e fluxos de trabalho de ações do GitHub.

O ALZ Terraform Accelerator segue uma abordagem de 3 fases:

  1. Pré-requisitos: Instruções para configurar credenciais e assinaturas.
  2. Bootstrap: execute o script do PowerShell para gerar o ambiente de entrega contínua.
  3. Executar: atualize o módulo (se necessário) para atender às necessidades da sua organização e implante por meio de entrega contínua.

Comece com o guia do usuário com um passo a passo para colocar seu ambiente da Zona de Pouso do Azure em funcionamento.

Estruturar

Diagrama mostrando a arquitetura conceitual das zonas de aterrissagem do Azure.

A arquitetura tira partido da natureza configurável do Terraform e é composta por um módulo de orquestração primário. Este módulo encapsula vários recursos da arquitetura conceitual das zonas de aterrissagem do Azure. Você pode implantar cada recurso individualmente ou em parte. Por exemplo, você pode implantar apenas uma rede de hub, ou apenas a Proteção contra DDoS do Azure, ou apenas os recursos DNS. Ao fazer isso, você precisa levar em conta que os recursos têm dependências.

A arquitetura utiliza uma abordagem orquestradora para simplificar a experiência de implantação. Você pode preferir implementar cada recurso usando uma ou mais instâncias de módulo dedicadas em que cada uma é dedicada a uma parte específica da arquitetura. Tudo isso é possível com a configuração correta

Módulos

Um conceito central na Terraform é o uso de módulos. Os módulos permitem organizar implantações em agrupamentos lógicos. Com os módulos, você melhora a legibilidade de seus arquivos Terraform encapsulando detalhes complexos de sua implantação. Você também pode facilmente reutilizar módulos para diferentes implantações.

A capacidade de reutilizar módulos oferece um benefício real ao definir e implantar zonas de pouso. Ele permite ambientes consistentes e repetíveis no código, reduzindo o esforço necessário para implantar em escala.

A implementação Terraform das zonas de aterrissagem do Azure é fornecida usando um único módulo que atua como uma camada de orquestração. A camada de orquestração permite que você selecione quais recursos são implantados e gerenciados usando o módulo. O módulo pode ser usado várias vezes no mesmo ambiente para implantar recursos independentemente uns dos outros. Isso pode ser útil em organizações onde diferentes equipes são responsáveis pelos diferentes recursos ou coleções de subrecursos.

Camadas e preparo

A implementação se concentra na hierarquia de recursos central da arquitetura conceitual da zona de aterrissagem do Azure. O design está centrado nas seguintes capacidades:

  • Recursos principais
  • Recursos de gestão
  • Recursos de conectividade
  • Recursos de identidade

O módulo agrupa recursos nesses recursos à medida que eles devem ser implantados juntos. Estes grupos formam etapas lógicas da implementação.

Você controla a implantação de cada um desses recursos usando sinalizadores de recursos. Um benefício dessa abordagem é a capacidade de adicionar ao seu ambiente incrementalmente ao longo do tempo. Por exemplo, você pode começar com um pequeno número de recursos. Você pode adicionar os recursos restantes em um estágio posterior, quando estiver pronto.

Recursos principais

A capacidade de recursos principais do módulo está alinhada à área de design da organização de recursos do Cloud Adoption Framework. Ele implanta os recursos fundamentais da arquitetura conceitual para zonas de aterrissagem do Azure.

Diagrama mostrando a arquitetura principal de zonas de aterrissagem do Azure implantada pelo módulo Terraform.

Arquétipos

Um conceito importante dentro da capacidade de recursos centrais é a inclusão de arquétipos.

Os arquétipos fornecem uma abordagem reutilizável baseada em código para definir quais definições de política, definições de conjunto de políticas, atribuições de políticas, definições de função e atribuições de função devem ser aplicadas em um determinado escopo. Na implementação do Terraform, essas decisões são encapsuladas como Definições de Arquétipo.

Para criar uma zona de pouso, os grupos de gerenciamento são associados a uma definição de arquétipo. No exemplo abaixo para uma zona de pouso de corpo, o archetype_config tem um ponteiro para a definição de arquétipo "es_corp". Essa definição contém todas as configurações de política e função que serão adicionadas a este grupo de gerenciamento.

  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 os arquétipos internos não se alinham aos seus requisitos, o módulo fornece opções para criar novos arquétipos ou fazer alterações nos existentes.

Recursos de gestão

A capacidade de recursos de gerenciamento do módulo está alinhada à área de design de gerenciamento do Cloud Adoption Framework. Esse recurso oferece a opção de implantar recursos de gerenciamento e monitoramento na zona de aterrissagem da plataforma de gerenciamento.

Recursos de conectividade

O recurso de recursos de conectividade do módulo fornece a opção de implantar a topologia de rede e a conectividade da arquitetura conceitual para zonas de aterrissagem do Azure.

Recursos de identidade

O recurso de recursos de identidade do módulo se alinha à área de design de gerenciamento de identidade e acesso do Azure do Cloud Adoption Framework. Esse recurso oferece a opção de configurar políticas na zona de aterrissagem da plataforma Identity.

Nota

Nenhum recurso é implantado com esse recurso. Quando a deploy_identity_resources variável é definida como true, as atribuições da Política do Azure são configuradas para proteger os recursos na assinatura da zona de aterrissagem da plataforma de identidade.

Descrições dos módulos

Esta seção fornece uma visão geral de alto nível dos recursos implantados por este módulo.

Camada Tipo(s) de Recurso(s) Description Ligações Úteis
Principal Grupos de Gestão Os grupos de gerenciamento são os recursos de nível mais alto em um locatário do Azure. Os grupos de gestão permitem-lhe gerir mais facilmente os seus recursos. Você pode aplicar a política no nível do grupo de gerenciamento e os recursos de nível inferior herdarão essa política. Especificamente, você pode aplicar os seguintes itens no nível do grupo de gerenciamento que serão herdados pelas assinaturas no grupo de gerenciamento:
  • Políticas do Azure
  • Atribuições de função RBAC (Controles de Acesso Baseados em Função) do Azure
  • Controlo de custos
Principal Definições de políticas, atribuições de políticas e definições de conjuntos de políticas As políticas DeployIfNotExists (DINE) ou Modify ajudam a garantir que as assinaturas e os recursos que compõem as zonas de aterrissagem estejam em conformidade. As políticas são atribuídas a grupos de gerenciamento por meio de atribuições de políticas. As políticas aliviam o ónus da gestão das zonas de desembarque. As definições do conjunto de políticas agrupam conjuntos de políticas.

Nem todos os clientes podem usar as políticas DINE ou Modificar. Se esse for o seu caso, as orientações da CAF sobre políticas personalizadas fornecem orientações.
Principal Definições de função e atribuições de função O controle de acesso baseado em função (RBAC) simplifica o gerenciamento de direitos de usuário dentro de um sistema. Em vez de gerenciar os direitos dos indivíduos, você determina os direitos necessários para diferentes funções em seu sistema. O RBAC do Azure tem várias funções internas. As definições de função personalizadas permitem que você crie funções personalizadas para seu ambiente.

O gerenciamento de identidade e acesso (IAM) é o principal limite de segurança na computação em nuvem. O RBAC do Azure permite que você execute atribuições de função de funções internas ou definições de função personalizadas para Entidades de Serviço, Identidades Gerenciadas ou grupos de segurança em grupos de gerenciamento e assinaturas.
Gestão Azure Monitor, Azure Automation e Microsoft Sentinel O Azure Monitor, a Automação do Azure e o Microsoft Sentinel permitem-lhe monitorizar e gerir a sua infraestrutura e cargas de trabalho. O Azure Monitor é uma solução que permite coletar, analisar e agir na telemetria do seu ambiente.

O Microsoft Sentinel é um SIEM (gerenciamento de eventos e informações de segurança) nativo da nuvem. Permite-lhe:
  • Coletar - Coletar dados em toda a sua infraestrutura
  • Detetar - Detetar ameaças que não foram detetadas anteriormente
  • Responder - Responda a ameaças legítimas com orquestração integrada
  • Investigar - Investigar ameaças com inteligência artificial

A Automação do Azure é um sistema de automação baseado em nuvem. Inclui:
  • Gerenciamento de configuração - Inventarie e controle alterações para máquinas virtuais Linux e Windows e gerencie a configuração de estado desejado
  • Gerenciamento de atualizações - Avalie a conformidade dos sistemas Windows e Linux e crie implantações agendadas para atender à conformidade
  • Automação de processos - Automatize tarefas de gerenciamento
Conectividade Principais tipos de recursos de rede listados aqui A topologia de rede é uma consideração fundamental nas implantações da zona de aterrissagem do Azure. A CAF concentra-se em duas abordagens principais de rede:
  • Topologias baseadas na WAN Virtual do Azure
  • Topologias tradicionais
Conectividade Azure DDoS Protection As diretrizes da zona de aterrissagem do Azure recomendam habilitar a Proteção de Rede DDoS do Azure. Este serviço oferece proteção chave na mão contra ataques DDoS.
Conectividade Zonas DNS, Zonas DNS Privadas e Link de Rede Virtual de Zona DNS Privada As zonas DNS privadas podem ser implantadas para dar suporte ao uso de pontos de extremidade privados. Um ponto de extremidade privado é uma NIC à qual é atribuído um endereço IP privado da sua rede virtual. Você pode usar o endereço IP privado para se comunicar com segurança com serviços que dão suporte ao Azure Private Link. As zonas DNS privadas podem ser configuradas para resolver o FQDN (nome de domínio totalmente qualificado) do serviço para o endereço IP privado do ponto de extremidade privado.

Usando o módulo Terraform

Implantando recursos principais

Por padrão, o módulo implantará a seguinte hierarquia, que é o conjunto principal de grupos de gerenciamento de zona de aterrissagem:

  • Raiz
    • Plataforma
      • Identidade
      • Gestão
      • Conectividade
    • Zonas de desembarque
    • Descomissionado
    • Sandbox

Os grupos de gerenciamento de zona de aterrissagem SAP, Corp e Online não se aplicam a todos, portanto, não são implantados por padrão. Veja a seguir maneiras de implantá-los:

  1. Para fins de demonstração, você pode definir a deploy_demo_landing_zones variável como true que implantará as zonas de aterrissagem SAP, Corp e Online
  2. Para fins de produção, você pode ativar os grupos de gerenciamento desejados definindo as seguintes variáveis como true:
    • deploy_corp_landing_zones
    • deploy_online_landing_zones
    • deploy_sap_landing_zones
  3. Você pode implantar seus próprios grupos de gerenciamento de zona de aterrissagem personalizados criando uma definição de zona de aterrissagem personalizada

Implantando recursos de gerenciamento

Para implantar os recursos de gerenciamento, a deploy_management_resources variável deve ser definida como true e a subscription_id_management variável deve ser definida como a ID da assinatura de gerenciamento onde os recursos devem ser implantados.

deploy_management_resources = true
subscription_id_management = <management subscription id>

Implantando recursos de conectividade

Implantar Recursos de Conectividade fornece orientação sobre como implantar essas topologias.

Implantando recursos de identidade

Para implantar o recurso de identidade, a deploy_identity_resources variável deve ser definida como true e a subscription_id_identity variável deve ser definida como a ID da assinatura de identidade onde as políticas devem ser configuradas.

deploy_identity_resources = true
subscription_id_identity = <identity subscription id>

Personalizando a implementação do Terraform

As implementações da zona de aterrissagem do Azure fornecidas como parte da Estrutura de Adoção de Nuvem atendem a uma ampla variedade de requisitos e casos de uso. No entanto, muitas vezes há cenários em que a personalização é necessária para atender a necessidades comerciais específicas.

O módulo Terraform de zonas de aterrissagem do Azure pode ser usado como base de sua implantação personalizada. Ele fornece uma maneira de acelerar sua implementação, removendo a necessidade de começar do zero por causa de uma alteração específica necessária que rege uma opção pronta.

Logótipo do GitHub Informações sobre como personalizar os módulos estão disponíveis no wiki de repositório do GitHub GitHub: Azure landing zones Terraform module - Wiki. Você pode usá-lo como ponto de partida e configurá-lo de acordo com suas necessidades.