Estrutura de isenção do Azure Policy
O recurso de isenção do Azure Policy é usado para isentar uma hierarquia de recursos ou um recurso individual da avaliação de iniciativas ou definições. Os recursos isentos são levados em conta para a conformidade geral, mas não podem ser avaliados ou têm uma renúncia temporária. Para obter mais informações, consulte Entender a aplicabilidade no Azure Policy. As isenções do Azure Policy também funcionam com os seguintes modos do Resource Manager: Microsoft.Kubernetes.Data
, Microsoft.KeyVault.Data
e Microsoft.Network.Data
.
Você usa JSON (JavaScript Object Notation) para criar uma isenção de política. A isenção de política contém elementos para:
- nome de exibição
- descrição
- metadados
- atribuição de política
- definições de política em uma iniciativa
- categoria da isenção
- expiration
- seletores de recurso
- validação de escopo de atribuição
Uma isenção de política é criada como um objeto filho na hierarquia de recursos ou o recurso individual concede a isenção. As isenções não podem ser criadas no nível do componente do modo de Provedor de recursos. Se o recurso pai ao qual a isenção se aplica for removido, 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 é isento de apenas duas das definições de política na iniciativa: a definição de política personalizada customOrgPolicy
(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 de exibição 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 description
um comprimento máximo de 512 caracteres.
Metadados
A propriedade metadata
permite criar qualquer propriedade filho necessária para armazenar informações relevantes. No exemplo acima, as propriedades requestedBy
, approvedBy
, approvedOn
e ticketRef
contêm valores de cliente para fornecer informações sobre quem solicitou e quem aprovou a isenção, quando isso aconteceu, além de um tíquete de acompanhamento interno da solicitação. Essas propriedades metadata
são exemplos, mas não são necessárias, e metadata
não está limitado a essas propriedades filho.
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. 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á isento.
ID de definição de política
Se policyAssignmentId
destinar-se a uma atribuição de iniciativa, a propriedade policyDefinitionReferenceId
poderá ser usada para especificar de qual definição de política na iniciativa o recurso em questão está isento. Como o recurso pode estar isento de uma ou mais definições de política incluídas, essa propriedade é uma matriz. Os valores devem corresponder aos contidos na definição de iniciativa nos campos policyDefinitions.policyDefinitionReferenceId
.
categoria da isenção
Há duas categorias de isenção que podem ser usadas para agrupar isenções:
- Mitigado: a isenção é concedida porque a intenção da política é atendida por outro método.
- Renúncia: a isenção é concedida porque o estado sem conformidade do recurso é aceito temporariamente. Essa categoria também é útil para excluir um recurso ou uma hierarquia de recursos de uma ou mais definições em uma iniciativa, mas não 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, configure a propriedade expiresOn
. Essa propriedade opcional deve estar no formato de data/hora universal ISO 8601 yyyy-MM-ddTHH:mm:ss.fffffffZ
.
Observação
As isenções de política não são excluídas quando a data expiresOn
é atingida. O objeto é preservado para manutenção de registro, mas a isenção não é mais atendida.
Seletores de recurso
As isenções dão suporte a uma propriedade resourceSelectors
opcional que funciona da mesma forma em isenções que em atribuições. Essa propriedade permite a distribuição gradual ou a reversão de uma isenção para determinados subconjuntos de recursos de maneira 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 seguinte JSON é um exemplo de isenção que usa seletores de recursos. Neste exemplo, somente recursos em westcentralus
estarã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 lista resourceLocation
no exemplo. Os seletores de recursos permitem maior flexibilidade de onde e como as isenções podem ser criadas e gerenciadas.
Validação de escopo de atribuição (versão prévia)
Na maioria dos cenários, o escopo de isenção é validado para garantir que ele esteja no escopo de atribuição da política ou abaixo dele. A propriedade assignmentScopeValidation
opcional pode permitir que uma isenção ignore essa validação e seja criada fora do escopo de atribuição. Essa validação se destina a situações em que uma assinatura precisa ser movida de um MG (grupo de gerenciamento) para outro, mas a movimentação seria impedida pela política devido às propriedades dos recursos dentro da assinatura. Nesse cenário, uma isenção poderia ser criada para que a assinatura em seu MG atual isentasse seus recursos de uma atribuição de política no MG de destino. Dessa forma, quando a assinatura for movida para o MG de destino, a operação não será impedida porque os recursos já estarã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 ocorrerá.
Permissões necessárias
As permissões do RBAC (controle de acesso baseado em função) do Azure necessárias para gerenciar objetos de isenção de política estão no grupo de operações Microsoft.Authorization/policyExemptions
. As funções internas de Colaborador de política de recurso e Administrador de segurança têm as permissões read
e write
, enquanto a função de Gravador de dados do Policy Insights (versão prévia) tem a permissão read
.
As isenções têm medidas adicionais de segurança por causa do efeito da concessão de uma isenção. Além de precisar da operação Microsoft.Authorization/policyExemptions/write
na hierarquia de recursos ou no recurso individual, o criador de uma isenção deve ter o verbo exempt/Action
na atribuição de destino.
Criação e gerenciamento de isenção
As isenções são recomendadas para cenários com limite de tempo ou mais específicos em que um recurso ou hierarquia de recursos ainda deve ser rastreado e, de outra forma, seria avaliado, mas há um motivo específico para ele não ser avaliado quanto à conformidade. Por exemplo, se um ambiente tiver a definição interna Storage accounts should disable public network access
(ID: b2982f36-99f2-4db5-8eff-283140c09693
) atribuída com efeito definido como 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 finalidades comerciais. Nesse momento, uma solicitação deve ser enviada para criar um recurso de isenção destinado a StorageAcc1
. Depois que a isenção for criada, StorageAcc1
será mostrado como isento na revisão de conformidade.
Revise regularmente as isenções para garantir que todos os itens qualificados estejam devidamente isentos e remova rapidamente qualquer um que não esteja mais qualificado para ser isento. Nesse momento, os recursos de isenção que expiraram também podem ser excluídos.
Próximas etapas
- Saiba mais sobre as Consultas sobre isenções do Azure Resource Graph.
- Saiba mais sobre a diferença entre exclusões e isenções.
- Consulte o Tipo de recurso Microsoft.Authorization policyExemptions.
- Saiba como obter dados de conformidade.
- Saiba como corrigir recursos fora de conformidade.