Adote guarda-corpos orientados por políticas

Antes de usar políticas, você precisa entender onde elas são usadas nas implementações de referência da zona de aterrissagem do Azure e por quê. Este artigo irá ajudá-lo a entender se você deseja impedir que as políticas DeployIfNotExists (DINE) ou Modify façam alterações em seu ambiente do Azure.

Porquê utilizar as políticas DINE e Modify?

As políticas DINE e Modify fazem parte das implementações de referência da zona de aterrissagem do Azure. Eles ajudam você e sua organização a garantir que suas zonas de destino, que também são conhecidas como assinaturas, e os recursos dentro delas estejam em conformidade. Essas políticas também removem a carga operacional para as equipes de plataforma e zona de aterrissagem à medida que seu ambiente do Azure é dimensionado.

Por exemplo, considere um cenário em que uma nova assinatura de zona de aterrissagem é provisionada e colocada no grupo de gerenciamento "corp". As políticas DINE e Modify executam as seguintes ações para a assinatura da zona de destino:

  • Habilite o Microsoft Defender for Cloud. Configure as exportações do Defender for Cloud para o espaço de trabalho central do Log Analytics na assinatura de gerenciamento.
  • Habilite o Defender for Cloud para as diferentes ofertas suportadas com base nos parâmetros de política configurados na atribuição de política.
  • Configure os logs de atividade do Azure a serem enviados para o espaço de trabalho central do Log Analytics na assinatura de gerenciamento.
  • Configure as configurações de diagnóstico para todos os recursos a serem enviados para o espaço de trabalho central do Log Analytics na assinatura de gerenciamento.
  • Implante os agentes necessários do Azure Monitor para máquinas virtuais e Conjuntos de Escala de Máquina Virtual do Azure, incluindo servidores conectados ao Azure Arc. Conecte-os ao espaço de trabalho central do Log Analytics na assinatura de gerenciamento.

Nota

Você pode desabilitar as opções anteriores a qualquer momento ou durante a implantação das implementações de referência da zona de aterrissagem do Azure.

A lista anterior mostra um subconjunto de todas as políticas atribuídas como parte do acelerador de zona de aterrissagem do Azure. Para obter uma lista completa das políticas que podem ser atribuídas pela implementação de referência da zona de aterrissagem do Azure, consulte Políticas incluídas nas implementações de referência das zonas de aterrissagem do Azure.

O repositório bicep das zonas de aterrissagem do Azure é modular. As políticas padrão acima podem ser implantadas com o módulo ALZ Default Policy Assignments.

Todas as políticas atribuídas ajudam você e os proprietários da zona de pouso a permanecerem em conformidade. Nenhum recurso de carga de trabalho real é implantado por meio de políticas DINE ou Modificar. Nós também não recomendamos isso. Para obter mais informações, consulte Devemos usar a Política do Azure para implantar cargas de trabalho?. Somente recursos ou configurações auxiliares ou de suporte são implantados ou configurados por essas políticas de DINE.

As implementações de referência de zonas de aterrissagem do Azure usam políticas do Azure DINE para ajudá-lo a obter governança orientada por políticas em seu ambiente do Azure. Mas talvez você não possa usar as políticas DINE ou Modificar ou não esteja pronto para habilitar esse tipo de efeito de política do Azure devido a:

  • Políticas de conformidade regulamentar, normas ou restrições legais.
  • Processos rigorosos de controle de alterações que exigem aprovação humana para cada ação em seu ambiente do Azure.
  • Falta de conhecimento, experiência e compreensão de como gerenciar e usar as políticas do DINE.
  • Requisitos organizacionais que toda a configuração de recursos de carga de trabalho, incluindo recursos auxiliares, recursos de suporte e configurações, são definidos na infraestrutura como código (IaC) pelas equipes de aplicativos de carga de trabalho.

Se você se encaixa nos exemplos anteriores ou cenários semelhantes, este artigo ajuda você a entender como adotar a arquitetura conceitual da zona de aterrissagem do Azure e aderir aos seus princípios de design. Embora você não use determinadas políticas inicialmente, pode optar por habilitá-las gradualmente no futuro. O objetivo é ajudá-lo a alcançar uma governança orientada por políticas.

Importante

Ao longo deste artigo, você verá dois valores possíveis usados para os termos do modo de imposição:

  • Desativado ou DoNotEnforce
  • Ativado ou Padrão

