Condividi tramite


Effetto di audit delle definizioni di Criteri di Azure

L'effetto audit viene usato per creare un evento di avviso nel log attività durante la valutazione di una risorsa non conforme, ma non arresta la richiesta.

Valutazione del controllo

La verifica è l'ultimo effetto controllato dalle Policy di Azure durante la creazione o l'aggiornamento di una risorsa. Per una modalità di Resource Manager, i criteri di Azure inviano quindi la risorsa al provider di risorse. Nella valutazione di una richiesta di creazione o aggiornamento di una risorsa, Criteri di Azure aggiunge un'operazione Microsoft.Authorization/policies/audit/action al log attività e contrassegna la risorsa come non conforme. Durante un ciclo di valutazione della conformità standard, viene aggiornato solo lo stato di conformità della risorsa.

Proprietà di Audit

Per una modalità Resource Manager, l'effetto di controllo non ha altre proprietà da usare nella then condizione della definizione dei criteri.

In modalità fornitore di risorse di Microsoft.Kubernetes.Data, l'effetto di controllo ha le seguenti sotto-proprietà di details. L'uso di templateInfo è obbligatorio per le nuove o aggiornate definizioni di criteri poiché constraintTemplate è deprecato.

  • templateInfo (obbligatorio)

    • Non si può usare con constraintTemplate.
    • sourceType (obbligatorio)
      • Definisce il tipo di origine per il modello di vincolo. Valori consentiti: PublicURL o Base64Encoded.

      • Se PublicURL è associato alla proprietà url per fornire la posizione del modello di vincolo. La posizione deve essere accessibile pubblicamente.

        Avvertimento

        Non usare URI di firma di accesso condiviso, token URL o altri elementi che potrebbero esporre segreti in testo normale.

      • Se Base64Encoded, associato alla proprietà content per fornire il modello di vincolo con codifica base 64. Vedere Creare una definizione di criteri dal modello di vincolo per creare una definizione personalizzata da un modello di vincolo OPA (Open Policy Agent) Gatekeeper v3 esistente.

  • constraint (obsoleto)

    • Non è possibile usarlo con templateInfo.
    • Implementazione CRD del modello Vincolo. Usa i parametri passati tramite values come {{ .Values.<valuename> }}. Nell'esempio 2 seguente, questi valori sono {{ .Values.excludedNamespaces }} e {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (obsoleto)

    • Non può essere usato con templateInfo.
    • Deve essere sostituito con templateInfo durante la creazione o l'aggiornamento di una definizione di criteri.
    • Modello di vincolo CustomResourceDefinition (CRD) che definisce i nuovi vincoli. Il modello definisce la logica Rego, lo schema Constraint e i parametri Constraint che vengono passati tramite values da Azure Policy. Per ulteriori informazioni, consultare i vincoli del gatekeeper.
  • constraintInfo (facoltativo)

    • Non è possibile usare con constraint, constraintTemplate, apiGroups, kinds, scopenamespaces, excludedNamespaces, o labelSelector.
    • Se constraintInfo non viene specificato, il vincolo può essere generato dai templateInfo e dalle politiche.
    • sourceType (obbligatorio)
      • Definisce il tipo di origine per il vincolo. Valori consentiti: PublicURL o Base64Encoded.

      • Se PublicURL, associato alla proprietà url per fornire la posizione del vincolo. La posizione deve essere accessibile pubblicamente.

        Avvertimento

        Non usare URI SAS o token in url o qualsiasi altro elemento che potrebbe esporre un segreto.

  • namespaces (facoltativo)

    • Una matrice di spazi dei nomi Kubernetes per limitare la valutazione dei criteri.
    • Un valore vuoto o mancante porta a includere nella valutazione dei criteri tutti i namespace non definiti in excludedNamespaces.
  • excludedNamespaces (facoltativo)

  • labelSelector (facoltativo)

    • Un oggetto che include la proprietà matchLabels (oggetto) e matchExpression (matrice) per consentire di specificare quali risorse Kubernetes includere per la valutazione dei criteri corrispondenti alle etichette e ai selettori forniti.
    • Un valore vuoto o mancante determina che la valutazione dei criteri includa tutte le etichette e i selettori, ad eccezione dei namespace definiti in excludedNamespaces.
  • scope (facoltativo)

    • Una stringa che include la proprietà ambito per consentire di specificare se vengono considerate risorse a livello di cluster o a livello di spazio dei nomi.
  • apiGroups (obbligatorio quando si usa templateInfo)

    • Un array che contiene i gruppi di API da abbinare. Una matrice vuota ([""]) è il gruppo di API di base.
    • La definizione ["*"] di apiGroups non è consentita.
  • kinds (obbligatorio quando si usa templateInfo)

    • Matrice che include il tipo di oggetto Kubernetes a cui limitare la valutazione.
    • La definizione ["*"] di tipi non è consentita.
  • values (facoltativo)

    • Definisce tutti i parametri e i valori da passare al vincolo. Ogni valore deve esistere e corrispondere a una proprietà nella sezione di convalida openAPIV3Schema del modello vincolo CRD.

Esempio di controllo

Esempio 1: Utilizzo dell'effetto di controllo per le modalità del Gestore delle Risorse.

"then": {
  "effect": "audit"
}

Esempio 2: uso dell'effetto di controllo per una modalità provider di risorse di Microsoft.Kubernetes.Data. Le informazioni aggiuntive contenute in details.templateInfo dichiarano l'uso di PublicURL e imposta url nella posizione del modello Constraint da usare in Kubernetes per limitare le immagini del contenitore consentite.

"then": {
  "effect": "audit",
  "details": {
    "templateInfo": {
      "sourceType": "PublicURL",
      "url": "https://store.policy.core.windows.net/kubernetes/container-allowed-images/v1/template.yaml",
    },
    "values": {
      "imageRegex": "[parameters('allowedContainerImagesRegex')]"
    },
    "apiGroups": [
      ""
    ],
    "kinds": [
      "Pod"
    ]
  }
}

Passaggi successivi