Corrigir recursos que não estão em conformidade com o Azure Policy

Os recursos que não estão em conformidade com políticas que têm os efeitos deployIfNotExists ou modify podem ser colocados em um estado de conformidade por meio da correção. A correção é realizada por meio de tarefas de correção que implantam o modelo deployIfNotExists ou as operações modify da política atribuída nos recursos e assinaturas atuais, independentemente de essa atribuição estar em um grupo de gerenciamento, uma assinatura, um grupo de recursos ou um recurso individual. Este artigo mostra as etapas necessárias para entender e realizar a correção com o Azure Policy.

Como o controle de acesso de correção funciona

Quando o Azure Policy inicia uma implantação de modelo ao avaliar políticas deployIfNotExists ou modifica um recurso ao avaliar políticas modify, ele faz isso usando uma identidade gerenciada associada à atribuição de política. As atribuições de política usam identidades gerenciadas para autorização de recursos do Azure. É possível usar uma identidade gerenciada atribuída pelo sistema e criada pelo serviço de política ou uma identidade atribuída pelo usuário e fornecida por ele. A identidade gerenciada precisa receber a função mínima do RBAC (controle de acesso baseado em função) do Azure necessária para corrigir recursos. Se a identidade gerenciada tiver funções ausentes, esse erro será exibido no portal durante a atribuição da política ou uma iniciativa. Quando você usa o portal, o Azure Policy concede automaticamente à identidade gerenciada as funções listadas assim que a atribuição começa. Ao usar um SDK (kit de desenvolvimento de software) do Azure, as funções devem ser concedidas manualmente à identidade gerenciada. A localização da identidade gerenciada não afeta a operação dela com o Azure Policy.

Observação

A alteração de uma definição de política não atualiza automaticamente a atribuição ou a identidade gerenciada associada.

A segurança da correção pode ser configurada por meio das seguintes etapas:

Configurar a definição de política

Como pré-requisito, a definição de política deve definir as funções necessárias para que deployIfNotExists e modify implantem com sucesso o conteúdo do modelo incluído. Nenhuma ação é necessária para uma definição de política interna porque essas funções são preenchidas previamente. Para uma definição de política personalizada, na propriedade details, adicione uma propriedade roleDefinitionIds. Essa propriedade é uma matriz de cadeias de caracteres que correspondem a funções no ambiente. Para um exemplo completo, confira deployIfNotExists ou modificar.

"details": {
    ...
    "roleDefinitionIds": [
    "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
    "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
  ]
}

A propriedade roleDefinitionIds usa o identificador de recurso completo e não assume o roleName abreviado da função. Para obter a ID da função de Colaborador no ambiente, use o seguinte código da CLI do Azure:

az role definition list --name "Contributor"

Importante

As permissões devem ser restritas ao menor conjunto possível ao definir roleDefinitionIds em uma definição de política ou atribuir permissões manualmente a uma identidade gerenciada. Confira Recomendações de melhores práticas para identidade gerenciada para conhecer mais melhores práticas.

Configurar a identidade gerenciada

Cada atribuição de Azure Policy pode ser associada a apenas uma identidade gerenciada. No entanto, a identidade gerenciada pode ser atribuída a várias funções. A configuração ocorre em duas etapas: primeiro, crie uma identidade gerenciada atribuída pelo sistema ou pelo usuário e conceda a ela as funções necessárias.

Observação

Ao criar uma identidade gerenciada por meio do portal, as funções serão concedidas automaticamente a ela. Se roleDefinitionIds forem editados posteriormente na definição da política, as novas permissões deverão ser concedidas manualmente, mesmo no portal.

Criar a identidade gerenciada

Ao criar uma atribuição usando o portal, o Azure Policy pode gerar uma identidade gerenciada atribuída pelo sistema e conceder a ela as funções definidas no roleDefinitionIds da definição de política. Como alternativa, você pode especificar uma identidade gerenciada atribuída pelo usuário que recebe a mesma atribuição de função.

