Effetto Modify delle definizioni di Criteri di Azure
L'effetto modify
viene usato per aggiungere, aggiornare o rimuovere proprietà o tag in una sottoscrizione o in una risorsa durante la creazione o l'aggiornamento. Un esempio comune è l'aggiornamento di tag per le risorse come costCenter. È possibile correggere le risorse non conformi esistenti con un'attività di correzione. Una regola Modify singola può avere un numero qualsiasi di operazioni. Le assegnazioni dei criteri con effetto impostato come Modify richiedono un'identità gestita per eseguire la correzione.
L'effetto modify
supporta le operazioni seguenti:
- Aggiungere, sostituire o rimuovere i tag delle risorse. Per i tag, un criterio Modify deve sempre avere l'opzione modalità impostata su
indexed
, a meno che la risorsa di destinazione non sia un gruppo di risorse. - Aggiungere o sostituire il valore del tipo di identità gestita (
identity.type
) delle macchine virtuali e dei set di scalabilità di macchine virtuali. È possibile modificare soloidentity.type
per le macchine virtuali o i set di scalabilità di macchine virtuali. - Aggiungere o sostituire i valori di determinati alias.
- Usare
Get-AzPolicyAlias | Select-Object -ExpandProperty 'Aliases' | Where-Object { $_.DefaultMetadata.Attributes -eq 'Modifiable' }
in Azure PowerShell 4.6.0 o versione successiva per ottenere un elenco di alias che possono essere usati conmodify
.
- Usare
Importante
Se si gestiscono i tag, è consigliabile usare Modify anziché Append in quanto Modify fornisce più tipi di operazione e la possibilità di correggere le risorse esistenti. Tuttavia, l'opzione Append è consigliata se non è possibile creare un'identità gestita o Modify non supporta ancora l'alias per la proprietà della risorsa.
Valutazione di Modify
Modify viene valutato prima che la richiesta venga elaborata da un provider di risorse durante la creazione o l'aggiornamento di una risorsa. Le operazioni modify
vengono applicate al contenuto della richiesta quando viene soddisfatta la condizione if
della regola dei criteri. Ogni operazione modify
può specificare una condizione che determina quando viene applicata. Le operazioni con valutazioni delle condizioni false vengono ignorate.
Quando si specifica un alias, vengono eseguiti altri controlli per assicurarsi che l'operazione modify
non modifichi il contenuto della richiesta così da impedire al provider di risorse di rifiutarlo:
- La proprietà a cui è mappato l'alias è contrassegnata come modificabile nella versione dell'API della richiesta.
- Il tipo di token nell'operazione
modify
corrisponde al tipo di token previsto per la proprietà nella versione dell'API della richiesta.
Se uno di questi controlli ha esito negativo, la valutazione dei criteri esegue il fallback a conflictEffect
specificato.
Importante
È consigliabile che le definizioni Modify che includono alias che usano l'effetto conflict audit per evitare che le richieste non riuscite usino le versioni API in cui la proprietà mappata non è modificabile. Se lo stesso alias si comporta in modo diverso tra le versioni dell'API, è possibile usare le operazioni di modifica condizionale per determinare l'operazione modify
usata per ogni versione dell'API.
Quando una definizione dei criteri che usa l'effetto modify
viene eseguita come parte di un ciclo di valutazione, non apporta modifiche alle risorse già esistenti. Al contrario, contrassegna qualsiasi risorsa che soddisfi la condizione if
come non conforme.
Proprietà Modify
La proprietà details
dell'effetto modify
include tutte le sottoproprietà che definiscono le autorizzazioni necessarie per la correzione e operations
viene usato per aggiungere, aggiornare o rimuovere i valori dei tag.
roleDefinitionIds
(obbligatorio)- Questa proprietà deve contenere una matrice di stringhe che corrispondono all'ID ruolo di controllo degli accessi in base al ruolo accessibile dalla sottoscrizione. Per altre informazioni, vedere Correzione: configurare la definizione dei criteri.
- Il ruolo definito deve includere tutte le operazioni concesse al ruolo Contributor.
conflictEffect
(facoltativo)- Determina quale definizione di criteri "vince" se più definizioni di criteri modificano la stessa proprietà o quando l'operazione
modify
non funziona sull'alias specificato.- Per le risorse nuove o aggiornate, la definizione dei criteri con deny ha la precedenza. Le definizioni dei criteri con audit ignorano tutte le
operations
. Se più definizioni di criteri hanno l'effetto deny, la richiesta viene negata come conflitto. Se tutte le definizioni dei criteri hanno audit, non vengono elaborate nessuna delleoperations
delle definizioni dei criteri in conflitto. - Per le risorse esistenti, se più definizioni di criteri hanno l'effetto deny, lo stato di conformità è Conflict. Se una o meno definizioni di criteri hanno l'effetto deny, ogni assegnazione restituisce uno stato di non conforme.
- Per le risorse nuove o aggiornate, la definizione dei criteri con deny ha la precedenza. Le definizioni dei criteri con audit ignorano tutte le
- Valori disponibili: audit, deny, disabled.
- Il valore predefinito è deny.
- Determina quale definizione di criteri "vince" se più definizioni di criteri modificano la stessa proprietà o quando l'operazione
operations
(obbligatorio)- Una matrice di tutte le operazioni di tag da completare sulle risorse corrispondenti.
- Proprietà:
operation
(obbligatorio)- Definisce l'azione da intraprendere su una risorsa corrispondente. Le opzioni sono: addOrReplace, Add, Remove. Add si comporta in modo analogo all'effetto append.
field
(obbligatorio)- Il tag per aggiungere, sostituire o rimuovere. I nomi di tag devono rispettare la stessa convenzione di denominazione per altri campi.
value
(facoltativo)- Il valore su cui impostare i tag.
- Questa proprietà è obbligatoria se
operation
è addOrReplace o add.
condition
(facoltativo)- Stringa contenente un'espressione del linguaggio di Criteri di Azure con funzioni Criteri che restituisce true o false.
- Non supporta le funzioni dei criteri seguenti:
field()
,resourceGroup()
,subscription()
.
Modificare le operazioni
Le matrice di proprietà operations
consente di modificare numerosi tag in modi diversi da una singola definizione di criteri. Ogni operazione è costituita da proprietà operation
, field
e value
. operation
determina le operazioni che l'attività di correzione esegue sui tag, field
determina quale tag viene modificato e value
definisce la nuova impostazione per tale tag. L'esempio seguente apporta le modifiche seguenti ai tag:
- Imposta il tag
environment
su "Test", anche se esiste già con un valore diverso. - Rimuove il tag
TempResource
. - Imposta il tag
Dept
sul parametro dei criteri DeptName configurato nell'assegnazione dei criteri.
"details": {
...
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
},
{
"operation": "Remove",
"field": "tags['TempResource']",
},
{
"operation": "addOrReplace",
"field": "tags['Dept']",
"value": "[parameters('DeptName')]"
}
]
}
La proprietà operation
dispone delle opzioni seguenti:
Operazione | Descrizione |
---|---|
addOrReplace |
Aggiunge la proprietà o il tag definito e il valore alla risorsa, anche se la proprietà o il tag esiste già con un valore diverso. |
add |
Aggiunge la proprietà o il tag e il valore definiti alla risorsa. |
remove |
Rimuove la proprietà o il tag definito dalla risorsa. |
Esempi di Modify
Esempio 1: aggiungere il tag environment
e sostituire i tag environment
esistenti con "Test":
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
}
]
}
}
Esempio 2: rimuovere il tag env
e aggiungere il tag environment
o sostituire i tag environment
esistenti con un valore con parametri:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"conflictEffect": "deny",
"operations": [
{
"operation": "Remove",
"field": "tags['env']"
},
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "[parameters('tagValue')]"
}
]
}
}
Esempio 3: assicurarsi che un account di archiviazione non consenta l'accesso pubblico al BLOB, l'operazione modify
viene applicata solo quando si valutano le richieste con versione api successiva o uguale a 2019-04-01
:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab"
],
"conflictEffect": "audit",
"operations": [
{
"condition": "[greaterOrEquals(requestContext().apiVersion, '2019-04-01')]",
"operation": "addOrReplace",
"field": "Microsoft.Storage/storageAccounts/allowBlobPublicAccess",
"value": false
}
]
}
}
Passaggi successivi
- Vedere gli esempi in Esempi di Criteri di Azure.
- Vedere la struttura delle definizioni di Criteri di Azure.
- Vedere come creare criteri a livello di codice.
- Leggere le informazioni su come ottenere dati sulla conformità.
- Informazioni su come correggere le risorse non conformi.
- Rivedere Gruppi di gestione di Azure.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per