Criteri di Azure effetto di negazione delle definizioni

L'effetto deny viene usato per impedire una richiesta di risorsa che non corrisponde agli standard definiti tramite una definizione di criteri e non riesce la richiesta.

Valutazione di Deny

Quando si crea o si aggiorna una risorsa corrispondente in modalità Resource Manager, nega impedisce l'invio della richiesta al provider di risorse. La richiesta viene restituita come 403 (Forbidden). Nel portale, può Forbidden essere visualizzato come stato di distribuzione impedito dall'assegnazione dei criteri. Per una modalità provider di risorse, il provider di risorse gestisce la valutazione della risorsa.

Durante la valutazione delle risorse esistenti, le risorse che corrispondono a una deny definizione di criteri vengono contrassegnate come non conformi.

Proprietà di Deny

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

Per una modalità provider di risorse di Microsoft.Kubernetes.Data, l'effetto deny ha le proprietà secondarie seguenti di details. L'uso di è necessario per le definizioni di templateInfo criteri nuovi o aggiornati come constraintTemplate deprecato.

  • templateInfo (obbligatorio)
    • Non può essere usato 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.

        Avviso

        Non usare URI o token di firma di accesso condiviso in url o altri elementi che potrebbero esporre un segreto.

      • 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 (facoltativo)
    • Non può essere usato con templateInfo.
    • L'implementazione CRD del modello Constraint. Usa i parametri passati tramite values come {{ .Values.<valuename> }}. Nell'esempio 2 seguente, questi valori sono {{ .Values.excludedNamespaces }} e {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (deprecato)
    • Non può essere usato con templateInfo.
    • Deve essere sostituito con templateInfo durante la creazione o l'aggiornamento di una definizione di criteri.
    • Il modello Constraint CustomResourceDefinition (CRD) che definisce nuovi vincoli. Il modello definisce la logica Rego, lo schema Constraint e i parametri Constraint passati da values Criteri di Azure. Per altre informazioni, vedere Vincoli gatekeeper.
  • constraintInfo (facoltativo)
    • Non è possibile usare con constraint, constraintTemplate, apiGroupso kinds.
    • Se constraintInfo non viene specificato, il vincolo può essere generato da e dai templateInfo criteri.
    • 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.

        Avviso

        Non usare URI o token di firma di accesso condiviso in url o altri elementi che potrebbero esporre un segreto.

  • namespaces (facoltativo)
    • Matrice di spazi dei nomi Kubernetes a cui limitare la valutazione dei criteri.
    • Un valore vuoto o mancante fa sì che la valutazione dei criteri includa tutti gli spazi dei nomi, ad eccezione di quelli definiti in excludedNamespaces.
  • excludedNamespaces (obbligatorio)
    • Matrice di spazi dei nomi Kubernetes da escludere dalla valutazione dei criteri.
  • labelSelector (obbligatorio)
    • Oggetto che include matchLabels proprietà (oggetto) e matchExpression (matrice) per consentire di specificare le risorse Kubernetes da includere per la valutazione dei criteri corrispondenti alle etichette e ai selettori forniti.
    • Un valore vuoto o mancante fa sì che la valutazione dei criteri includa tutte le etichette e i selettori, ad eccezione degli spazi dei nomi definiti in excludedNamespaces.
  • apiGroups (obbligatorio quando si usa templateInfo)
    • Matrice che include i gruppi di API da trovare. 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 a Constraint. Ogni valore deve esistere nel modello Constraint CRD.

Esempio di Deny

Esempio 1: Uso dell'effetto per le deny modalità di Resource Manager.

"then": {
  "effect": "deny"
}

Esempio 2: Uso dell'effetto deny 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": "deny",
  "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