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
- Configurar a identidade gerenciada
- Conceder permissões à identidade gerenciada por meio de funções definidas
- Criar uma tarefa de correção
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.
Para definir uma identidade gerenciada atribuída ao sistema no portal:
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.
Especifique o local no qual a identidade gerenciada deve ser localizada.
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:
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.
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.
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:
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.
Selecione Atribuições no lado esquerdo da página Azure Policy.
Localize a atribuição que tem uma identidade gerenciada e selecione o nome.
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.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.
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.
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.
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
Selecione Correção no lado esquerdo da página Política do Azure.
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.
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
Selecione Conformidade no lado esquerdo da página Política do Azure.
Selecione uma atribuição de política ou iniciativa não compatível que contenha deployIfNotExists ou modifique efeitos.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Etapa 3: Acompanhar o progresso da tarefa de correção
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.
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.
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
- Analise exemplos em Exemplos de Política do Azure.
- Reveja a estrutura de definição do Azure Policy.
- Veja Compreender os efeitos do Policy.
- Entenda como criar políticas de forma programática.
- Saiba como obter dados de conformidade.
- Analise o que é um grupo de gerenciamento com Organize seus recursos com grupos de gerenciamento do Azure.