O portal do Azure usa Desabilitado e Habilitado para o modo de imposição. Os modelos do Azure Resource Manager (ARM) e outras interfaces de API usam DoNotEnforce e Default para as mesmas opções.

Para obter mais informações, consulte Modo de imposição.

Se você ainda tiver certeza de que sua organização não pode usar políticas DINE ou Modificar, este artigo explica como impedir (também conhecido como desabilitar) que as políticas façam alterações automáticas em seu ambiente do Azure.

Nota

Esta operação não é permanente. As políticas podem ser reativadas a qualquer momento por um membro da equipe da plataforma se você decidir usar as políticas DINE ou Modificar.

Para obter mais informações, consulte a fase 2 e a fase 3.

O suporte para seletores de recursos também é aplicável à governança orientada por políticas para garantir que as práticas de implantação segura (SDP) estejam sendo respeitadas. Os Seletores de Recursos trazem a funcionalidade de implantação gradual de atribuições de política com base em fatores como o local do recurso, o tipo de recurso ou se o recurso tem um local. Mais informações podem ser encontradas neste documento.

Visão geral da abordagem

O diagrama a seguir resume a abordagem faseada sugerida:

Graphic that shows a DINE phases overview.

  1. Defina o modo de imposição como DoNotEnforce em atribuições de política:
    • Usando esse recurso, você pode modificar o comportamento das atribuições para se tornar efetivamente uma política somente auditoria sem modificar a definição de política subjacente.
    • Essa abordagem também permite que você execute tarefas de correção manual em recursos não compatíveis usando tarefas de correção, se desejar.
  2. Defina o modo de imposição como Default on policy assignments para reativar a correção automática das atribuições de política DINE em um escopo reduzido:
    • Você pode optar por usar um ambiente inteiro, por exemplo, o grupo de gerenciamento Sandbox.
    • Ou, você pode usar uma assinatura de carga de trabalho não crítica.
  3. Defina o modo de imposição como Default em atribuições de política nas políticas DINE restantes em todo o ambiente do Azure.

Devido às restrições de conformidade regulamentar, alguns clientes nunca podem passar da fase 1. Isso não é um problema e é suportado para permanecer neste estado, se necessário. Outros clientes podem avançar para as fases 2 e 3 para adotar totalmente as políticas DINE e Modify para ajudar com a governança orientada por políticas para seu ambiente do Azure.

Nota

O cenário e a abordagem descritos neste artigo não se destinam nem são recomendados para a maioria dos clientes. Reveja a secção Porquê utilizar políticas DINE e Modificar? antes de decidir se estas políticas são adequadas e necessárias para o seu ambiente.

Fase 1: Desativar DINE e modificar ações automatizadas de políticas

Quando você atribui uma política, por padrão, o efeito definido na definição de política será aplicado. Recomendamos que deixe a definição de política como está. Por exemplo, deixe o efeito de atribuição de política como DeployIfNotExists.

Em vez de alterar a definição de política ou seu efeito, você pode influenciar esse comportamento com o mínimo de esforço usando o recurso em atribuições de política.

Usar o portal do Azure para definir o modo de imposição como Desabilitado

Esta captura de tela mostra como usar o portal do Azure para definir o modo de imposição como Desabilitado em uma atribuição de política. Disabled também é conhecido como DoNotEnforce.

Set the enforcement mode to Disabled in the Azure portal.

Use o modelo ARM para definir o modo de imposição como DoNotEnforce

Este exemplo de código mostra como usar um modelo ARM para definir enforcementMode como DoNotEnforce em uma atribuição de política. DoNotEnforce também é conhecido como Disabled.

{
  "type": "Microsoft.Authorization/policyAssignments",
  "apiVersion": "2019-09-01",
  "name": "PolicyAssignmentName",
  "location": "[deployment().location]",
  "properties": {
    "description": "PolicyAssignmentDescription",
    "policyDefinitionId": "[parameters('policyDefinitionId')]",
    "enforcementMode": "DoNotEnforce"
    … // other properties removed for display purposes
  }
}

Usando o modo de imposição, você pode ver o efeito de uma política nos recursos existentes sem iniciá-la ou acionar entradas no log de atividades do Azure. Esse cenário é comumente chamado de "E Se" e se alinha às práticas de implantação seguras.

Mesmo quando o modo de imposição está definido como DoNotEnforce, as tarefas de correção podem ser acionadas manualmente. Você pode corrigir recursos não compatíveis específicos. Você também pode ver o que a política DINE ou Modify teria feito se o modo de imposição estivesse definido como Default.

