Questa pagina fornisce le istruzioni per configurare un criterio di autorizzazione binaria utilizzando Google Cloud CLI. In alternativa, puoi eseguire queste attività anche utilizzando la consoleGoogle Cloud o l'API REST. Questo passaggio fa parte della configurazione di Autorizzazione binaria.
Per configurare una policy utilizzando lo strumento a riga di comando, esporta la policy esistente come file YAML. Dopo aver modificato il file, puoi importarlo per aggiornare la policy, come descritto più avanti in questa guida. Per ulteriori informazioni sul formato YAML delle policy, consulta il riferimento YAML per le policy.
Prima di iniziare
- Attiva Autorizzazione binaria.
- Crea un cluster.
- Se intendi utilizzare le attestazioni, ti consigliamo di creare gli attestatori prima di configurare i criteri. Puoi creare attestatori utilizzando uno strumento a riga di comando o tramite la consoleGoogle Cloud .
Imposta l'ID progetto sul progetto in cui hai attivato Autorizzazione binaria:
PROJECT_ID=PROJECT_ID gcloud config set project ${PROJECT_ID}
Esporta il file YAML della policy
Questa sezione si applica a GKE, Distributed Cloud, Cloud Run e Cloud Service Mesh.
Per aggiornare la policy, esportala prima in un file YAML locale, come segue:
gcloud container binauthz policy export > /tmp/policy.yaml
Per impostazione predefinita, i contenuti del file sono simili ai seguenti:
defaultAdmissionRule: enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG evaluationMode: ALWAYS_ALLOW globalPolicyEvaluationMode: ENABLE name: projects/PROJECT_ID/policy
Per modificare la policy, modifica il file e aggiungi o aggiorna le sezioni, come descritto più avanti in questa guida. Dopo aver salvato il file, puoi importare il criterio.
Per aggiungere un'immagine esente all'allowlist, aggiungi quanto segue al file della policy:
admissionWhitelistPatterns: - namePattern: EXEMPT_IMAGE_PATH
Sostituisci EXEMPT_IMAGE_PATH con il percorso di un'immagine da esentare. Per esentare altre immagini, aggiungi altre voci - namePattern. Scopri di più su admissionWhitelistPatterns.
Impostare la regola predefinita
Questa sezione si applica a GKE, Distributed Cloud, Cloud Run e Cloud Service Mesh.
Una regola è la parte di un criterio che definisce i vincoli che le immagini container devono soddisfare prima di poter essere sottoposte a deployment. La regola predefinita definisce i vincoli che si applicano a tutte le immagini non esenti che non hanno una propria regola specifica del cluster. Ogni criterio deve avere una regola predefinita.
La regola predefinita è definita nel nodo
defaultAdmissionRule nel file YAML
dei criteri. Per saperne di più sulle parti di questa regola, consulta
ADMISSION_RULE nel riferimento YAML delle norme. Per esempi di regole predefinite, consulta
Norme di esempio.
Per impostare la regola predefinita, modifica il nodo defaultAdmissionRule nel
file policy.yaml in base alle esigenze:
defaultAdmissionRule: evaluationMode: EVALUATION_MODE enforcementMode: ENFORCEMENT_MODE requireAttestationsBy: - ATTESTOR - ...
Sostituisci quanto segue:
EVALUATION_MODE: La modalità di valutazione specifica il tipo di vincolo applicato dall'enforcer di Autorizzazione binaria al momento del deployment. Sostituisci EVALUATION_MODE con una delle seguenti opzioni:
ALWAYS_ALLOW: consente il deployment di tutte le immagini.ALWAYS_DENY: Non consente il deployment di tutte le immagini.REQUIRE_ATTESTATION: consente di eseguire il deployment di un'immagine se l'immagine ha una o più attestazioni che possono essere verificate da tutti gli attestatori che aggiungi a questa regola. Al momento del deployment, l'enforcer verifica l'attestazione utilizzando gli attestatori che aggiungi all'elenco ATTESTOR in questa regola. Per scoprire di più sulla creazione di attestatori, consulta Creazione di attestatori. Se specifichiREQUIRE_ATTESTATION, devi aggiungere anche un bloccorequireAttestationsBycontenente almeno un attestatore. Per scoprire di più sulla creazione di attestatori, consulta Creazione di attestatori.
ENFORCEMENT_MODE: la modalità di applicazione forzata specifica in che modo l'applicazione forzata risponde quando un'immagine viola una regola. Sostituisci ENFORCEMENT_MODE con uno dei seguenti valori:
ENFORCED_BLOCK_AND_AUDIT_LOG: blocca le immagini che violano la regola e registra le informazioni sulla violazione in Cloud Audit Logs (impostazione predefinita).DRYRUN_AUDIT_LOG_ONLY: consente il deployment di tutte le immagini, ma registra le informazioni sull'applicazione, incluse quelle sulle violazioni, in Cloud Audit Logs.
ATTESTOR: se imposti
EVALUATION_MODEsuREQUIRE_ATTESTATION, devi anche aggiungere un blocco requireAttesationsBy. Nel blocco, elenca uno o più attestatori in base all'ID risorsa. L'ID risorsa ha il formato:projects/PROJECT_ID/attestors/ATTESTOR_NAME.Per scoprire di più sulla creazione di attestatori, consulta Creazione di attestatori.
Gestisci le immagini esenti
Questa sezione si applica a GKE, Distributed Cloud, Cloud Run e Cloud Service Mesh.
Un'immagine esente è un'immagine esente dalle regole delle norme. Autorizzazione binaria consente sempre il deployment delle immagini esenti.
Specifichi le immagini esenti elencando i relativi percorsi del registro in
admissionWhitelistPatterns. Il percorso fa riferimento a
Container Registry o a un altro registro di immagini. Al momento del deployment, l'autorizzazione binaria esenta l'elenco delle immagini specificate da admissionWhitelistPatterns dopo le immagini specificate dal criterio di sistema.
Per aggiungere un'immagine esente, aggiungi un nodo namePattern sotto un elenco
admissionWhitelistPatterns
nel file policy.yaml:
admissionWhitelistPatterns: - namePattern: MATCHING_PATTERN
Sostituisci MATCHING_PATTERN con il percorso di una singola immagine nel tuo
registro per corrispondenza esatta o con qualsiasi immagine corrispondente a un pattern utilizzando il carattere jolly (*, **).
Cloud Run
Questa sezione si applica a Cloud Run.
Non puoi specificare direttamente i nomi delle immagini che contengono un tag. Ad esempio, non puoi specificare
IMAGE_PATH:latest.
Se vuoi specificare nomi di immagini che contengono tag, devi specificare il nome dell'immagine utilizzando un carattere jolly nel seguente modo:
*per tutte le versioni di una singola immagine, ad esempious-docker.pkg.dev/myproject/container/hello@***per tutte le immagini di un progetto, ad esempious-docker.pkg.dev/myproject/**
Puoi utilizzare i nomi dei percorsi per specificare un digest nel formato
IMAGE_PATH@DIGEST.
Modalità di valutazione delle policy di sistema
Questa sezione si applica a GKE e Distributed Cloud.
La modalità di valutazione delle norme di sistema è un'impostazione delle norme che fa sì che Autorizzazione binaria valuti una norma di sistema prima di valutare la norma che configuri. Google gestisce la policy di sistema, che esenta un elenco di immagini di sistema gestite da Google utilizzate da GKE. Le immagini elencate nelle norme di sistema non sono bloccate dall'applicazione delle norme. Se non abiliti l'impostazione, devi gestire autonomamente l'elenco delle immagini esenti. Scopri come gestire le immagini esenti.
Puoi visualizzare i contenuti della policy di sistema utilizzando il seguente comando:
gcloud alpha container binauthz policy export-system-policy
Per attivare la modalità di valutazione delle policy di sistema, aggiungi la seguente riga al file policy.yaml:
globalPolicyEvaluationMode: ENABLE
Per disattivare la modalità di valutazione delle policy di sistema, aggiungi quanto segue:
globalPolicyEvaluationMode: DISABLE