L'autorizzazione binaria per Google Distributed Cloud è una funzionalità di Google Cloud che estende l'applicazione ospitata in fase di deployment dell'autorizzazione binaria ai tuoi cluster on-premise. Il caso d'uso principale dell'autorizzazione binaria su Google Distributed Cloud è proteggere i carichi di lavoro, ma l'autorizzazione binaria funziona con tutti i tipi di cluster. Segui i passaggi descritti in questa guida per applicare le regole di applicazione di un criterio di autorizzazione binaria configurato nel tuo progetto Google Cloud ai tuoi cluster. Per ulteriori informazioni su criteri e regole di Autorizzazione binaria, consulta la Panoramica di Autorizzazione binaria.
Prerequisiti
Prima di poter attivare l'applicazione dei criteri di Autorizzazione binaria per un cluster, assicurati di soddisfare i seguenti criteri di prerequisito:
Registra il cluster in un parco risorse: un cluster creato con
bmctl
viene registrato nel progetto Google Cloud specificato nel campogkeConnect.projectID
del 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 relativa alla gestione dei parchi risorse.Abilita l'API Binary Authorization nel tuo progetto Google Cloud: abilita Autorizzazione binaria Authorization nel tuo progetto host del parco.
Aggiungi il ruolo Valutatore criterio di autorizzazione binaria al progetto host del tuo parco risorse: per concedere il ruolo Valutatore criterio di autorizzazione binaria (
roles/binaryauthorization.policyEvaluator
) all'account di servizio Kubernetes nel progetto host del tuo parco risorse, esegui il seguente comando:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.svc.id.goog[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 Binary Authorization (
binaryauthorization.googleapis.com
). Questa API fornisce convalida e controllo del deployment basati su criteri per le immagini di cui è stato eseguito il deployment nel cluster. Per maggiori informazioni sull'utilizzo di una configurazione proxy, vedi Installare dietro un proxy.
Una volta soddisfatti i prerequisiti, puoi attivare (o disattivare) il criterio di autorizzazione binaria quando crei un nuovo cluster o aggiorni un cluster esistente.
Attiva il criterio di Autorizzazione binaria durante la creazione del cluster
Puoi abilitare l'applicazione dei criteri di Autorizzazione binaria con bmctl
o gcloud CLI.
bmctl
Per abilitare l'Autorizzazione binaria quando crei un cluster con bmctl
:
Prima di creare il cluster, aggiungi
spec.binaryAuthorization.evaluationMode
al file di configurazione del cluster come mostrato nell'esempio seguente:... --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic namespace: cluster-user-basic spec: type: user ... binaryAuthorization: evaluationMode: "PROJECT_SINGLETON_POLICY_ENFORCE"
I valori consentiti per
evaluationMode
sono:PROJECT_SINGLETON_POLICY_ENFORCE
: applica le regole specificate nel criterio di autorizzazione binaria, noto anche come criterio progetto-singleton, al tuo progetto Google Cloud per gestire il deployment delle immagini contenitore nel cluster.DISABLE
: disattiva 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
bmctl create cluster
.
Per ulteriori informazioni sulla creazione di cluster, consulta la panoramica della creazione di cluster.
Interfaccia a riga di comando gcloud
Per creare un cluster di utenti e attivare l'autorizzazione binaria, aggiungi il flag
--binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
quando esegui il comandogcloud container bare-metal clusters create
.Viene creato un cluster di utenti che applica le regole specificate nel criterio di Autorizzazione binaria, noto anche come criterio progetto-singleton. Questo criterio è associato al tuo progetto Google Cloud e specifica le regole che regolano il deployment delle immagini container. Per ulteriori informazioni sull'utilizzo di gcloud CLI per creare un cluster utente, consulta Creare un cluster utente utilizzando i client dell'API GKE On-Prem. Per ulteriori informazioni sui criteri e sulle regole di Autorizzazione binaria, consulta la Panoramica di Autorizzazione binaria.
Attivare o disattivare il criterio di autorizzazione binaria per un cluster esistente
Se hai già un cluster della versione 1.16 o successiva, puoi attivare o disattivare l'autorizzazione binaria in qualsiasi momento utilizzando bmctl
o gcloud CLI.
bmctl
Per attivare:
Modifica il file di configurazione del cluster per aggiungere i campi
binaryAuthorization
:... --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic namespace: cluster-user-basic spec: type: user ... binaryAuthorization: evaluationMode: "PROJECT_SINGLETON_POLICY_ENFORCE"
Aggiorna il cluster:
bmctl update cluster -c CLUSTER_NAME --admin-kubeconfig=CLUSTER_KUBECONFIG
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster da aggiornare.CLUSTER_KUBECONFIG
: il percorso del file kubeconfig del cluster.
Attendi che il deployment denominato
binauthz-module-deployment
nello spazio dei nomibinauthz-system
sia pronto.Quando il deployment è pronto, Autorizzazione binaria applica le regole specificate nel criterio di Autorizzazione binaria, noto anche come criterio singleton del progetto. Questo criterio è associato al tuo progetto Google Cloud e specifica le regole che regolano il deployment delle immagini container. Per ulteriori informazioni sull'utilizzo di
bmctl
per aggiornare un cluster, consulta Aggiornare i cluster. Per ulteriori informazioni sui criteri e sulle regole di Autorizzazione binaria, consulta la Panoramica di Autorizzazione binaria.
Per disattivarla:
Questa funzionalità può essere disattivata impostando
evaluationMode
suDISABLED
o rimuovendo la sezionebinaryAuthorization
dalla specifica del cluster. Una volta apportata questa modifica, attendi qualche minuto finché il deployment denominatobinauthz-module-deployment
nello spazio dei nomibinauthz-system
non viene rimosso.
Interfaccia a riga di comando gcloud
Per abilitare l'autorizzazione binaria per un cluster esistente, aggiungi il flag
--binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
quando esegui il comandogcloud container bare-metal clusters update
.In questo modo, un cluster di utenti viene aggiornato in modo che l'autorizzazione binaria applichi le regole specificate nel criterio di autorizzazione binaria, noto anche come criterio singleton del progetto. Questo criterio è associato al tuo progetto Google Cloud e specifica le regole che regolano il deployment delle immagini contenitore. Per ulteriori informazioni sull'utilizzo dellgcloud CLI per aggiornare un cluster di utenti, consulta gcloud container bare-metal clusters update nel riferimento gcloud CLI. Per ulteriori informazioni sui criteri e sulle regole di Autorizzazione binaria, consulta la Panoramica di Autorizzazione binaria.
Per disattivare l'Autorizzazione binaria per un cluster esistente, esegui il comando
gcloud container bare-metal clusters update
con il flag--binauthz-evaluation-mode=DISABLED
.
Risoluzione dei problemi
Se non completi tutti i prerequisiti, potresti non vedere alcun avviso precoce di un problema. Se l'autorizzazione binaria inizia a non rispondere alle richieste di creazione dei pod, controlla status.conditions
per il ReplicaSet. Un messaggio come il seguente indica che si è verificato un problema con la configurazione dell'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.svc.id.goog[binauthz-system/binauthz-agent]" \ --role=roles/binaryauthorization.policyEvaluator