Azure Policy enrollment structure (Preview)

Os registros do Azure Policy adicionam hierarquias selecionadas de recursos ou recursos individuais ao caminho de aplicação para uma atribuição de política configurada com o modo de aplicação de inscrição. Recursos inscritos são avaliados pela tarefa e têm o efeito da política aplicado durante a criação ou atualização dos recursos. Recursos que estão no escopo da tarefa, mas não estão inscritos, ainda têm registros de conformidade gerados, mas o efeito da política não é aplicado. Essa abordagem é útil quando você quer começar com um conjunto limitado de escopos, validar o efeito da aplicação e então adicionar gradualmente mais subescopos à tarefa.

Você usa Notação de Objetos JavaScript (JSON) para criar uma inscrição de política. A inscrição na apólice contém elementos para:

Um registro de política é criado como um objeto filho na hierarquia de recursos ou no recurso individual que está inscrito. Uma inscrição pode ser criada no escopo ou acima do escopo do recurso que deve ser inscrito. Se a atribuição para a inscrição for para uma iniciativa, a inscrição também pode referenciar um subconjunto de definições de políticas na iniciativa.

Por exemplo, o JSON a seguir mostra uma inscrição de política para uma assinatura de uma atribuição chamada resourceShouldBeCompliantInit. A inscrição se aplica a duas definições de políticas na iniciativa, e requiredTagsallowedLocations IDs de referência de definição de política:

{
  "id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyEnrollments/resourceShouldBeCompliant",
  "apiVersion": "2025-02-01-preview",
  "name": "resourceShouldBeCompliant",
  "type": "Microsoft.Authorization/policyEnrollments",
  "properties": {
    "displayName": "Enroll subscription in resource compliance policy",
    "description": "Enrolls the subscription into the resource compliance initiative assignment.",
    "policyAssignmentId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyAssignments/resourceShouldBeCompliantInit",
    "policyDefinitionReferenceIds": [
      "requiredTags",
      "allowedLocations"
    ],
    "assignmentScopeValidation": "Default"
  }
}

Crie uma apólice de registro

Você pode criar e gerenciar inscrições de políticas usando CLI do Azure, templates ARM, Bicep ou Terraform com o provedor AzAPI. A designação de política que você menciona já deve existir e deve ser configurada com o modo de aplicação de inscrição.

Nome de exibição e descrição

Você usa displayName e description identifica a inscrição na política e fornece contexto para seu uso com o recurso ou escopo específico. displayName tem um comprimento máximo de 128 caracteres e description um comprimento máximo de 512 caracteres.

ID de atribuição de política

Este campo deve conter o nome completo do caminho de uma atribuição de política ou de iniciativa. A atribuição referenciada deve usar Enroll o modo de aplicação para criar ou atualizar o registro da política. O policyAssignmentId é uma cadeia de caracteres e não uma matriz. Essa propriedade define qual atribuição aplica a aplicação à hierarquia de recursos pai ou recurso individual.

IDs de referência de definição de políticas

Se for policyAssignmentId para uma atribuição de iniciativa, a policyDefinitionReferenceIds propriedade pode ser usada para especificar a quais definições de política na iniciativa a inscrição se aplica. Como o recurso pode estar inscrito em uma ou mais definições de políticas incluídas, essa propriedade é um array. Os valores devem corresponder aos contidos na definição de iniciativa nos campos policyDefinitions.policyDefinitionReferenceId.

Seletores de recurso

As inscrições suportam uma propriedade resourceSelectorsopcional. A propriedade permite a implementação gradual ou o rollback de um registro para certos subconjuntos de recursos de forma controlada, com base no tipo de recurso, localização do recurso ou se o recurso possui uma localização. Mais detalhes sobre como usar seletores de recursos podem ser encontrados na estrutura de atribuição. O JSON a seguir é um exemplo de inscrição que utiliza seletores de recursos. Neste exemplo, apenas recursos em eastus e westus são inscritos na atribuição de política:

{
  "properties": {
    "policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/ResourceLimit",
    "resourceSelectors": [
      {
        "name": "SDPRegions",
        "selectors": [
          {
            "kind": "resourceLocation",
            "in": [
              "eastus",
              "westus"
            ]
          }
        ]
      }
    ]
  },
  "systemData": { ...
  },
  "id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyEnrollments/ResourceLimitEnrollment",
  "type": "Microsoft.Authorization/policyEnrollments",
  "name": "ResourceLimitEnrollment"
}

