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 é implantar 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 de nuvem crítica.
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.
Números das etapas do fluxograma:
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 oaudit
tipo de efeito usando substituições de atribuição. Seletor de amostras comeastUS
localização e efeito comoaudit
:"resourceSelectors": [{ "name": "SDPRegions", "selectors": [{ "kind": "resourceLocation", "in": [ "eastUS" ] }] }], "overrides":[{ "kind": "policyEffect", "value": "Audit" }]
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.
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"] }] }]
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 edeny
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" }]
Uma vez que o efeito é alterado, os testes automatizados devem verificar se a aplicação está ocorrendo conforme o esperado.
Repita incluindo mais anéis na configuração do seletor de recursos.
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:
Números das etapas do fluxograma:
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 comeastUS
location e enforcementMode como DoNotEnforce:"resourceSelectors": [{ "name": "SDPRegions", "selectors": [{ "kind": "resourceLocation", "in": [ "eastUS" ] }] }], "enforcementMode": "DoNotEnforce"
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.
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"] }] }]
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",
Uma vez que o efeito é alterado, os testes automatizados devem verificar se a aplicação está ocorrendo conforme o esperado.
Repita incluindo mais anéis na configuração do seletor de recursos.
Repita este processo para todos os anéis de produção.
Etapas para atualizar com segurança a versão de definição interna na atribuição de Política do Azure
Dentro da atribuição existente, aplique substituições para atualizar a versão da definição para o anel menos crítico. Estamos usando uma combinação de substituições para alterar a definiçãoVersion e seletores dentro da condição de substituições para restringir a aplicabilidade por
"kind": "resource location"
propriedade. Todos os recursos que estiverem fora dos locais especificados continuarão a ser avaliados em relação à versão dadefinitionVersion
propriedade de nível superior na atribuição. Exemplo substituir a atualização da versão da definição para2.0.*
e aplicá-la apenas aos recursos noEastUs
."overrides":[{ "kind": "definitionVersion", "value": "2.0.*", "selectors": [{ "kind": "resourceLocation", "in": [ "eastus"] }] }]
Depois que a atribuição for atualizada 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.
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 com um valor de localização acrescentado:
"overrides":[{ "kind": "definitionVersion", "value": "2.0", "selectors": [{ "kind": "resourceLocation", "in": [ "eastus", "westus"] }] }]
Depois de incluir com êxito todos os locais necessários no _selectors, você pode remover a substituição e atualizar a propriedade definitionVersion dentro da atribuição:
"properties": {
"displayName": "Enforce resource naming rules",
"description": "Force resource names to begin with DeptA and end with -LC",
"definitionVersion": "2.0.*",
}
Próximos passos
- Saiba como criar políticas de forma programática.
- Analise a Política do Azure como fluxos de trabalho de código.
- Estude as orientações da Microsoft sobre práticas de implantação seguras.
- Analise Corrigir recursos não compatíveis com a Política do Azure.