Condividi tramite


Struttura della definizione dell'iniziativa dei 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.

Per creare una definizione dell’iniziativa di politiche è possibile usare JSON. La definizione dell’iniziativa di politiche contiene gli elementi per:

  • nome visualizzato
  • description
  • metadata
  • versione
  • parameters
  • definizioni dei criteri
  • gruppi di criteri, questa proprietà fa parte della funzionalità di 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",
        "version" : "1.0.0",
        "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",
                "definitionVersion": "1.*.*"
                "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 predefiniti e i modelli si trovano in esempi di Criteri di Azure.

Metadati UFX

La proprietà facoltativa metadata archivia informazioni sulla definizione dell’iniziativa di politiche. 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 dell’iniziativa di politiche. Per le versioni predefinite, questa versione dei metadati segue la proprietà Version dell'oggetto predefinito. È consigliabile usare la proprietà Version su questa versione dei metadati.

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

    Nota

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

  • preview (booleano): contrassegno vero o falso che indica se la definizione dell'iniziativa di politiche in anteprima.

  • deprecated (booleano): contrassegno vero o falso che indica se la definizione dell'iniziativa di politiche è stata contrassegnata come deprecata.

Versione (anteprima)

Le iniziative di criteri predefinite possono ospitare più versioni con la stessa definitionID. Se non viene specificato alcun numero di versione, tutte le esperienze visualizzeranno la versione più recente della definizione. Per visualizzare una versione specifica di un'interfaccia utente predefinita, è necessario specificarla nell'API, nell'SDK o nell'interfaccia utente. Per fare riferimento a una versione specifica di una definizione all'interno di un'assegnazione, vedere la versione della definizione all'interno dell'assegnazione

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, come illustrato nelle proprietà dei metadati comuni.

  • Versione principale (esempio: 2.0.0): introdurre modifiche di rilievo, come modifiche importanti alla logica delle regole, rimozione di parametri, aggiunta di un effetto di imposizione per impostazione predefinita.
  • Versione secondaria (esempio: 2.1.0): introdurre cambiamenti come modifiche minime alla logica delle regole, aggiunta di nuovi valori consentiti dei parametri, modifica delle definizioni dei ruoli, aggiunta o rimozione di definizioni all'interno di un'iniziativa.
  • Versione patch (esempio: 2.1.4): introdurre modifiche di stringa o metadati e scenari di sicurezza per l’accesso di emergenza (rari).

Le iniziative predefinite sono basate sul controllo delle versioni ed è possibile fare riferimento anche a versioni specifiche delle definizioni di criteri predefinite all'interno di iniziative predefinite o personalizzate. Per altre informazioni, vedere definizione di riferimento e versioni.

Durante l'anteprima, quando si crea un'iniziativa tramite il portale, non sarà possibile specificare versioni per i riferimenti alle definizioni di criteri predefinite. Per impostazione predefinita, tutti i riferimenti ai criteri predefiniti nelle iniziative personalizzate create tramite il portale saranno invece la versione più recente della definizione dei criteri.

Per altre informazioni sulle versioni predefinite dei Criteri di Azure, vedere Controllo delle versioni predefinite. Per saperne di più su cosa significa che un criterio deve essere deprecato o in anteprima, vedere Anteprima e criteri deprecati.

Parametri

I parametri consentono di semplificare la gestione dei criteri, riducendone il numero di definizioni. I parametri possono essere paragonati ai 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 nello stesso modo durante la creazione di iniziative di politiche. Includendo i parametri in una definizione di iniziativa dei 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 presenta le proprietà seguenti, usate nella definizione dell’iniziativa di politiche:

  • 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, matrice, oggetto, booleano, intero, float, o datetime.
  • metadata: definisce le sottoproprietà usate principalmente dal portale di Azure per visualizzare informazioni di tipo descrittivo:
    • description: (facoltativo) la spiegazione di ciò per cui viene usato il parametro. Può essere usata per fornire esempi di valori accettabili.
    • displayName: il nome descrittivo visualizzato per il parametro nel portale.
    • strongType: (facoltativa) usata quando si assegna la definizione di criteri tramite portale. Fornisce un elenco con riconoscimento del contesto. Per altre informazioni, vedere strongType.
  • defaultValue: (facoltativa) 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 stabilire una definizione di iniziativa di politiche per limitare le posizioni delle risorse nelle varie definizioni di criteri incluse. Un parametro per questa definizione dell’iniziativa di politiche potrebbe essere allowedLocations. Il parametro è quindi disponibile per ogni definizione di criteri inclusa e definita durante l'assegnazione dell'iniziativa di politiche.