Importante

Quando o modo de imposição é definido como DoNotEnforce, as entradas no log de atividades do Azure não são geradas. Considere esse fator se quiser ser notificado quando um recurso não compatível for criado.

Permanecer no estado de fase 1 permanentemente

Conforme mencionado na seção Visão geral da abordagem, alguns clientes podem precisar permanecer na fase 1 por um longo período ou até mesmo permanentemente devido às suas necessidades. Esse estado é válido e os clientes podem permanecer nele por qualquer período de tempo.

Talvez você precise ficar neste estado permanentemente ou por um longo período, como anos. Em caso afirmativo, talvez seja melhor adotar o efeito de política (AINE) e as definições associadas e definir o modo de imposição de AuditIfNotExists volta para Default.

Nota

Ao mudar para usar uma política AINE e definir o modo de imposição como Default, você ainda alcança o mesmo objetivo de desabilitar o DINE.

Ao mudar de DINE para AINE e definir o modo de imposição de volta como uma abordagem de longo prazo ou permanente para a fase 1, você recuperará as entradas do log de atividades do Azure para status de Default conformidade de política. Você pode criar fluxos de trabalho de automação a partir dessas entradas de log em suas operações gerais de gerenciamento de plataforma.

Você perderá a capacidade de fazer tarefas de correção manual. Ao contrário das políticas DINE, as políticas AINE não executam implantações, sejam elas automatizadas ou manuais.

Lembre-se de atualizar a definição de política para aceitar e permitir o efeito de atribuição de AuditIfNotExists política.

A tabela a seguir resume as opções e implicações para os diferentes tipos de efeitos de política e combinações de modo de aplicação:

Efeito político Modo de imposição Erro do registo de atividades Ação de remediação
JANTAR Ativado ou Padrão Sim Correção acionada pela plataforma em escala após a criação ou atualização de recursos. A criação manual de uma tarefa de correção necessária se o recurso dependente for modificado ou preexistente antes da atribuição da política.
JANTAR Desativado ou DoNotEnforce Não Criação manual de uma tarefa de remediação necessária.
Modificar Ativado ou Padrão Sim Correção automática durante a criação ou atualização.
Modificar Desativado ou DoNotEnforce Não Criação manual de uma tarefa de remediação necessária.
Negar Ativado ou Padrão Sim Criação ou atualização negada.
Negar Desativado ou DoNotEnforce Não Criação ou atualização permitida. Remediação manual necessária.
Auditoria/AINE Ativado ou Padrão Sim Remediação manual necessária.
Auditoria/AINE Desativado ou DoNotEnforce Não Remediação manual necessária.

Nota

Analise as orientações em Reagindo a eventos de alteração de estado da Política do Azure para entender se o uso da integração da Grade de Eventos do Azure com a Política do Azure fornece uma abordagem adequada se você planeja criar sua própria automação com base em eventos de estado de política.

Fase 2: Habilitar políticas DINE e Modificar em uma política específica ou escopo reduzido

Nesta fase, você aprenderá como definir o modo de imposição para Default atribuições de política.

Depois de concluir a fase 1, você decide que deseja testar e experimentar todos os recursos de automação das políticas DINE e Modify em uma política específica ou em um escopo reduzido. Você deseja usar o grupo de gerenciamento Sandbox ou uma assinatura de carga de trabalho que não seja de produção.

Para fazer esse procedimento, primeiro você precisa identificar a política ou o escopo reduzido que será usado para testar e experimentar os recursos de automação total das políticas DINE e Modificar.

Nota

Talvez você queira revisar e implementar uma abordagem de teste para uma plataforma de escala empresarial. Dessa forma, você pode testar políticas e outras alterações de plataforma em uma hierarquia de grupo de gerenciamento separada dentro do mesmo locatário.

Essa abordagem também é conhecida como implantação "canária".

Alguns exemplos sugeridos de escopos e políticas são mostrados na tabela a seguir:

