Configura l'applicazione dei criteri di Autorizzazione binaria

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 di Autorizzazione binaria su Google Distributed Cloud protegge i carichi di lavoro sui tuoi cluster utente. Segui le Passaggi di questa guida per applicare le regole di applicazione di un'Autorizzazione binaria configurato nel tuo progetto Google Cloud ai cluster utente. Per ulteriori informazioni informazioni sui criteri e sulle regole di Autorizzazione binaria, consulta Panoramica di Autorizzazione binaria.

Prerequisiti

Prima di poter attivare l'applicazione del criterio di Autorizzazione binaria per un utente di cluster, assicurati di soddisfare i seguenti criteri dei prerequisiti:

  • 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 campo gkeConnect.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 e esempi, consulta la sezione sulla gestione del parco risorse documentazione.

  • 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 criteri di autorizzazione binaria all'host del parco risorse progetto: per concedere il Valutatore dei criteri di Autorizzazione binaria (roles/binaryauthorization.policyEvaluator) al servizio Kubernetes sul tuo progetto host del parco risorse, esegui questo 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 e 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 del criterio di Autorizzazione binaria con gkectl con gcloud CLI.

gkectl

Per abilitare Autorizzazione binaria quando crei un cluster con gkectl:

  1. Prima di creare il cluster, aggiungi binaryAuthorization.evaluationMode al cluster utente di configurazione del deployment, come mostrato nell'esempio seguente:

    ...
    binaryAuthorization:
      evaluationMode: "project_singleton_policy_enforce"
    ...
    

    I valori consentiti per evaluationMode sono:

    • project_singleton_policy_enforce: applica in modo forzato le regole specificate nel Criterio di Autorizzazione binaria, noto anche come project-singleton policy, sul tuo progetto Google Cloud per gestire il deployment containerizzate sul cluster.

    • disabled: disabilita l'uso di Autorizzazione binaria per il cluster. Questo è il valore predefinito. Se ometti binaryAuthorization, il valore è disabilitata.

  2. 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.

Abilita o disabilita il criterio di Autorizzazione binaria per un cluster esistente

Se disponi di un cluster con versione 1.28 o successiva esistente, puoi abilitare o disattiva Autorizzazione binaria in qualsiasi momento, utilizzando gkectl o con gcloud CLI.

gkectl

  • Per attivarla:

    1. Modifica il file di configurazione del cluster per aggiungere binaryAuthorization campi:

      ...
      binaryAuthorization:
        evaluationMode: "project_singleton_policy_enforce"
      
    2. Aggiorna il cluster:

      gkectl update cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config USER_CLUSTER_CONFIG_FILE \
        --force

      Sostituisci quanto segue:

      • ADMIN_CLUSTER_KUBECONFIG: il percorso file kubeconfig del cluster di amministrazione
      • USER_CLUSTER_CONFIG_FILE: il percorso del tuo di configurazione del cluster utente.
    3. Attendi il deployment denominato binauthz-module-deployment nel binauthz-system per essere pronto.

      Quando il deployment è pronto, Autorizzazione binaria applica le regole specificato nel criterio di Autorizzazione binaria, noto anche come criterio singolo progetto. Questo criterio è associato al tuo progetto Google Cloud e specifica le regole per gestire l'implementazione 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:

    1. Modifica il file di configurazione del cluster e rimuovi binaryAuthorization o impostando evaluationMode su disabled.

      ...
      binaryAuthorization:
        evaluationMode: "disabled"
      
    2. 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 nomi binauthz-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