Estrutura de isenção da Política do Azure

O recurso de isenções da Política do Azure é usado para isentar uma hierarquia de recursos ou um recurso individual da avaliação de iniciativas ou definições. Os recursos isentos contam para a conformidade geral, mas não podem ser avaliados ou ter uma dispensa temporária. Para obter mais informações, consulte Compreender a aplicabilidade na Política do Azure. As isenções da Política do Azure também funcionam com os seguintes modos do Gerenciador de Recursos: Microsoft.Kubernetes.Data, Microsoft.KeyVault.Datae Microsoft.Network.Data.

Deve utilizar o JavaScript Object Notation (JSON) para criar uma isenção de política. A isenção de política inclui os elementos para:

Uma isenção de política é criada como um objeto filho na hierarquia de recursos ou o recurso individual concedido a isenção. As isenções não podem ser criadas no nível do componente do modo Provedor de Recursos. Se o recurso principal ao qual a isenção se aplica for eliminado, a isenção também será removida.

Por exemplo, o JSON a seguir mostra uma isenção de política na categoria de renúncia de um recurso para uma atribuição de iniciativa chamada resourceShouldBeCompliantInit. O recurso está isento de apenas duas das definições de política na iniciativa, a customOrgPolicy definição de política personalizada ( policyDefinitionReferenceId: requiredTags) e a definição de política interna de locais permitidos ( policyDefinitionReferenceId : allowedLocations):

{
  "id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/resourceIsNotApplicable",
  "apiVersion": "2020-07-01-preview",
  "name": "resourceIsNotApplicable",
  "type": "Microsoft.Authorization/policyExemptions",
  "properties": {
    "displayName": "This resource is scheduled for deletion",
    "description": "This resources is planned to be deleted by end of quarter and has been granted a waiver to the policy.",
    "metadata": {
      "requestedBy": "Storage team",
      "approvedBy": "IA",
      "approvedOn": "2020-07-26T08:02:32.0000000Z",
      "ticketRef": "4baf214c-8d54-4646-be3f-eb6ec7b9bc4f"
    },
    "policyAssignmentId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyAssignments/resourceShouldBeCompliantInit",
    "policyDefinitionReferenceId": [
      "requiredTags",
      "allowedLocations"
    ],
    "exemptionCategory": "waiver",
    "expiresOn": "2020-12-31T23:59:00.0000000Z",
    "assignmentScopeValidation": "Default"
  }
}

Nome a apresentar e descrição

Você usa displayName e description para identificar a isenção de política e fornecer contexto para seu uso com o recurso específico. displayName tem um comprimento máximo de 128 caracteres e description um comprimento máximo de 512 caracteres.

Metadados

A metadata propriedade permite criar qualquer propriedade filho necessária para armazenar informações relevantes. No exemplo, propriedades requestedBy, approvedBy, approvedOn, e ticketRef contém valores de clientes para fornecer informações sobre quem solicitou a isenção, quem a aprovou e quando, e um tíquete de rastreamento interno para a solicitação. Essas metadata propriedades são exemplos, mas não são necessárias e metadata não estão limitadas a essas propriedades filhas.

ID de atribuição de política

Este campo tem de ser o nome do caminho completo de uma atribuição de política ou de uma atribuição de iniciativa. O policyAssignmentId é uma cadeia de caracteres e não uma matriz. Essa propriedade define de qual atribuição a hierarquia de recursos pai ou o recurso individual está isenta .

IDs de definição de política

Se for policyAssignmentId para uma atribuição de iniciativa, a policyDefinitionReferenceId propriedade pode ser usada para especificar qual definição de política na iniciativa o recurso sujeito tem uma isenção. Como o recurso pode ser isento de uma ou mais definições de política incluídas, essa propriedade é uma matriz. Os valores devem corresponder aos valores na definição da iniciativa nos policyDefinitions.policyDefinitionReferenceId campos.

Categoria de isenção

Existem duas categorias de isenção e são utilizadas para agrupar isenções:

  • Mitigada: a isenção é concedida porque a intenção da política é cumprida através de outro método.
  • Renúncia: A isenção é concedida porque o estado de não conformidade do recurso é temporariamente aceito. Outra razão para usar essa categoria é excluir um recurso ou hierarquia de recursos de uma ou mais definições em uma iniciativa, mas não deve ser excluído de toda a iniciativa.

Expiração

