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:
- nome a apresentar
- descrição
- metadados
- Atribuição de políticas
- definições de políticas no âmbito de uma iniciativa
- Categoria de isenção
- expiração
- seletores de recursos
- Validação do escopo da atribuição
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.fffffffZ
Universal 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
- Saiba mais sobre as consultas do Azure Resource Graph sobre isenções.
- Saiba mais sobre a diferença entre exclusões e isenções.
- Analise o tipo de recurso Microsoft.Authorization policyExemptions.
- Saiba como obter dados de conformidade.
- Saiba como corrigir recursos não compatíveis.