Struttura di esenzione di Criteri di Azure
Le esenzioni di Criteri di Azure sono usate per esentare una gerarchia di risorse o una singola risorsa dalla valutazione delle iniziative o delle definizioni. Le risorse esentate vengono conteggiate per la conformità complessiva, ma non possono essere valutate o hanno una rinuncia temporanea. Per altre informazioni, vedere Informazioni sull'applicabilità in Criteri di Azure. Le esenzioni di Criteri di Azure funzionano anche con le modalità di Resource Manager seguenti:Microsoft.Kubernetes.Data
, Microsoft.KeyVault.Data
e Microsoft.Network.Data
.
Si usa JavaScript Object Notation (JSON) per creare un'esenzione dei criteri. La definizione dei criteri contiene gli elementi per:
- nome visualizzato
- description
- metadata
- assegnazione di criteri
- definizioni di criteri all'interno di un'iniziativa
- categoria di esenzione
- expiration
- selettori di risorse
- convalida dell'ambito di assegnazione
Un'esenzione dei criteri viene creata come oggetto figlio nella gerarchia di risorse o singola risorsa a cui è stata concessa l'esenzione. Non è possibile creare esenzioni a livello di componente in modalità provider di risorse. Se la risorsa padre a cui viene applicata l'esenzione viene rimossa, viene rimossa anche l'esenzione.
Ad esempio, il codice JSON seguente mostra un'esenzione dei criteri nella categoria di rinuncia di una risorsa a un'assegnazione di iniziativa denominata resourceShouldBeCompliantInit
. La risorsa è esente da solo due definizioni di criteri nell'iniziativa, la definizione dei criteri personalizzata customOrgPolicy
( policyDefinitionReferenceId
: requiredTags
) e la definizione dei criteri predefinita Percorsi consentiti ( 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 visualizzato e descrizione
Usare displayName
e description
per identificare l'esenzione dei criteri e fornire il contesto per il relativo uso con la risorsa specifica. displayName
ha una lunghezza massima di 128 caratteri e description
una lunghezza massima di 512 caratteri.
Metadati UFX
La proprietà metadata
consente di creare qualsiasi proprietà figlio necessaria per archiviare le informazioni pertinenti. Nell'esempio le proprietà requestedBy
, approvedBy
, approvedOn
e ticketRef
contengono i valori dei clienti per fornire informazioni su chi ha richiesto l'esenzione, chi l'ha approvata e quando, nonché un ticket di rilevamento interno per la richiesta. Queste proprietà metadata
sono esempi, ma non sono necessarie e metadata
non si limita a queste proprietà figlio.
ID assegnazione criteri
Questo campo deve essere il nome completo del percorso di un'assegnazione di criteri o di un'assegnazione di iniziativa. policyAssignmentId
è una stringa e non una matrice. Questa proprietà definisce l'assegnazione della gerarchia di risorse padre o della singola risorsa esentata.
ID definizione criteri
Se policyAssignmentId
è per un'assegnazione di iniziativa, la proprietà policyDefinitionReferenceId
potrebbe essere usata per specificare la definizione di criteri nell'iniziativa per cui la risorsa oggetto ha un'esenzione. Poiché la risorsa potrebbe essere esentata da una o più definizioni di criteri incluse, questa proprietà è una matrice. I valori devono corrispondere ai valori nella definizione dell'iniziativa nei campi policyDefinitions.policyDefinitionReferenceId
.
Categoria di esenzione
Esistono due categorie di esenzione e vengono usate per raggruppare le esenzioni:
- Mitigato: l'esenzione è concessa perché la finalità del criterio è soddisfatta attraverso un altro metodo.
- Deroga: l'esenzione è concessa perché lo stato di non conformità della risorsa è temporaneamente accettato. Un altro motivo per usare questa categoria è dato da risorse o gerarchie di risorse che devono essere escluse da una o più definizioni in un'iniziativa, ma non dall'intera iniziativa.
Scadenza
Per impostare quando una gerarchia di risorse o una singola risorsa non è più esente da un'assegnazione, impostare la proprietà expiresOn
. Questa proprietà facoltativa deve essere nel formato yyyy-MM-ddTHH:mm:ss.fffffffZ
DateTime ISO universale 8601.
Nota
Le esenzioni dei criteri non vengono eliminate quando viene raggiunta la data expiresOn
. L'oggetto viene mantenuto per la conservazione dei record, ma l'esenzione non viene più rispettata.
Selettori di risorse
Le esenzioni supportano una proprietà resourceSelectors
facoltativa che funziona allo stesso modo nelle esenzioni delle assegnazioni. La proprietà consente l'implementazione graduale o il rollback di un'esenzione per determinati subset di risorse in modo controllato in base al tipo di risorsa, alla posizione della risorsa o al fatto che la risorsa abbia una posizione. Altre informazioni su come usare i selettori di risorse sono disponibili nella struttura di assegnazione. Il codice JSON seguente è un'esenzione di esempio che usa selettori di risorse. In questo esempio, solo le risorse in westcentralus
sono esenti dall'assegnazione dei criteri:
{
"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"
}
Le aree possono essere aggiunte o rimosse dall'elenco resourceLocation
nell'esempio. I selettori di risorse consentono una maggiore flessibilità in merito a dove e come sia possibile creare e gestire le esenzioni.
Convalida dell'ambito di assegnazione (anteprima)
Nella maggior parte degli scenari, l'ambito di esenzione viene convalidato per assicurarsi che si trovi nell'ambito dell'assegnazione dei criteri. La proprietà facoltativa assignmentScopeValidation
può consentire a un'esenzione di ignorare questa convalida e di essere creata all'esterno dell'ambito di assegnazione. Questa convalida è destinata a situazioni in cui una sottoscrizione deve essere spostata da un gruppo di gestione (MG) a un altro, ma lo spostamento verrebbe bloccato dai criteri a causa delle proprietà delle risorse all'interno della sottoscrizione. In questo scenario, è possibile creare un'esenzione per la sottoscrizione nel relativo MG corrente per esentare le risorse da un'assegnazione di criteri nel MG di destinazione. In questo modo, quando la sottoscrizione viene spostata nell'operatore di gestione di destinazione, l'operazione non viene bloccata perché le risorse sono già escluse dall'assegnazione dei criteri in questione. L'uso di questa proprietà è illustrato nell'esempio seguente:
{
"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"
}
I valori consentiti per assignmentScopeValidation
sono Default
e DoNotValidate
. Se non specificato, viene eseguito il processo di convalida predefinito.
Autorizzazioni necessarie
Le autorizzazioni di controllo degli accessi in base al ruolo di Azure necessarie per gestire gli oggetti di esenzione dei criteri si trovano nel gruppo di operazioni Microsoft.Authorization/policyExemptions
. I ruoli predefiniti Collaboratore criteri risorse e Amministratore di sicurezza dispongono delle autorizzazioni read
e write
e il ruolo con autorizzazioni di scrittura per i dati di Policy Insights (anteprima) dispone dell'autorizzazione read
.
Le esenzioni hanno misure di sicurezza aggiuntive a causa dell'effetto della concessione di un'esenzione. Oltre a richiedere l'operazione Microsoft.Authorization/policyExemptions/write
sulla gerarchia di risorse o sulla singola risorsa, l'autore di un'esenzione deve avere il verbo exempt/Action
per l'assegnazione di destinazione.
Creazione e gestione delle esenzioni
Le esenzioni sono consigliate per scenari con limiti di tempo o specifici in cui una risorsa o una gerarchia di risorse deve essere ancora monitorata e altrimenti valutata, ma esiste un motivo specifico per cui non deve essere valutata la conformità. Ad esempio, se un ambiente ha la definizione Storage accounts should disable public network access
predefinita (ID: b2982f36-99f2-4db5-8eff-283140c09693
) assegnata con effetto impostato su audit. Dopo la valutazione della conformità, la risorsa StorageAcc1
non è conforme, ma StorageAcc1
deve avere l'accesso alla rete pubblica abilitato per scopi aziendali. In quel momento, deve essere inviata una richiesta per creare una risorsa di esenzione destinata a StorageAcc1
. Dopo aver creato l'esenzione, StorageAcc1
viene visualizzato come esente nella verifica della conformità.
Rivedere regolarmente le esenzioni per assicurarsi che tutti gli elementi idonei siano adeguatamente esentati e che siano rimossi tempestivamente tutti gli elementi che non sono idonei per l'esenzione. In quel momento, è possibile eliminare anche le risorse di esenzione scadute.
Passaggi successivi
- Informazioni sulle query di Azure Resource Graph sulle esenzioni.
- Informazioni sulla differenza tra esclusioni ed esenzioni.
- Esaminare il tipo di risorsa Microsoft.Authorization policyExemptions.
- Leggere le informazioni su come ottenere dati sulla conformità.
- Informazioni su come correggere le risorse non conformi.