Autorizzazione binaria per Google Distributed Cloud è una funzionalità di Google Cloud che estende l'applicazione in hosting, in fase di deployment Autorizzazione binaria agli indirizzi on-premise cluster utente. Il caso d'uso principale dell'autorizzazione binaria su Google Distributed Cloud è proteggere i carichi di lavoro nei cluster di utenti. Segui i passaggi di questa guida per applicare le regole di applicazione di un criterio di autorizzazione binaria configurato nel tuo progetto Google Cloud ai tuoi cluster di utenti. 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 di utenti, assicurati di soddisfare i seguenti criteri di prerequisito:
Registra il cluster con un parco risorse: per un cluster creato con
gkectl
, il cluster sia registrato nel progetto Google Cloud da te specificato nel campogkeConnect.projectID
nel file di configurazione del cluster. Questo è denominato host del parco risorse progetto. 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 il servizio Autorizzazione binaria del tuo progetto host del parco risorse.
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 quest'ultimo consente le connessioni all'API Binary Authorization (
binaryauthorization.googleapis.com
). Questa API fornisce soluzioni basate su criteri per la convalida e il controllo del deployment per le immagini di cui è stato eseguito il deployment nel cluster. Per ulteriori informazioni, vedi Proxy e regole firewall.
Una volta soddisfatti i prerequisiti, puoi attivare (o disattivare) il criterio di Autorizzazione binaria quando crei un nuovo cluster o aggiorni un cluster esistente in un cluster Kubernetes.
Abilita il criterio di Autorizzazione binaria durante la creazione del cluster
Puoi abilitare l'applicazione dei criteri 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.evaluationMode
al file di configurazione del cluster utente come mostrato nell'esempio seguente:... 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.disabled
: disabilita l'uso di Autorizzazione binaria per il cluster. Questo è il valore predefinito. Se omettibinaryAuthorization
, la funzionalità viene disattivata.
Apporta eventuali altre modifiche al file di configurazione del cluster e poi esegui il comando
gkectl create cluster
.
Per ulteriori informazioni sulla creazione di cluster, consulta Panoramica dell'installazione di Google Distributed Cloud.
Attivare o disattivare il criterio di autorizzazione binaria per un cluster esistente
Se hai già un cluster della versione 1.28 o successive, puoi attivare o disattivare l'autorizzazione binaria in qualsiasi momento utilizzando gkectl
o gcloud CLI.
gkectl
Per attivare:
Modifica il file di configurazione del cluster per aggiungere
binaryAuthorization
campi:... 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-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
gkectl
per aggiornare un consulta Aggiornare i cluster. Per saperne di più sui criteri e sulle regole di Autorizzazione binaria, consulta la panoramica di Autorizzazione binaria.
Per disattivarla:
Modifica il file di configurazione del cluster e rimuovi la sezione
binaryAuthorization
o impostaevaluationMode
sudisabled
.... 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
binauthz-module-deployment
nello spazio dei nomibinauthz-system
è rimosso.
Risoluzione dei problemi
Se non completi tutti i prerequisiti, potresti visualizzare un messaggio come di seguito 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.svc.id.goog[binauthz-system/binauthz-agent]" \ --role=roles/binaryauthorization.policyEvaluator