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.Data e 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/ExemptRG/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",
        "policyDefinitionReferenceIds": [
            "requiredTags",
            "allowedLocations"
        ],
        "exemptionCategory": "waiver",
        "expiresOn": "2020-12-31T23:59:00.0000000Z",
        "assignmentScopeValidation": "Default"
    }
}

Nome a apresentar e descrição

Use 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 descrição um comprimento máximo de 512 caracteres.

Metadados

A propriedade de metadados permite criar qualquer propriedade filho necessária para armazenar informações relevantes. No exemplo, as 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, além de um tíquete de rastreamento interno para a solicitação. Essas propriedades de metadados são exemplos, mas não são necessárias e os metadados não estão limitados 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. 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 para policyAssignmentId uma atribuição de iniciativa, a propriedade policyDefinitionReferenceIds pode ser usada para especificar quais definições 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:

  • Atenuada: A isenção é concedida porque a intenção da apólice é 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 é para uma hierarquia de recursos ou recursos que deve ser excluída de uma ou mais definições em uma iniciativa, mas não deve ser excluída 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 propriedade expiresOn . 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 resourceSelectorsopcional. Essa propriedade funciona da mesma forma em isenções e em atribuições, permitindo 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. Aqui está um exemplo de isenção JSON, que usa seletores de recursos. Neste exemplo, apenas os recursos em westcentralus serão isentos da atribuição de política:

{
    "properties": {
        "policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
        "policyDefinitionReferenceIds": [
            "limitSku", "limitType"
        ],
        "exemptionCategory": "Waiver",
        "resourceSelectors": [
            {
                "name": "TemporaryMitigation",
                "selectors": [
                    {
                        "kind": "resourceLocation",
                        "in": [ "westcentralus" ]
                    }
                ]
            }
        ]
    },
    "systemData": { ... },
    "id": "/subscriptions/{subId}/resourceGroups/demoCluster/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. Isso se destina 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 desta propriedade é ilustrado abaixo:

{
    "properties": {
        "policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgB}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
        "policyDefinitionReferenceIds": [
            "limitSku", "limitType"
        ],
        "exemptionCategory": "Waiver",
        "assignmentScopeValidation": "DoNotValidate",
    },
    "systemData": { ... },
    "id": "/subscriptions/{subIdA}/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 ocorrerá.

Permissões obrigatórias

As permissões do RBAC do Azure necessárias para gerenciar objetos de isenção de Política estão no grupo de Microsoft.Authorization/policyExemptions 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 suplementares devido ao impacto 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 é compatível, mas o StorageAcc1 deve ter o acesso à rede pública habilitado para fins comerciais. Nesse momento, uma solicitação deve ser enviada para criar um recurso de isenção direcionado ao StorageAcc1. Assim que a isenção for criada, o StorageAcc1 será mostrado como isento na revisão de conformidade.

Reveja regularmente as suas isenções para garantir que todos os itens elegíveis estão devidamente isentos e remova imediatamente todos os que já não se qualificam para isenção. Nessa altura, os recursos de isenção que expiraram também podiam ser suprimidos.

Próximos passos