Captura de tela de uma atribuição de política criando uma identidade gerenciada atribuída pelo sistema no Leste dos EUA com permissões de Colaborador do Log Analytics.

Para definir uma identidade gerenciada atribuída pelo sistema no portal:

  1. Na guia Correção da exibição de atribuição criar/editar, em Tipos de Identidade gerenciada, verifique se a Identidade gerenciada atribuída pelo sistema está selecionada.

  2. Especifique o local no qual a identidade gerenciada deve ser localizada.

  3. Não atribua um escopo à identidade gerenciada atribuída pelo sistema porque ele será herdado do escopo de atribuição.

Para definir uma identidade gerenciada atribuída pelo usuário no portal:

  1. Na guia Correção da exibição de atribuição criar/editar, em Tipos de Identidade gerenciada, verifique se a Identidade gerenciada atribuída pelo usuário está selecionada.

  2. Especifique o escopo em que a identidade gerenciada está hospedada. O escopo da identidade gerenciada não precisa ser igual ao escopo da atribuição, mas deve estar no mesmo locatário.

  3. Em Identidades atribuídas pelo usuário existentes, selecione a identidade gerenciada.

Conceder permissões à identidade gerenciada por meio de funções definidas

Importante

Se a identidade gerenciada não tiver as permissões necessárias para executar a tarefa de correção necessária, ela receberá permissões automaticamente somente por meio do portal. Você poderá ignorar essa etapa se estiver criando uma identidade gerenciada por meio do portal.

Para todos os outros métodos, a identidade gerenciada da atribuição deve receber acesso manualmente por meio da adição de funções, ou a implantação da correção falhará.

Cenários de exemplo que exigem permissões manuais:

  • Se a atribuição for criada por meio de um SDK (kit de desenvolvimento de software) do Azure
  • Se um recurso modificado por deployIfNotExists ou modify estiver fora do escopo da atribuição de política
  • Se o modelo acessar propriedades em recursos fora do escopo da atribuição de política

Há duas maneiras de conceder uma identidade gerenciada da atribuição às funções definidas pelo portal: usando Controle de acesso (IAM) ou editando a atribuição de política ou iniciativa e clicando em Salvar.

Para adicionar uma função à identidade gerenciada da atribuição, siga estas etapas:

  1. Inicie o serviço do Azure Policy no portal do Azure selecionando Todos os serviços e, em seguida, pesquisando e selecionando Política.

  2. Selecione Atribuições no lado esquerdo da página de Política do Azure.

  3. Localize a atribuição que tem uma identidade gerenciada e clique no nome.

  4. Localize a propriedade ID de Atribuição na página de edição. A ID da tarefa é semelhante a este exemplo:

    /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5
    

    O nome da identidade gerenciada é a última parte da ID do recurso de atribuição, que é 2802056bfc094dfb95d4d7a5 neste exemplo. Copie essa parte da ID do recurso da atribuição.

  5. Navegue até o recurso ou os recursos do contêiner pai (grupo de recursos, assinatura, grupo de gerenciamento) que precisa na definição de função adicionada manualmente.

  6. Clique no link Controle de acesso (IAM) na página de recursos e clique em + Adicionar atribuição de função na parte superior da página do controle de acesso.

  7. Selecione a função apropriada que corresponde a um roleDefinitionIds na definição de política. Mantenha a opção Atribuir acesso a definida como o padrão “usuário, grupo ou aplicativo”. Na caixa Selecionar, cole ou digite a parte da ID do recurso de atribuição localizada anteriormente. Depois que a pesquisa for concluída, clique no objeto com o mesmo nome para selecionar a ID e clique em Salvar.

Criar uma tarefa de correção

Inicie o serviço do Azure Policy no portal do Azure selecionando Todos os serviços e, em seguida, pesquisando e selecionando Política.

Captura de tela da pesquisa de Política em Todos os Serviços.

Etapa 1: iniciar a criação da tarefa de correção

Há três maneiras de criar uma tarefa de correção por meio do portal.