Os seguintes seletores kinds de recursos são suportados no objeto de inscrições de políticas:

  • resourceLocation: Essa propriedade é usada para selecionar recursos com base na localização. Não pode ser usado no mesmo seletor de recursos que resourceWithoutLocation.
  • resourceType: essa propriedade é usada para selecionar os recursos de acordo com o tipo.
  • resourceWithoutLocation: esta propriedade é usada para selecionar os recursos no nível da assinatura que não têm um local. No momento, há suporte somente para subscriptionLevelResources. Não pode ser usado no mesmo seletor de recursos que resourceLocation.
  • in: a lista de valores permitidos para o kind especificado. Não pode ser usado com notIn. Pode conter até 50 valores.
  • notIn: a lista de valores não permitidos para o kind especificado. Não pode ser usado com in. Pode conter até 50 valores.

Um seletor de recursos pode conter vários selectors. Para ser aplicável a um seletor de recursos, um recurso deve atender aos requisitos especificados por todos os seletores. Além disso, até 10 resourceSelectors podem ser especificados em uma única matrícula. Recursos dentro do escopo são registrados quando satisfazem qualquer um desses seletores de recursos.

Validação do escopo da atribuição

Determina se permitimos a criação de uma inscrição para uma tarefa em um escopo diferente. O uso dessa propriedade é mostrado no exemplo a seguir:

{
  "properties": {
    "policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgName}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
    "policyDefinitionReferenceIds": [
      "limitSku",
      "limitType"
    ],
    "assignmentScopeValidation": "DoNotValidate"
  },
  "systemData": { ...
  },
  "id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyEnrollments/DemoExpensiveVM",
  "type": "Microsoft.Authorization/policyEnrollments",
  "name": "DemoExpensiveVM"
}

Os valores permitidos para assignmentScopeValidation são Default e DoNotValidate. Se não for especificado, o processo de validação padrão ocorrerá.

Atualize uma matrícula

Atualmente, as inscrições de políticas só suportam a atualização das assignmentScopeValidation propriedades e resourceSelectors ao realizar uma PATCH operação.

{
  "properties": {
    "assignmentScopeValidation": "Default",
    "resourceSelectors": [
      {
        "name": "SDPRegions",
        "selectors": [
          {
            "kind": "resourceLocation",
            "in": [
              "eastus",
              "westus"
            ]
          }
        ]
      }
    ]
  }
}

Excluir um registro de política

Deletar uma apólice de cadastro remove esse recurso de inscrição. Deletar a inscrição não apaga a atribuição de política subjacente que a inscrição menciona, e continuará sendo atribuída no escopo em que foi inscrita.

Liste inscrições na apólice

Quando você lista as inscrições de políticas em um escopo, a resposta padrão inclui inscrições que se aplicam a qualquer parte desse escopo. A resposta pode incluir inscrições a partir de escopos pais e inscrições a partir de subscópios.

Use filtros de lista para controlar se a resposta inclui inscrições herdadas ou apenas as criadas no escopo solicitado.

Use atScope() quando quiser entender as inscrições efetivas para um escopo. Este filtro retorna inscrições na política no escopo solicitado e nos escopos dos pais.

az policy enrollment list \
  --scope "/subscriptions/{subscriptionId}" \
  --filter "atScope()"

Use atExactScope() quando quiser gerenciar apenas os recursos de inscrição criados diretamente no escopo solicitado.

az policy enrollment list \
  --scope "/subscriptions/{subscriptionId}" \
  --filter "atExactScope()"

Por exemplo, se uma assinatura tem três inscrições criadas no escopo da assinatura e quatro herdadas de um grupo de gestão dos pais, o atScope() retorna todas as sete inscrições. atExactScope() retorna apenas as três inscrições criadas no escopo da assinatura.

Filter Description
atScope() Política de devoluções, inscrições no escopo solicitado e escopo dos pais.
atExactScope() Inscrições na política de devoluções apenas no escopo solicitado.

Próximas Etapas