Partilhar via


Tutorial: Gerir a governação de etiquetas com Azure Policy

As etiquetas são uma parte crucial da organização dos seus recursos do Azure numa taxonomia. Ao seguir as melhores práticas para a gestão de etiquetas, as etiquetas podem ser a base para aplicar as suas políticas empresariais com Azure Policy ou controlar os custos com o Cost Management. Independentemente de como ou por que motivo utiliza etiquetas, é importante que possa adicionar, alterar e remover rapidamente essas etiquetas nos seus recursos do Azure. Para ver se o recurso do Azure suporta etiquetas, veja Suporte de etiquetas.

Azure Policy o efeito Modificar foi concebido para ajudar na governação das etiquetas independentemente da fase de governação de recursos em que se encontra. Modificar ajuda quando:

  • É novo na cloud e não tem governação de etiquetas
  • Já tem milhares de recursos sem governação de etiquetas
  • Já tem uma taxonomia existente de que precisa de ser alterada

Neste tutorial, irá concluir as seguintes tarefas:

  • Identifique os seus requisitos de negócio
  • Mapear cada requisito para uma definição de política
  • Agrupar as políticas de etiqueta numa iniciativa

Pré-requisitos

Para concluir este tutorial, precisa de uma subscrição do Azure. Se não tiver uma, crie uma conta gratuita antes de começar.

Identificar requisitos

Como qualquer boa implementação de controlos de governação, os requisitos devem ser provenientes das suas necessidades empresariais e ser bem compreendidos antes de criar controlos técnicos. Para este tutorial de cenário, os seguintes itens são os nossos requisitos empresariais:

  • Duas etiquetas necessárias em todos os recursos: CostCenter e Env
  • O CostCenter tem de existir em todos os contentores e recursos individuais
    • Os recursos herdam do contentor onde se encontram, mas podem ser substituídos individualmente
  • O Env tem de existir em todos os contentores e recursos individuais
    • Os recursos determinam o ambiente por esquema de nomenclatura de contentor e podem não ser substituídos
    • Todos os recursos num contentor fazem parte do mesmo ambiente

Configurar a etiqueta CostCenter

Em termos específicos de um ambiente do Azure gerido pelo Azure Policy, os requisitos de etiquetas do CostCenter exigem os seguintes resultados:

  • Negar grupos de recursos em falta na etiqueta CostCenter
  • Modificar recursos para adicionar a etiqueta CostCenter do grupo de recursos principal quando falta

Negar grupos de recursos em falta na etiqueta CostCenter

Uma vez que o CostCenter para um grupo de recursos não pode ser determinado pelo nome do grupo de recursos, tem de ter a etiqueta definida no pedido para criar o grupo de recursos. A seguinte regra de política com o efeito Negar impede a criação ou atualização de grupos de recursos que não têm a etiqueta CostCenter :

"if": {
    "allOf": [{
            "field": "type",
            "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
            "field": "tags['CostCenter']",
            "exists": false
        }
    ]
},
"then": {
    "effect": "deny"
}

Nota

Uma vez que esta regra de política visa um grupo de recursos, o modo na definição de política tem de ser "Tudo" em vez de "Indexado".

Modificar recursos para herdar a etiqueta CostCenter quando falta

A segunda necessidade do CostCenter é que todos os recursos herdem a etiqueta do grupo de recursos principal quando está em falta. Se a etiqueta já estiver definida no recurso, mesmo que seja diferente do grupo de recursos principal, tem de ser deixada em paz. A seguinte regra de política utiliza Modificar:

"policyRule": {
    "if": {
        "field": "tags['CostCenter']",
        "exists": "false"
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "add",
                "field": "tags['CostCenter']",
                "value": "[resourcegroup().tags['CostCenter']]"
            }]
        }
    }
}

Esta regra de política utiliza a operação de adição em vez de addOrReplace , uma vez que não queremos alterar o valor da etiqueta se estiver presente ao remediar recursos existentes. Também utiliza a [resourcegroup()] função de modelo para obter o valor da etiqueta do grupo de recursos principal.

Nota

Uma vez que esta regra de política visa os recursos que suportam etiquetas, o modo na definição de política tem de ser "Indexado". Esta configuração também garante que esta política ignora os grupos de recursos.

Configurar a etiqueta Env

