Autorizzazione binaria per Google Distributed Cloud ti consente di estendere l'applicazione in fase di deployment di Autorizzazione binaria ai tuoi cluster utente on-premise per contribuire a proteggere i workload dei container. Puoi applicare le regole di applicazione di una policy configurata nel tuo progetto Google Cloud ai cluster utente con versione 1.28 o successive. Per saperne di più su policy e regole, consulta la panoramica di Autorizzazione binaria.
Se hai attivato la versione di anteprima di Autorizzazione binaria per Google Distributed Cloud, disattivala e pulisci le risorse prima di attivare la funzionalità GA sui cluster della versione 1.28 o successive.
Prerequisiti
Prima di poter abilitare l'applicazione delle policy di Autorizzazione binaria per un cluster utente, assicurati di aver soddisfatto i seguenti criteri dei prerequisiti:
Registra il cluster in un parco risorse: per un cluster creato con
gkectl, il cluster viene registrato nel progetto Google Cloud specificato nel campogkeConnect.projectIDnel file di configurazione del cluster. Questo progetto è denominato progetto host del parco risorse. Per scoprire di più sui parchi risorse, inclusi casi d'uso, best practice ed esempi, consulta la documentazione sulla gestione del parco risorse.Abilita l'API Autorizzazione binaria nel tuo Google Cloud progetto: attiva il servizio Autorizzazione binaria nel progetto host del tuo parco risorse.
Aggiungi il ruolo Binary Authorization Policy Evaluator al progetto host del parco risorse: per concedere il ruolo Binary Authorization Policy Evaluator (
roles/binaryauthorization.policyEvaluator) al service account Kubernetes nel progetto host del parco risorse, esegui questo comando:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.[binauthz-system/binauthz-agent]" \ --role="roles/binaryauthorization.policyEvaluator"Se il cluster è in esecuzione dietro un server proxy, assicurati che il server proxy consenta le connessioni all'API Autorizzazione binaria (
binaryauthorization.googleapis.com). Questa API fornisce la convalida e il controllo del deployment basati su policy per le immagini di cui è stato eseguito il deployment nel cluster. Per saperne di più, consulta Regole per proxy e firewall.
Una volta soddisfatti i prerequisiti, puoi abilitare (o disabilitare) la policy di Autorizzazione binaria quando crei un nuovo cluster o aggiorni un cluster esistente.
Abilita la policy di Autorizzazione binaria durante la creazione del cluster
Puoi abilitare l'applicazione delle policy di Autorizzazione binaria con gkectl o gcloud CLI.
gkectl
Per abilitare Autorizzazione binaria quando crei un cluster con gkectl:
Prima di creare il cluster, aggiungi
binaryAuthorization.evaluationModeal file di configurazione del cluster utente, come mostrato nell'esempio seguente:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce" ...I valori consentiti per
evaluationModesono:project_singleton_policy_enforce: applica le regole specificate nella policy di Autorizzazione binaria, nota anche come policy singleton del progetto, al tuo progetto Google Cloud per regolare il deployment delle immagini container nel tuo cluster.disabled: disabilita l'utilizzo di Autorizzazione binaria per il tuo cluster. Questo è il valore predefinito. Se omettibinaryAuthorization, la funzionalità viene disattivata.
Apporta le altre modifiche necessarie al file di configurazione del cluster, quindi esegui il comando
gkectl create cluster.
Per saperne di più sulla creazione di cluster, consulta Panoramica dell'installazione di Google Distributed Cloud.
Abilita o disabilita la policy di Autorizzazione binaria per un cluster esistente
Se hai già un cluster versione 1.28 o successiva, puoi attivare o disattivare Autorizzazione binaria in qualsiasi momento utilizzando gkectl o gcloud CLI.
gkectl
Per abilitare l'opzione:
Modifica il file di configurazione del cluster per aggiungere i campi
binaryAuthorization:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce"Aggiorna il cluster:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
Sostituisci quanto segue:
ADMIN_CLUSTER_KUBECONFIG: il percorso del file kubeconfig del cluster di amministrazioneUSER_CLUSTER_CONFIG_FILE: il percorso del file di configurazione del cluster utente.
Attendi che il deployment denominato
binauthz-module-deploymentnello spazio dei nomibinauthz-systemsia pronto.Quando il deployment è pronto, Autorizzazione binaria applica le regole specificate nella policy di Autorizzazione binaria, nota anche come policy singleton del progetto. Questa policy è associata al tuo progettoGoogle Cloud e specifica le regole per gestire il deployment delle immagini container. Per saperne di più sull'utilizzo di
gkectlper aggiornare un cluster, consulta Aggiorna i cluster. Per saperne di più sulle regole e sulle policy di Autorizzazione binaria, consulta la panoramica di Autorizzazione binaria.
Per disattivarla:
Modifica il file di configurazione del cluster e rimuovi la sezione
binaryAuthorizationo impostaevaluationModesudisabled.... binaryAuthorization: evaluationMode: "disabled"Aggiorna il cluster:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
Dopo aver apportato questa modifica, attendi qualche minuto finché il deployment denominato
binauthz-module-deploymentnello spazio dei nomibinauthz-systemnon viene rimosso.
Risoluzione dei problemi
Se non completi tutti i prerequisiti, potresti visualizzare un messaggio simile al seguente, che indica un problema con la configurazione di Autorizzazione binaria:
failed to validate Binary Authorization policy (1) Ensure the Binary Authorization API is enabled for your Google Cloud project: gcloud services enable binaryauthorization.googleapis.com --project=PROJECT_ID (2) Ensure an IAM policy binding is in place granting binaryauthorization.policyEvaluator role to the binauthz-system/binauthz-agent Kubernetes service account: gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.[binauthz-system/binauthz-agent]" \ --role=roles/binaryauthorization.policyEvaluator