Criteri di esempio

Questa pagina contiene norme di esempio per Autorizzazione binaria specificata in formato YAML. Per istruzioni su come configurare i criteri in Autorizzazione binaria, consulta Configura un criterio utilizzando Google Cloud CLI oppure Configura un criterio utilizzando la console Google Cloud.

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, che fa sì che Autorizzazione binaria consenta il deployment di tutte le immagini container. Il valore predefinito enforcementMode è impostato su ENFORCED_BLOCK_AND_AUDIT_LOG, ma poiché tutti i deployment sono consentiti, questa azione non viene mai eseguita.

Blocca (quasi) tutti i deployment

L'esempio seguente mostra come bloccare tutte le immagini container del deployment, permettendo al contempo le immagini di sistema gestite da Google. Queste immagini container sono obbligatori per la maggior parte dei cluster Google Kubernetes Engine (GKE) per iniziare correttamente.

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

Qui, globalPolicyEvaluationMode in modo che le immagini richieste da GKE vengano non bloccate dall'applicazione dei criteri. La regola predefinita ha un valore evaluationMode pari a ALWAYS_DENY, che fa sì che l'Autorizzazione binaria neghi il deployment di tutte le immagini container. La Il campo enforcementMode è impostato su ENFORCED_BLOCK_AND_AUDIT_LOG, che determina il blocco di Autorizzazione binaria deployment e scrivere nel log di controllo.

Richiedi attestatori di firmare prima del deployment

L'esempio seguente mostra come richiedere gli attetori per 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, che consente ad Autorizzazione binaria di consentire il deployment solo delle immagini che sono state autorizzate dagli attestatori richiesti in requireAttestationsBy.

Consenti deployment in modalità dry run

La modalità dry run è una modalità di applicazione forzata in un criterio che consente immagini non conformi il deployment, ma scrive i dettagli relativi alla violazione dei criteri e al deployment l'audit log. La modalità dry run consente di testare un criterio in produzione dell'ambiente di lavoro prima che entri in vigore.

L'esempio seguente mostra come consentire a tutte le immagini non conformi di essere con deployment in modalità dry run.

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 enforcementMode di DRYRUN_AUDIT_LOG_ONLY, che consente il deployment di immagini che non sono state autorizzato dall'attestatore specificato a eseguire il deployment, ma scrive le informazioni sul deployment non conforme nell'audit log.

Usa una regola specifica per il cluster

Gli esempi seguenti mostrano una regola specifica per il cluster che consente di eseguire 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

Qui, la regola specifica per il cluster si applica solo alle immagini container di cui è stato eseguito il deployment a us-east1-a.prod-cluster. La regola richiede l'attestazione da due attestatori prima del deployment di un'immagine.

Aggiungere immagini esenti

L'esempio seguente mostra come aggiungere percorsi aggiuntivi in Container Registry o in un altro registro all'elenco di immagini esente dalle norme:

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

Qui, i pattern di corrispondenza per altre immagini esenti sono gcr.io/example-project-1/* e gcr.io/example-project-2/my-app.