Em termos específicos de um ambiente do Azure gerido pelo Azure Policy, os requisitos de etiqueta env exigem os seguintes resultados:

  • Modificar a etiqueta Env no grupo de recursos com base no esquema de nomenclatura do grupo de recursos
  • Modificar a etiqueta Env em todos os recursos no grupo de recursos para o mesmo que o grupo de recursos principal

Modificar a etiqueta Env dos grupos de recursos com base no nome

É necessária uma política modificação para cada ambiente que exista no seu ambiente do Azure. A política Modificar para cada um tem um aspeto semelhante a esta definição de política:

"policyRule": {
    "if": {
        "allOf": [{
            "field": "type",
            "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
            "field": "name",
            "like": "prd-*"
        },
        {
            "field": "tags['Env']",
            "notEquals": "Production"
        }

    ]
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "addOrReplace",
                "field": "tags['Env']",
                "value": "Production"
            }]
        }
    }
}

Nota

Uma vez que esta regra de política visa um grupo de recursos, o modo na definição de política tem de ser "Tudo" em vez de "Indexado".

Esta política corresponde apenas a grupos de recursos com o esquema de nomenclatura de exemplo utilizado para recursos de produção do prd-. Os esquemas de nomenclatura mais complexos podem ser alcançados com várias condições de correspondência em vez do único como neste exemplo.

Modificar recursos para herdar a etiqueta Env

O requisito de negócio exige que todos os recursos tenham a etiqueta Env que o respetivo grupo de recursos principal tem. Esta etiqueta não pode ser substituída, pelo que vamos utilizar a operação addOrReplace com o efeito Modificar . A política Modificar de exemplo é semelhante à seguinte regra:

"policyRule": {
    "if": {
        "anyOf": [{
            "field": "tags['Env']",
            "notEquals": "[resourcegroup().tags['Env']]"
        },
        {
            "field": "tags['Env']",
            "exists": false
        }
    ]
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "addOrReplace",
                "field": "tags['Env']",
                "value": "[resourcegroup().tags['Env']]"
            }]
        }
    }
}

Nota

Uma vez que esta regra de política visa os recursos que suportam etiquetas, o modo na definição de política tem de ser "Indexado". Esta configuração também garante que esta política ignora os grupos de recursos.

Esta regra de política procura qualquer recurso que não tenha o respetivo valor de grupos de recursos principal para a etiqueta Env ou que não tenha a etiqueta Env . Os recursos correspondentes têm a etiqueta Env definida para o valor dos grupos de recursos principais, mesmo que a etiqueta já exista no recurso, mas com um valor diferente.

Atribuir a iniciativa e remediar recursos

Assim que as políticas de etiqueta acima forem criadas, associe-as a uma única iniciativa para governação de etiquetas e atribua-as a um grupo de gestão ou subscrição. A iniciativa e as políticas incluídas avaliam a conformidade dos recursos existentes e alteram os pedidos de recursos novos ou atualizados que correspondam à propriedade if na regra de política. No entanto, a política não atualiza automaticamente os recursos não conformes existentes com as alterações de etiquetas definidas.

Tal como implementar políticasIfNotExists , a política Modificar utiliza tarefas de remediação para alterar recursos não conformes existentes. Siga as instruções sobre Como remediar recursos para identificar os recursos modificados não conformes e corrigir as etiquetas para a taxonomia definida.

Limpar os recursos

Se tiver terminado de trabalhar com recursos deste tutorial, utilize os seguintes passos para eliminar qualquer uma das atribuições ou definições criadas acima:

  1. Selecione Definições (ou Atribuições se estiver a tentar eliminar uma atribuição) em Criação no lado esquerdo da página Azure Policy.

  2. Procure a nova definição de iniciativa ou de política (ou atribuição) que acabou de remover.

  3. Clique com o botão direito do rato na linha ou selecione as reticências no fim da definição (ou atribuição) e selecione Eliminar definição (ou Eliminar atribuição).

Revisão

Neste tutorial, ficou a conhecer as seguintes tarefas:

  • Identificou os seus requisitos comerciais
  • Mapeou cada requisito para uma definição de política
  • Agrupou as políticas de etiqueta numa iniciativa

Passos seguintes

Para saber mais sobre as estruturas de definições de política, veja este artigo: