Criteri di esempio

Questa pagina contiene norme di esempio per Autorizzazione binaria specificate in formato YAML. Per istruzioni sulla configurazione dei criteri in Autorizzazione binaria, consulta Configurare un criterio utilizzando Google Cloud CLI o Configurare un criterio utilizzando la Google Cloud console.

Consenti tutti i deployment

L'esempio seguente mostra come consentire il deployment di tutte le immagini container senza vincoli.

name: projects/example-project/policy
defaultAdmissionRule:
  evaluationMode: ALWAYS_ALLOW
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

In questo caso, la regola predefinita ha un evaluationMode di ALWAYS_ALLOW, il che fa sì che l'autorizzazione binaria consenta il deployment di tutte le immagini container. Il enforcementMode predefinito è impostato su ENFORCED_BLOCK_AND_AUDIT_LOG, ma poiché tutti i deployment sono consentiti, questa azione non viene mai eseguita.

Bloccare (quasi) tutti i deployment

L'esempio seguente mostra come bloccare il deployment di tutte le immagini container, consentendo al contempo le immagini di sistema gestite da Google. Queste immagini container sono necessarie per l'avvio corretto della maggior parte dei cluster Google Kubernetes Engine (GKE).

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Qui, globalPolicyEvaluationMode è abilitato in modo che le immagini richieste da GKE non vengano bloccate dall'applicazione dei criteri. La regola predefinita ha un evaluationMode di ALWAYS_DENY, che fa sì che l'autorizzazione binaria neghi il deployment di tutte le immagini container. enforcementMode è impostato su ENFORCED_BLOCK_AND_AUDIT_LOG, il che fa sì che l'autorizzazione binaria blocchi il deployment e scriva nel log di controllo.

Richiedi ai firmatari di firmare prima del deployment

L'esempio seguente mostra come richiedere agli attestatori di autorizzare una release prima che possa essere eseguito il deployment di un'immagine container. Il deployment viene bloccato se tutti gli attestatori non hanno firmato.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: REQUIRE_ATTESTATION
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
  requireAttestationsBy:
  - projects/example-project/attestors/secure-build

In questo caso, la regola predefinita ha un valore evaluationMode pari a REQUIRE_ATTESTATION, il che fa sì che Autorizzazione binaria consenta il deployment solo delle immagini che sono state autorizzate dagli attestatori richiesti in requireAttestationsBy.

Consenti deployment in modalità di prova

La modalità di prova è una modalità di applicazione forzata in un criterio che consente il deployment di immagini non conformi, ma scrive i dettagli sulla violazione dei criteri e sul deployment nel log di controllo. La modalità di prova ti consente di testare un criterio nel tuo ambiente di produzione prima che entri in vigore.

L'esempio seguente mostra come consentire il deployment di tutte le immagini non conformi in modalità di prova generale.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: REQUIRE_ATTESTATION
  enforcementMode: DRYRUN_AUDIT_LOG_ONLY
  requireAttestationsBy:
  - projects/example-project/attestors/secure-build

In questo caso, la regola predefinita ha un enforcementMode di DRYRUN_AUDIT_LOG_ONLY, che consente il deployment di immagini che non sono state autorizzate al deployment dall'attestatore specificato, ma scrive informazioni sul deployment non conforme nel log di controllo.

Utilizzare una regola specifica per il cluster

I seguenti esempi mostrano una regola specifica per il cluster che consente il deployment solo delle immagini container autorizzate dagli attestatori specificati:

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
clusterAdmissionRules:
  us-east1-a.prod-cluster:
    evaluationMode: REQUIRE_ATTESTATION
    enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
    requireAttestationsBy:
    - projects/example-project/attestors/secure-build
    - projects/example-project/attestors/prod-qualified

In questo caso, la regola specifica del cluster si applica solo alle immagini container di cui è stato eseguito il deployment in us-east1-a.prod-cluster. La regola richiede l'attestazione di due attestatori prima che possa essere eseguito il deployment di un'immagine.

Aggiungere immagini esenti

L'esempio seguente mostra come aggiungere altri percorsi in Container Registry o in un altro registro all'elenco delle immagini esenti dal criterio:

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
admissionWhitelistPatterns:
- namePattern: gcr.io/example-project-1/*
- namePattern: gcr.io/example-project-2/my-app
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

In questo caso, i pattern di corrispondenza per le immagini esenti aggiuntive sono gcr.io/example-project-1/* e gcr.io/example-project-2/my-app.