Corrigir recursos não compatíveis com a Política do Azure

Os recursos que não estão em conformidade com as políticas com deployIfNotExists ou modificam os efeitos podem ser colocados em um estado compatível 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 de modificação da política atribuída em seus recursos e assinaturas existentes, quer essa atribuição esteja em um grupo de gerenciamento, assinatura, grupo de recursos ou recurso individual. Este artigo mostra as etapas necessárias para entender e realizar a correção com a Política do Azure.

Como funciona o controlo de acesso da remediação

Quando a Política do Azure inicia uma implantação de modelo ao avaliar políticas deployIfNotExists ou modifica um recurso ao avaliar políticas de modificação, ela o faz 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. Pode utilizar uma identidade gerida atribuída pelo sistema que é criada pelo serviço de política ou uma identidade atribuída pelo utilizador facultada pelo mesmo. A identidade gerida tem de ser atribuída às funções mínimas de controlo de acesso baseado em funções (RBAC) necessárias para remediar os recursos. Se a identidade gerida tiver as funções em falta, será apresentado um erro no portal durante a atribuição da política ou de uma iniciativa. Ao utilizar o portal, o Azure Policy concede automaticamente à identidade gerida as funções listadas assim que a atribuição começar. Ao utilizar um SDK (Software Development Kit) do Azure, as funções terão de ser concedidas manualmente à identidade gerida. A localização da identidade gerida não afeta a sua operação com a Política do Azure.

Nota

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 de correção pode ser configurada através das seguintes etapas:

Configurar a definição de política

Como pré-requisito, a definição de política deve definir as funções que deployIfNotExists e modificar precisam para implantar com êxito 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 pré-preenchidas. 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 em seu ambiente. Para obter um exemplo completo, consulte o exemplo deployIfNotExists ou os exemplos de modificação.

"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 usa o pageName curto da função. Para obter a ID da função 'Colaborador' em seu 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 dentro de uma definição de política ou atribuir permissões a uma identidade gerenciada manualmente. Consulte as recomendações de práticas recomendadas de identidade gerenciada para obter mais práticas recomendadas.

Configurar a identidade gerenciada

Cada atribuição de Política do Azure 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, em seguida, conceda as funções necessárias.

Nota

Ao criar uma identidade gerenciada por meio do portal, as funções serão concedidas automaticamente à identidade gerenciada. Se roleDefinitionIds forem editados posteriormente na definição de 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, a Política do Azure pode gerar uma identidade gerenciada atribuída ao sistema e conceder-lhe as funções definidas em roleDefinitionIds da definição de política. Como alternativa, você pode especificar uma identidade gerenciada atribuída pelo usuário que receba a mesma atribuição de função.

Screenshot of a policy assignment creating a system-assigned managed identity in East US with Log Analytics Contributor permissions.

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

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

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

  3. Não atribua um escopo para identidade gerenciada atribuída ao sistema porque o escopo será herdado do escopo da atribuição.

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

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

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

  3. Em Identidades atribuídas ao usuário existente, 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ê pode pular esta etapa se estiver criando uma identidade gerenciada através 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, caso contrário, a implantação de correção falhará.

Exemplos de cenários que exigem permissões manuais:

  • Se a atribuição for criada por meio de um SDK (Software Development Kit) do Azure
  • Se um recurso modificado por deployIfNotExists ou modificado 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 à identidade gerenciada de uma atribuição as funções definidas usando o portal: usando o controle de acesso (IAM) ou editando a atribuição de política ou iniciativa e selecionando Salvar.

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

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

  2. Selecione Atribuições no lado esquerdo da página Azure Policy.

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

  4. Encontre a propriedade ID da Atribuição na página de edição. O ID da atribuição será algo como:

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

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

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

  6. Selecione o link Controle de acesso (IAM) na página de recursos e selecione + Adicionar atribuição de função na parte superior da página de controle de acesso.

  7. Selecione a função apropriada que corresponde a um roleDefinitionId na definição de política. Deixe Atribuir acesso para definir como o padrão de 'usuário, grupo ou aplicativo do Azure AD'. Na caixa Selecionar, cole ou digite a parte da ID do recurso de atribuição localizada anteriormente. Quando a pesquisa for concluída, selecione o objeto com o mesmo nome para selecionar ID e selecione Salvar.

Criar uma tarefa de correção

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

Screenshot of searching for Policy in All Services.

Etapa 1: Iniciar a criação de tarefas de correção

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

Opção 1: Criar uma tarefa de correção a partir da página Correção

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

    Screenshot of the Remediation node on the Policy page.

  2. Todas as atribuições deployIfNotExists e modificar políticas são mostradas na guia Políticas a serem corrigidas. Selecione um 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 a partir de uma atribuição de política não compatível

  1. Selecione Conformidade no lado esquerdo da página Política do Azure.

  2. Selecione uma atribuição de política ou iniciativa não compatível que contenha deployIfNotExists ou modifique efeitos.

  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 Modificar, a guia Remediation do assistente oferecerá uma opção Criar uma tarefa de correção, que criará uma tarefa de correção ao mesmo tempo que a atribuição de política.

Nota

Essa é a abordagem mais simplificada para criar uma tarefa de correção e é suportada para políticas atribuídas em uma assinatura. Para políticas atribuídas a 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 ter determinado a conformidade dos recursos.

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

  2. Se a tarefa de correção for iniciada a partir de uma atribuição de iniciativa, selecione a política a ser corrigida na lista suspensa.

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

Etapa 2: Especificar detalhes da tarefa de correção

Esta 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 a partir de uma atribuição de iniciativa, selecione a política a ser corrigida na lista suspensa. Uma política deployIfNotExists ou modificar pode ser corrigida por meio de uma única tarefa de correção de cada vez.

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

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

    Screenshot of the Remediate node and the grid of resources to remediate.

  4. Inicie a tarefa de correção depois que os recursos tiverem sido filtrados selecionando Remediar. A página de conformidade da política é aberta na guia Tarefas de correção para mostrar o estado do progresso das tarefas. As implantações criadas pela tarefa de correção começam imediatamente.

    Screenshot of the Remediation tasks tab and progress of existing remediation tasks.

Etapa 3: Acompanhar o progresso da tarefa de correção

  1. Navegue até a guia Tarefas de correção na página Correção. Clique em 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 Detalhes da tarefa de correção, clique com o botão direito do mouse em um recurso para exibir a implantação da tarefa de correção ou o recurso. No final da linha, selecione Eventos relacionados para ver detalhes como uma mensagem de erro.

    Screenshot of the context menu for a resource on the Remediate task tab.

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óximos passos