"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 nella sezione relativa alle proprietà dei parametri.

strongType

Nella proprietà metadata è possibile usare strongType per fornire un elenco di opzioni di selezione multipla nel 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.

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

  • Microsoft.RecoveryServices/vaults/backupPolicies

I valori non tipo di risorsa consentiti per strongType sono:

  • location
  • resourceTypes
  • storageSkus
  • vmSKUs
  • existingResourceGroups

Definizioni dei criteri

La parte policyDefinitions 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, in questa proprietà vengono passati i parametri dell'iniziativa alla definizione dei criteri.

Proprietà di definizione dei criteri

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

  • policyDefinitionId (stringa): ID della definizione di criteri personalizzato o predefinito da includere.
  • policyDefinitionReferenceId (stringa): nome breve per la definizione di criteri incluso.
  • parameters: (facoltativo) coppie nome/valore per passare un parametro di iniziativa alla definizione di criteri inclusa come proprietà nella definizione di tale criterio. Per altre informazioni, vedere Parametri.
  • definitionVersion : (facoltativo) versione della definizione predefinita a cui fare riferimento. Se non viene specificato alcun valore, fa riferimento alla versione principale più recente in fase di assegnazione e all'esecuzione automatica di eventuali aggiornamenti secondari. Per ulteriori informazioni vedere versione della definizione
  • groupNames (matrice di stringhe): (facoltativo) gruppo di cui la definizione è membro. Per altre informazioni, vedere Gruppi di criteri.

Di seguito è riportato un esempio di policyDefinitions con due definizioni di criteri incluse, a cui viene passato lo stesso parametro di iniziativa:

"policyDefinitions": [
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
        "policyDefinitionReferenceId": "allowedLocationsSQL",
        "definitionVersion": "1.2.*"
        "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. La funzionalità Conformità alle normative dei Criteri di Azure (anteprima) usa questa proprietà per raggruppare le definizioni nei controlli e nei domini di conformità. Queste informazioni vengono definite nella proprietà policyDefinitionGroupsmatrice. Altri dettagli di raggruppamento sono disponibili in un policyMetadata oggetto creato da Microsoft. Per informazioni, vedere oggetti di metadati.

Parametri dei gruppi di definizioni di criteri

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

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

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

  • displayName (stringa): nome descrittivo del gruppo o controllo. Operazione usata dal portale.

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

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

    Nota

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

Un esempio della proprietà policyDefinitionGroups della definizione dell'iniziativa predefinita NIST è simile alla 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 nel portale di Azure sulla panoramica di un controllo su un'iniziativa di Conformità alle normative.
  • Disponibili tramite l'API REST. Vedere il provider di risorse Microsoft.PolicyInsights e il gruppo di operazioni policyMetadata.
  • Disponibile tramite l'interfaccia della riga di comando di Azure. Vedere il comando 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 nodo properties:

  • metadataId: ID di controlloa cui si riferisce il raggruppamento.
  • category (obbligatorio): dominio di conformità a cui appartiene il controllo.
  • title (obbligatorio): nome descrittivo dell'ID di controllo.
  • owner (obbligatorio): identifica chi ha la responsabilità del controllo in Azure: Cliente, Microsoft, Condiviso.
  • description: informazioni aggiuntive sul controllo.
  • requirements: informazioni dettagliate 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