Quando você quer... ... Escolha entre estes escopos Exemplos de políticas a utilizar
- Testar as capacidades de remediação automatizada DINE/Modificar.
- Verifique como seus processos completos de implantação e pipelines de CI/CD, incluindo testes, podem ser afetados.
- Verifique como sua carga de trabalho pode ser afetada.
- Subscrição Sandbox
- Grupo de gestão de Sandbox
- Subscrição da zona de aterragem da carga de trabalho não produtiva
- Ambiente "canário" em escala empresarial
- Configure os logs de atividade do Azure para transmitir para um espaço de trabalho especificado do Log Analytics.
- Implantar a configuração do Defender for Cloud.
- Habilite o Azure Monitor para VMs ou Conjuntos de Dimensionamento de Máquina Virtual.
- Implantar configurações de diagnóstico nos serviços do Azure.
- Potencialmente só permitir serviços específicos no âmbito da iniciativa.

Você também pode decidir usar uma tarefa de correção manual em um escopo limitado ou conjunto de recursos para testar como essas políticas afetarão seu ambiente. Para obter mais informações sobre como criar uma tarefa de correção, consulte a documentação da Política do Azure Criar uma tarefa de correção.

Depois de identificar uma política ou políticas e o escopo reduzido para atribuí-las, a próxima etapa é atribuir a política e definir o modo de imposição como Default. Deixe o efeito de política, por exemplo, ou Modify, DeployIfNotExists como está no escopo reduzido selecionado.

Usar o portal do Azure para definir o modo de imposição como Habilitado

Esta captura de tela mostra como usar o portal do Azure para definir o modo de imposição como Habilitado em uma atribuição de política. Ativado também é conhecido como Padrão.

Screenshot that shows setting the enforcement mode to Enabled in the Azure portal.

Use um modelo ARM para definir o modo de imposição como Padrão

Este exemplo de código mostra como usar um modelo ARM para definir enforcementMode como Default em uma atribuição de política. Default também é conhecido como Enabled.

{
  "type": "Microsoft.Authorization/policyAssignments",
  "apiVersion": "2019-09-01",
  "name": "PolicyAssignmentName",
  "location": "[deployment().location]",
  "properties": {
    "description": "PolicyAssignmentDescription",
    "policyDefinitionId": "[parameters('policyDefinitionId')]",
    "enforcementMode": "Default"
    … // other properties removed for display purposes
  }
}

Testar

O último passo nesta fase é fazer os testes necessários. Você deseja verificar se e como as políticas DINE ou Modify podem ter afetado e feito alterações em suas cargas de trabalho, código, ferramentas e processos.

Execute vários testes para capturar todo o ciclo de vida da sua carga de trabalho. Você quer garantir que entende completamente se e como as políticas DINE ou Modify fizeram alterações.

Alguns exemplos de testes são:

  • Implantação inicial da carga de trabalho.
  • Implantação de código/aplicativo na carga de trabalho.
  • Dia 2 operações e gestão da carga de trabalho.
  • Desmantelamento da carga de trabalho.

Fase 3: Habilitar DINE e modificar políticas em todos os lugares

Nesta fase, você aprenderá como definir o modo de imposição para Default atribuições de política.

Assumimos que o seu teste no final da fase 2 foi aprovado com sucesso. Ou talvez você esteja satisfeito por agora entender como as políticas DINE ou Modify interagem com sua carga de trabalho. Agora você pode expandir o uso de políticas DINE e Modify no restante do seu ambiente do Azure.

Para continuar, siga as etapas semelhantes às etapas da fase 2. Desta vez, você define o modo de imposição como Default em todas as atribuições de política DINE e Modificar em todo o ambiente do Azure.

Aqui está uma visão geral de alto nível das etapas que você faz nesta fase:

  • Remova as atribuições usadas especificamente para testes durante a fase 2.
  • Percorra cada atribuição de política DINE e Modificar em seu ambiente do Azure e defina o modo de imposição como Default. Este processo é mostrado nos exemplos da fase 2.
  • Crie tarefas de correção para recursos existentes que não estão em conformidade seguindo as orientações em Criar uma tarefa de correção. Os novos recursos serão automaticamente corrigidos se corresponderem às regras da política e às condições de existência.

Embora na fase 3 recomendemos que você defina o modo de imposição para Default todas as políticas DINE e Modificar em seu ambiente do Azure, essa opção ainda é opcional. Você pode fazer essa escolha por política para atender às suas necessidades e requisitos.

Gestão avançada de políticas

Para uma gestão avançada da Política do Azure em escala, considere a implementação da Política Empresarial como Código (EPAC) para gerir a política. O EPAC fornece uma experiência de gestão com estado que utiliza o IaC. Geralmente, adapta-se a grandes cenários de gestão de políticas com requisitos complexos.