Implementação segura de atribuições de Política do Azure

À medida que seu ambiente se expande, aumenta também a demanda por um pipeline de implantação contínua (CD) controlado com controle progressivo de exposição. Assim, a Microsoft recomenda que as equipes de DevOps sigam a estrutura de práticas de implantação segura (SDP). A implantação segura de definições e atribuições de Política do Azure ajuda a limitar o impacto de comportamentos não intencionais de recursos de política.

A abordagem de alto nível da implementação do SDP com a Política do Azure é distribuir gradualmente as atribuições de política por anéis para detetar alterações de política que afetam o ambiente nos estágios iniciais, antes que afetem a infraestrutura crítica de nuvem.

Os anéis de implantação podem ser organizados de diversas maneiras. Neste tutorial de instruções, os anéis são divididos por diferentes regiões do Azure, com o Anel 0 representando locais não críticos e de baixo tráfego e o Anel 5 indicando os locais mais críticos e de maior tráfego.

Etapas para a implantação segura de atribuições de Política do Azure com efeitos de negação ou acréscimo

Use o fluxograma a seguir como referência enquanto analisamos como aplicar a estrutura SDP às atribuições de Política do Azure que usam os deny efeitos de política ou append .

Nota

Para saber mais sobre os efeitos de política do Azure, consulte Compreender como os efeitos funcionam.

Flowchart with steps one through eight showing safe deployment practices deployment of a new Azure Policy definition.

Números das etapas do fluxograma:

  1. Depois de selecionar sua definição de política, atribua a política no escopo de nível mais alto, incluindo todos os anéis de implantação. Aplique seletores de recursos para restringir a aplicabilidade ao anel menos crítico usando a "kind": "resource location" propriedade. Configure o audit tipo de efeito usando substituições de atribuição. Seletor de amostras com eastUS localização e efeito como audit:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS" ] 
      }]
    }], 
    "overrides":[{ 
      "kind": "policyEffect", 
      "value": "Audit" 
    }] 
    
  2. Depois que a atribuição for implantada e a verificação de conformidade inicial for concluída, valide se o resultado da conformidade está conforme o esperado.

    Você também deve configurar testes automatizados que executam verificações de conformidade. A verificação da conformidade deve abranger a seguinte lógica:

    • Reunir resultados de conformidade
    • Se os resultados de conformidade forem os esperados, o pipeline deve continuar
    • Se os resultados de conformidade não forem os esperados, o pipeline deve falhar e você deve começar a depuração

    Por exemplo, você pode configurar a verificação de conformidade usando outras ferramentas dentro de seu pipeline específico de integração contínua/implantação contínua (CI/CD).

    Em cada etapa de implantação, as verificações de integridade do aplicativo devem confirmar a estabilidade do serviço e o impacto da política. Se os resultados não forem os esperados devido à configuração do aplicativo, refatore o aplicativo conforme apropriado.

  3. Repita expandindo os valores de propriedade do seletor de recursos para incluir os próximos anéis. e validação dos resultados esperados de conformidade e integridade do aplicativo. Exemplo de seletor com um valor de localização adicionado:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS", "westUS"] 
      }]
    }]
    
  4. Depois de atribuir com êxito a política a todos os anéis usando audit o modo, o pipeline deve acionar uma tarefa que altere o efeito da política e deny redefina os seletores de recursos para o local associado ao Anel 0. Seletor de exemplo com uma região e um efeito definidos para negar:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS" ] 
      }]
    }], 
    "overrides":[{ 
      "kind": "policyEffect", 
      "value": "Deny" 
    }] 
    
  5. Uma vez que o efeito é alterado, os testes automatizados devem verificar se a aplicação está ocorrendo conforme o esperado.

  6. Repita incluindo mais anéis na configuração do seletor de recursos.

  7. Repita este processo para todos os anéis de produção.

Etapas para a implantação segura de atribuições de Política do Azure com efeitos modify ou deployIfNotExists

As etapas para políticas que usam os modify efeitos ou deployIfNotExists são semelhantes às etapas explicadas anteriormente com a ação adicional de usar o modo de imposição e acionar uma tarefa de correção. Analise o seguinte fluxograma com as etapas 5 a 9 modificadas:

Flowchart showing steps 5 through 9 in the Azure Policy safe deployment practices workflow.

Números das etapas do fluxograma:

  1. Depois de selecionar sua definição de política, atribua a política no escopo de nível mais alto, incluindo todos os anéis de implantação. Aplique seletores de recursos para restringir a aplicabilidade ao anel menos crítico usando a "kind": "resource location" propriedade. Configure o modo de imposição da atribuição para DoNotEnforce. Seletor de exemplo com eastUS location e enforcementMode como DoNotEnforce:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS" ] 
      }]
    }], 
    "enforcementMode": "DoNotEnforce"
    
  2. Depois que a atribuição for implantada e a verificação de conformidade inicial for concluída, valide se o resultado da conformidade está conforme o esperado.

    Você também deve configurar testes automatizados que executam verificações de conformidade. A verificação da conformidade deve abranger a seguinte lógica:

    • Reunir resultados de conformidade
    • Se os resultados de conformidade forem os esperados, o pipeline deve continuar
    • Se os resultados de conformidade não forem os esperados, o pipeline deve falhar e você deve começar a depuração

    Você pode configurar a verificação de conformidade usando outras ferramentas dentro do seu pipeline de integração contínua/implantação contínua (CI/CD).

    Em cada etapa de implantação, as verificações de integridade do aplicativo devem confirmar a estabilidade do serviço e o impacto da política. Se os resultados não forem os esperados devido à configuração do aplicativo, refatore o aplicativo conforme apropriado.

    Você também pode acionar tarefas de correção para corrigir recursos não compatíveis existentes. Certifique-se de que as tarefas de remediação estão colocando os recursos em conformidade conforme o esperado.

  3. Repita expandindo os valores de propriedade do seletor de recursos para incluir os locais do próximo anel e validando os resultados de conformidade esperados e a integridade do aplicativo. Exemplo de seletor com um valor de localização adicionado:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS", "westUS"] 
      }]
    }]
    
  4. Depois de atribuir com êxito a política a todos os anéis usando o modo DoNotEnforce, o pipeline deve acionar uma tarefa que altera a política enforcementMode para Ativação padrão e redefinir os seletores de recursos para o local associado ao Anel 0. Seletor de exemplo com uma região e um efeito definidos para negar:

    "resourceSelectors": [{ 
      "name": "SDPRegions", 
      "selectors": [{
          "kind": "resourceLocation",
          "in": [ "eastUS" ] 
      }]
    }], 
    "enforcementMode": "Default",
    
  5. Uma vez que o efeito é alterado, os testes automatizados devem verificar se a aplicação está ocorrendo conforme o esperado.

  6. Repita incluindo mais anéis na configuração do seletor de recursos.

  7. Repita este processo para todos os anéis de produção.

Próximos passos