Para definir quando uma hierarquia de recursos ou um recurso individual não está mais isento de uma atribuição, defina a expiresOn propriedade. Esta propriedade opcional deve estar no formato yyyy-MM-ddTHH:mm:ss.fffffffZUniversal ISO 8601 DateTime.

Nota

As isenções da política não são excluídas quando a expiresOn data é atingida. O objeto é preservado para manutenção de registros, mas a isenção não é mais honrada.

Seletores de recursos

As isenções apoiam uma propriedade resourceSelectors opcional que funciona da mesma forma nas isenções e nas cessões. A propriedade permite a implantação gradual ou a reversão de uma isenção para determinados subconjuntos de recursos de forma controlada com base no tipo de recurso, no local do recurso ou se o recurso tem um local. Mais detalhes sobre como usar seletores de recursos podem ser encontrados na estrutura de atribuição. O JSON a seguir é um exemplo de isenção que usa seletores de recursos. Neste exemplo, apenas os recursos em westcentralus estão isentos da atribuição de política:

{
  "properties": {
    "policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
    "policyDefinitionReferenceId": [
      "limitSku",
      "limitType"
    ],
    "exemptionCategory": "Waiver",
    "resourceSelectors": [
      {
        "name": "TemporaryMitigation",
        "selectors": [
          {
            "kind": "resourceLocation",
            "in": [
              "westcentralus"
            ]
          }
        ]
      }
    ]
  },
  "systemData": { ...
  },
  "id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
  "type": "Microsoft.Authorization/policyExemptions",
  "name": "DemoExpensiveVM"
}

As regiões podem ser adicionadas ou removidas da resourceLocation lista no exemplo. Os seletores de recursos permitem uma maior flexibilidade de onde e como as isenções podem ser criadas e gerenciadas.

Validação do escopo da atribuição (visualização)

Na maioria dos cenários, o escopo de isenção é validado para garantir que esteja no escopo de atribuição de política ou sob ele. A propriedade opcional assignmentScopeValidation pode permitir que uma isenção ignore essa validação e seja criada fora do escopo da atribuição. Essa validação destina-se a situações em que uma assinatura precisa ser movida de um grupo de gerenciamento (MG) para outro, mas a mudança seria bloqueada pela política devido às propriedades dos recursos dentro da assinatura. Nesse cenário, uma isenção poderia ser criada para a assinatura em seu MG atual para isentar seus recursos de uma atribuição de política no MG de destino. Dessa forma, quando a assinatura é movida para o MG de destino, a operação não é bloqueada porque os recursos já estão isentos da atribuição de política em questão. O uso dessa propriedade é mostrado no exemplo a seguir:

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

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

Permissões obrigatórias

As permissões de controle de acesso baseado em função do Azure (Azure RBAC) necessárias para gerenciar objetos de isenção de Política estão no Microsoft.Authorization/policyExemptions grupo de operações. As funções internas Colaborador da Política de Recursos e Administrador de Segurança têm as read permissões e write e o Gravador de Dados do Policy Insights (Visualização) tem a read permissão.

As isenções têm medidas de segurança adicionais devido ao efeito da concessão de uma isenção. Além de exigir a Microsoft.Authorization/policyExemptions/write operação na hierarquia de recursos ou recurso individual, o criador de uma isenção deve ter o verbo exempt/Action na atribuição de destino.

Criação e gestão de isenções

As isenções são recomendadas para cenários específicos ou com limite de tempo em que um recurso ou hierarquia de recursos ainda deve ser rastreado e seria avaliado, mas há um motivo específico pelo qual ele não deve ser avaliado quanto à conformidade. Por exemplo, se um ambiente tiver a definição Storage accounts should disable public network access interna (ID: b2982f36-99f2-4db5-8eff-283140c09693) atribuída com efeito definido para auditoria. Após a avaliação de conformidade, o recurso StorageAcc1 não está em conformidade, mas StorageAcc1 deve ter o acesso à rede pública habilitado para fins comerciais. Nesse momento, deve ser apresentado um pedido para criar um recurso de isenção destinado a StorageAcc1. Depois que a isenção é criada, StorageAcc1 é mostrada como isenta na revisão de conformidade.

Reveja regularmente suas isenções para garantir que todos os itens elegíveis sejam adequadamente isentos e remova imediatamente todos os que não se qualificam para isenção. Nesse momento, os recursos de isenção expirados também podem ser excluídos.

Próximos passos