struttura di definizione dell'iniziativa Criteri di Azure

Le iniziative consentono di raggruppare più definizioni di criteri correlati per semplificare le assegnazioni e la gestione e quindi di usare un gruppo come se fosse un unico elemento. È possibile ad esempio raggruppare tutte le definizioni di criteri relativi ai tag in una singola iniziativa. Invece di assegnare ciascun criterio singolarmente, si applica l'iniziativa.

Si usa JSON per creare una definizione di iniziativa dei criteri. La definizione dell'iniziativa di criteri contiene elementi per:

  • nome visualizzato
  • description
  • metadata
  • parameters
  • definizioni di criteri
  • gruppi di criteri (questa proprietà fa parte della funzionalità Conformità alle normative (anteprima)

L'esempio seguente illustra come creare un'iniziativa per la gestione di due tag: costCenter e productName. Usa due criteri predefiniti per applicare il valore di tag predefinito.

{
    "properties": {
        "displayName": "Billing Tags Policy",
        "policyType": "Custom",
        "description": "Specify cost Center tag and product name tag",
        "metadata": {
            "version": "1.0.0",
            "category": "Tags"
        },
        "parameters": {
            "costCenterValue": {
                "type": "String",
                "metadata": {
                    "description": "required value for Cost Center tag"
                },
                "defaultValue": "DefaultCostCenter"
            },
            "productNameValue": {
                "type": "String",
                "metadata": {
                    "description": "required value for product Name tag"
                },
                "defaultValue": "DefaultProduct"
            }
        },
        "policyDefinitions": [{
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
                "parameters": {
                    "tagName": {
                        "value": "costCenter"
                    },
                    "tagValue": {
                        "value": "[parameters('costCenterValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
                "parameters": {
                    "tagName": {
                        "value": "costCenter"
                    },
                    "tagValue": {
                        "value": "[parameters('costCenterValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
                "parameters": {
                    "tagName": {
                        "value": "productName"
                    },
                    "tagValue": {
                        "value": "[parameters('productNameValue')]"
                    }
                }
            },
            {
                "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
                "parameters": {
                    "tagName": {
                        "value": "productName"
                    },
                    "tagValue": {
                        "value": "[parameters('productNameValue')]"
                    }
                }
            }
        ]
    }
}

Criteri di Azure modelli e incorporati si trovano in Criteri di Azure esempi.

Metadati UFX

La proprietà facoltativa metadata archivia informazioni sulla definizione dell'iniziativa di criteri. I clienti possono definire qualsiasi proprietà e valori utili per l'organizzazione in metadata. Esistono tuttavia alcune proprietà comuni usate da Criteri di Azure e nelle funzionalità predefinite.

Proprietà comuni dei metadati

  • version (stringa): tiene traccia dei dettagli sulla versione del contenuto di una definizione di iniziativa di criteri.

  • category(stringa): determina in quale categoria nella portale di Azure viene visualizzata la definizione dei criteri.

    Nota

    Per un'iniziativa di conformità alle normative, deve category essere conformità alle normative.

  • preview (booleano): flag True o false per se la definizione dell'iniziativa dei criteri è in anteprima.

  • deprecated (booleano): flag True o false per se la definizione dell'iniziativa di criteri è stata contrassegnata come deprecata.

Nota

Il servizio Criteri di Azure usa le proprietà version, preview e deprecated per fornire il livello di modifica a una definizione o un'iniziativa di criteri predefinita e uno stato. Il formato di version è: {Major}.{Minor}.{Patch}. Gli stati specifici, ad esempio deprecato o anteprima, vengono aggiunti alla proprietà version o a un'altra proprietà come booleano. Per altre informazioni sul modo in cui Criteri di Azure versioni predefinite, vedere Controllo delle versioni predefinito.

Parametri

I parametri consentono di semplificare la gestione dei criteri, riducendone il numero di definizioni. Si considerino parametri come i campi di un modulo : name, address, city, state. Questi parametri rimangono sempre invariati, ma i loro valori cambiano a seconda dei dati immessi durante la compilazione del modulo da parte dei singoli utenti. I parametri funzionano allo stesso modo quando si creano iniziative di criteri. Includendo i parametri in una definizione di iniziativa di criteri, è possibile riutilizzare tale parametro nei criteri inclusi.

Nota

Una volta assegnata un'iniziativa, non è possibile modificare i parametri del livello di iniziativa. Per questo motivo, è consigliabile impostare un defaultValue quando si definisce il parametro.

Proprietà parametri

Un parametro ha le proprietà seguenti usate nella definizione dell'iniziativa di criteri:

  • name: nome del parametro. Usato dalla funzione di distribuzione parameters all'interno della regola dei criteri. Per altre informazioni, vedere Usare un valore di parametro.
  • type: determina se il parametro è una stringa, una matrice, un oggetto, un valore booleano, integer, float o datetime.
  • metadata: definisce le sottoproprietà usate principalmente dal portale di Azure per visualizzare informazioni descrittive:
    • description: (Facoltativo) Spiegazione dell'utilizzo del parametro. Può essere usata per fornire esempi di valori accettabili.
    • displayName: nome descrittivo visualizzato nel portale per il parametro .
    • strongType: (Facoltativo) Usato quando si assegna la definizione dei criteri tramite il portale. Fornisce un elenco con riconoscimento del contesto. Per altre informazioni, vedere strongType.
  • defaultValue: (Facoltativo) Imposta il valore del parametro in un'assegnazione se non viene specificato alcun valore.
  • allowedValues: (Facoltativo) Fornisce una matrice di valori accettati dal parametro durante l'assegnazione.

Ad esempio, è possibile definire una definizione di iniziativa di criteri per limitare le posizioni delle risorse nelle varie definizioni di criteri incluse. È possibile consentire un parametro per la definizione dell'iniziativa di criteriLocations. Il parametro è quindi disponibile per ogni definizione di criteri inclusa e definita durante l'assegnazione dell'iniziativa di criteri.

"parameters": {
    "init_allowedLocations": {
        "type": "array",
        "metadata": {
            "description": "The list of allowed locations for resources.",
            "displayName": "Allowed locations",
            "strongType": "location"
        },
        "defaultValue": [ "westus2" ],
        "allowedValues": [
            "eastus2",
            "westus2",
            "westus"
        ]
    }
}

Passaggio di un valore di parametro a una definizione di criteri

Si dichiarano i parametri dell'iniziativa passati a cui sono incluse le definizioni dei criteri nella matrice policyDefinitions della definizione dell'iniziativa. Anche se il nome del parametro può essere lo stesso, l'uso di nomi diversi nelle iniziative rispetto alle definizioni dei criteri semplifica la leggibilità del codice.

Ad esempio, il parametro dell'iniziativa init_allowedLocations definito in precedenza può essere passato a diverse definizioni di criteri incluse e ai relativi parametri, sql_locations e vm_locations, come illustrato di seguito:

"policyDefinitions": [
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
        "policyDefinitionReferenceId": "allowedLocationsSQL",
        "parameters": {
            "sql_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    },
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
        "policyDefinitionReferenceId": "allowedLocationsVMs",
        "parameters": {
            "vm_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    }
]

Questo esempio fa riferimento al parametro init_allowedLocations illustrato nelle proprietà dei parametri.

strongType

All'interno della metadata proprietà è possibile usare strongType per fornire un elenco di opzioni a selezione multipla all'interno del portale di Azure. strongType può essere un tipo di risorsa supportato o un valore consentito. Per determinare se un tipo di risorsa è valido per strongType, usare Get-AzResourceProvider.

Sono supportati alcuni tipi di risorse non restituiti da Get-AzResourceProvider . Questi tipi di risorse sono:

  • Microsoft.RecoveryServices/vaults/backupPolicies

I valori consentiti per il tipo non di risorsa per strongType sono:

  • location
  • resourceTypes
  • storageSkus
  • vmSKUs
  • existingResourceGroups

Definizioni dei criteri

La policyDefinitions parte della definizione dell'iniziativa è una matrice di cui sono incluse le definizioni di criteri esistenti nell'iniziativa. Come indicato in Passaggio di un valore di parametro a una definizione di criteri, questa proprietà è la posizione in cui i parametri dell'iniziativa vengono passati alla definizione dei criteri.

Proprietà di definizione dei criteri

Ogni elemento matrice che rappresenta una definizione di criteri ha le proprietà seguenti:

  • policyDefinitionId (stringa): ID della definizione di criteri personalizzata o predefinita da includere.
  • policyDefinitionReferenceId (stringa): nome breve per la definizione di criteri inclusa.
  • parameters: (Facoltativo) Coppie nome/valore per il passaggio di un parametro di iniziativa alla definizione di criteri inclusa come proprietà nella definizione di tale criterio. Per altre informazioni, vedere Parametri.
  • groupNames (matrice di stringhe): (facoltativo) Il gruppo di cui la definizione è membro. Per altre informazioni, vedere Gruppi di criteri.

Di seguito è riportato un esempio di che include due definizioni di policyDefinitions criteri incluse che sono ognuna passata allo stesso parametro dell'iniziativa:

"policyDefinitions": [
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
        "policyDefinitionReferenceId": "allowedLocationsSQL",
        "parameters": {
            "sql_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    },
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
        "policyDefinitionReferenceId": "allowedLocationsVMs",
        "parameters": {
            "vm_locations": {
                "value": "[parameters('init_allowedLocations')]"
            }
        }
    }
]

Gruppi di definizioni di criteri

Le definizioni di criteri in una definizione di iniziativa possono essere raggruppate e classificate. Criteri di AzureLa funzionalità Conformità alle normative (anteprima) usa questa proprietà per raggruppare le definizioni in domini di controllo e conformità. Queste informazioni sono definite nella policyDefinitionGroupsproprietà della matrice . Altri dettagli di raggruppamento sono disponibili in un oggetto policyMetadata creato da Microsoft. Per informazioni, vedere Oggetti metadati.

Parametri dei gruppi di definizioni di criteri

Ogni elemento della matrice in policyDefinitionGroups deve avere entrambe le proprietà seguenti:

  • name (string) [obbligatorio]: nome breve per il gruppo. In Conformità alle normative, il controllo . Il valore di questa proprietà viene utilizzato da groupNames in policyDefinitions.

  • category (string): la gerarchia a cui appartiene il gruppo. In Conformità alle normative il dominio di conformità del controllo.

  • displayName(stringa): nome descrittivo per il gruppo o il controllo. Usato dal portale.

  • description(stringa): descrizione del gruppo o del controllo.

  • additionalMetadataId(stringa): posizione dell'oggetto policyMetadata con dettagli aggiuntivi sul dominio di controllo e conformità.

    Nota

    I clienti possono puntare a un oggetto policyMetadata esistente. Tuttavia, questi oggetti sono di sola lettura e creati solo da Microsoft.

Un esempio della proprietà della policyDefinitionGroups definizione dell'iniziativa predefinita NIST è simile al seguente:

"policyDefinitionGroups": [
    {
        "name": "NIST_SP_800-53_R4_AC-1",
        "additionalMetadataId": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1"
    }
]

Oggetti metadati

Le funzionalità predefinite di conformità alle normative create da Microsoft includono informazioni aggiuntive su ogni controllo. Queste informazioni sono:

  • Visualizzato nella portale di Azure sulla panoramica di un controllo su un'iniziativa di conformità alle normative.
  • Disponibile tramite l'API REST. Vedere il Microsoft.PolicyInsights provider di risorse e il gruppo di operazioni policyMetadata.
  • Disponibile tramite l'interfaccia della riga di comando di Azure. Vedere il comando az policy metadata ( Az policy metadata ).

Importante

Gli oggetti metadati per la conformità alle normative sono di sola lettura e non possono essere creati dai clienti.

I metadati per un raggruppamento di criteri contengono le informazioni seguenti nel properties nodo:

  • metadataId: ID di controllo a cui si riferisce il raggruppamento.
  • category (obbligatorio): il dominio di conformità a cui appartiene il controllo .
  • title(obbligatorio): nome descrittivo dell'ID controllo.
  • owner (obbligatorio): identifica chi ha la responsabilità del controllo in Azure: Cliente, Microsoft, Condiviso.
  • description: informazioni aggiuntive sul controllo.
  • requirements: dettagli sulla responsabilità dell'implementazione del controllo.
  • additionalContentUrl: collegamento a altre informazioni sul controllo. Questa proprietà è in genere un collegamento alla sezione della documentazione che illustra questo controllo nello standard di conformità.

Di seguito è riportato un esempio dell'oggetto policyMetadata . Questo esempio di metadati appartiene al controllo NIST SP 800-53 R4 AC-1 .

{
  "properties": {
    "metadataId": "NIST SP 800-53 R4 AC-1",
    "category": "Access Control",
    "title": "Access Control Policy and Procedures",
    "owner": "Shared",
    "description": "**The organization:**    \na. Develops, documents, and disseminates to [Assignment: organization-defined personnel or roles]:  \n1. An access control policy that addresses purpose, scope, roles, responsibilities, management commitment, coordination among organizational entities, and compliance; and  \n2. Procedures to facilitate the implementation of the access control policy and associated access controls; and  \n  
\nb. Reviews and updates the current:  \n1. Access control policy [Assignment: organization-defined frequency]; and  \n2. Access control procedures [Assignment: organization-defined frequency].",
    "requirements": "**a.**  The customer is responsible for developing, documenting, and disseminating access control policies and procedures. The customer access control policies and procedures address access to all customer-deployed resources and customer system access (e.g., access to customer-deployed virtual machines, access to customer-built applications).  \n**b.**  The customer is responsible for reviewing and updating access control policies and procedures in accordance with FedRAMP requirements.",
    "additionalContentUrl": "https://nvd.nist.gov/800-53/Rev4/control/AC-1"
  },
  "id": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1",
  "name": "NIST_SP_800-53_R4_AC-1",
  "type": "Microsoft.PolicyInsights/policyMetadata"
}

Passaggi successivi