Opção 1: criar uma tarefa de correção na página Correção

  1. Selecione Correção no lado esquerdo da página do Azure Policy.

    Captura de tela do nó Correção na página Política.

  2. Todas as atribuições de política deployIfNotExists e modify são mostradas na guia Políticas a serem corrigidas. Selecione uma delas com recursos não compatíveis para abrir a página Nova tarefa de correção.

  3. Siga as etapas para especificar os detalhes da tarefa de correção.

Opção 2: criar uma tarefa de correção com base em uma atribuição de política sem conformidade

  1. Selecione Conformidade no lado esquerdo da página do Azure Policy.

  2. Selecione uma atribuição de iniciativa ou política não compatível com os efeitos deployIfNotExists ou modify.

  3. Selecione o botão Criar Tarefa de Correção na parte superior da página para abrir a página Nova tarefa de correção.

  4. Siga as etapas para especificar os detalhes da tarefa de correção.

Opção 3: criar uma tarefa de correção durante a atribuição de política

Se a definição de política ou iniciativa a ser atribuída tiver um efeito deployIfNotExists ou modify, a guia Correção do assistente oferecerá uma opção Criar uma tarefa de correção, que criará uma tarefa de correção com a atribuição de política.

Observação

Essa é a abordagem mais simplificada para criar uma tarefa de correção e tem suporte para políticas atribuídas em uma assinatura. Para políticas atribuídas em um grupo de gerenciamento, as tarefas de correção devem ser criadas usando a Opção 1 ou a Opção 2 após a avaliação determinar a conformidade do recurso.

  1. No assistente de atribuição no portal, navegue até a guia Correção. Marque a caixa de seleção para Criar uma tarefa de correção.

  2. Se a tarefa de correção for iniciada com base em uma atribuição de iniciativa, selecione a política para corrigir na lista suspensa.

  3. Configure a identidade gerenciada e preencha o restante do assistente. A tarefa de correção é criada quando a atribuição é criada.

Etapa 2: especificar os detalhes da tarefa de correção

Essa etapa só é aplicável ao usar a Opção 1 ou a Opção 2 para iniciar a criação de tarefas de correção.

  1. Se a tarefa de correção for iniciada com base em uma atribuição de iniciativa, selecione a política para corrigir na lista suspensa. Uma política deployIfNotExists ou modify pode ser corrigida por meio de uma única tarefa de correção por vez.

  2. Opcionalmente, modifique as configurações de correção na página. Para obter informações sobre o que cada configuração controla, confiraestrutura de tarefas de correção.

  3. Na mesma página, filtre os recursos a serem corrigidos usando as reticências de Escopo para escolher os recursos filho nos quais a política está atribuída (incluindo até os objetos do recurso individuais). Além disso, use a lista suspensa Locais para filtrar ainda mais os recursos.

    Captura de tela do nó Correção e a grade de recursos a serem corrigidos.

  4. Inicie a tarefa de correção após a filtragem dos recursos selecionando Corrigir. A página de conformidade de política abre na guia Tarefas de correção para mostrar o estado do progresso das tarefas. As implantações criadas pela tarefa de correção são iniciadas imediatamente.

    Captura de tela da guia Tarefas de correção e progresso das tarefas de correção atuais.

Etapa 3: acompanhar o andamento da tarefa de correção

  1. Navegue até a guia Tarefas de correção na página Correção. Selecione uma tarefa de correção para exibir detalhes sobre a filtragem usada, o status atual e uma lista de recursos que estão sendo corrigidos.

  2. Na página de detalhes da Tarefa de correção, clique com o botão direito do mouse em um recurso para exibir o recurso ou a implantação da tarefa de correção. No final da linha, clique em Eventos relacionados para ver os detalhes, como uma mensagem de erro.

    Captura de tela do menu de contexto de um recurso na guia Tarefa de correção.

Os recursos implantados por meio de uma tarefa de correção são adicionados à guia Recursos Implantados na página de detalhes da atribuição de política.

Próximas etapas