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. Il caso d'uso principale di Autorizzazione binaria su Google Distributed Cloud protegge i carichi di lavoro, ma Autorizzazione binaria funziona con tutti i tipi di cluster. Segui i passaggi in questa guida per applicare l'applicazione di un criterio di Autorizzazione binaria configurato nel progetto Google Cloud per nei cluster. Per ulteriori informazioni sui criteri di Autorizzazione binaria di regole, consulta Autorizzazione binaria Panoramica.

Prerequisiti

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

  • Registra il cluster con un parco risorse: un cluster creato con bmctl, il cluster sia registrato nel progetto Google Cloud specificato 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 sull'utilizzo di una configurazione proxy, consulta l'articolo sull'installazione mediante 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 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 bmctl con gcloud CLI.

bmctl

Per abilitare Autorizzazione binaria quando crei un cluster con bmctl:

  1. 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 in modo forzato le regole specificate nel Criterio di Autorizzazione binaria, noto anche come project-singleton criterio, sul tuo progetto Google Cloud per gestire il deployment containerizzate sul cluster.

    • DISABLE: 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 bmctl create cluster.

Per ulteriori informazioni sulla creazione di cluster, consulta Panoramica della creazione del cluster.

Interfaccia a riga di comando gcloud

  • Per creare un cluster utente e abilitare Autorizzazione binaria, aggiungi il metodo --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE flag quando esegui il comando gcloud container bare-metal clusters create.

    Questo crea un cluster utente che applica le regole specificate nel Criterio di Autorizzazione binaria, noto anche come project-singleton . Questo criterio è associato al tuo progetto Google Cloud e specifica le regole per gestire il deployment delle immagini container. Per maggiori informazioni 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 saperne di più sui criteri e sulle regole di Autorizzazione binaria, consulta Panoramica di Autorizzazione binaria.

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

Se hai un cluster con versione 1.16 o successiva esistente, puoi abilitare o disattiva Autorizzazione binaria in qualsiasi momento, utilizzando bmctl o con gcloud CLI.

bmctl

  • Per attivarla:

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

      ...
      ---
      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"
      
    2. 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 cluster kubeconfig.
    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 governare il deployment immagini container. Per ulteriori informazioni sull'utilizzo di bmctl 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:

    Questa funzionalità può essere disattivata impostando evaluationMode su DISABLED o rimuovendo la sezione binaryAuthorization dalle specifiche del cluster. Una volta questa modifica, attendi qualche minuto finché il deployment binauthz-module-deployment nello spazio dei nomi binauthz-system rimosso.

Interfaccia a riga di comando gcloud

  • Per abilitare Autorizzazione binaria per un cluster esistente, aggiungi il metodo --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE flag quando esegui il comando gcloud container bare-metal clusters update.

    Questa operazione aggiorna un cluster utente in modo che Autorizzazione binaria venga applicata le regole specificate nel criterio di Autorizzazione binaria, nota anche come criterio singolo progetto. Questo criterio è associato al tuo progetto Google Cloud e specifica le regole per gestire il deployment in formato Docker. Per ulteriori informazioni sull'utilizzo di gcloud CLI per aggiornare un per il cluster utente, gcloud container bare-metal clusters update nel riferimento della gcloud CLI. Per saperne di più sui criteri e sulle regole di Autorizzazione binaria, consulta Panoramica di Autorizzazione binaria.

  • Per disabilitare Autorizzazione binaria per un cluster esistente, esegui il comando il comando gcloud container bare-metal clusters update con Flag --binauthz-evaluation-mode=DISABLED.

Risoluzione dei problemi

Se non completi tutti i prerequisiti, non potrai: rilevare precocemente un problema. Se Autorizzazione binaria inizia a non riuscire per rispondere alle richieste di creazione di pod, controlla status.conditions ReplicaSet esistente. Un messaggio come il seguente indica che c'è un problema con il 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