Guida rapida: monitora la sicurezza dei pod con la convalida continua

Scopri come iniziare a utilizzare la convalida continua (CV) di Autorizzazione binaria con le norme basate sui controlli. In questa guida rapida, utilizzi i seguenti controlli�� CV per convalidare continuamente i pod in esecuzione per le seguenti condizioni:

  • Directory attendibile: Verifica che le immagini associate al pod si trovino in una o più directory attendibili che specifichi nelle norme.
  • Aggiornamento delle immagini: verifica che le immagini del pod siano state caricate entro un numero di giorni specificato nella norma.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Installa Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Creare un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  6. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  7. Abilita le API Autorizzazione binaria e Google Kubernetes Engine:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable container.googleapis.com binaryauthorization.googleapis.com
  8. Installa Google Cloud CLI.

  9. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  10. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  11. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Creare un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  12. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  13. Abilita le API Autorizzazione binaria e Google Kubernetes Engine:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable container.googleapis.com binaryauthorization.googleapis.com
  14. Installa lo strumento a riga di comando kubectl.
  15. Se i criteri di Autorizzazione binaria e i cluster GKE si trovano in progetti diversi, assicurati che Autorizzazione binaria sia abilitata in entrambi i progetti.

Creare una policy della piattaforma

Per configurare una policy della piattaforma GKE CV, procedi nel seguente modo:

  1. Crea il file YAML della policy della piattaforma:

    cat << EOF > /tmp/my-policy.yaml
    gkePolicy:
      checkSets:
      - checks:
        - trustedDirectoryCheck:
            trustedDirPatterns:
            - us-central1-docker.pkg.dev/my-project/my-directory
          displayName: My trusted directory check
        - imageFreshnessCheck:
            maxUploadAgeDays: 30
          displayName: My image freshness check
        displayName: My trusted directory and image freshness check set
    EOF
    

    Questa policy verifica la presenza delle seguenti condizioni:

    • Le immagini dei pod sono archiviate nel repository Artifact Registry denominato us-central1-docker.pkg.dev/my-project/my-directory.

    • Le immagini dei pod sono state caricate nei repository Artifact Registry o Container Registry negli ultimi 30 giorni.

  2. Crea la policy della piattaforma:

    gcloud beta container binauthz policy create POLICY_ID \
        --platform=gke \
        --policy-file=/tmp/my-policy.yaml \
        --project=POLICY_PROJECT_ID
    

    Sostituisci quanto segue:

    • POLICY_ID: un ID a tua scelta
    • POLICY_PROJECT_ID: l'ID progetto della policy

Crea o aggiorna un cluster

Per abilitare CV su un cluster, puoi creare un nuovo cluster o aggiornare un cluster esistente.

  • Per creare un cluster con il criterio della piattaforma basato sul controllo abilitato, esegui questo comando:

    gcloud beta container clusters create CLUSTER_NAME \
        --location=LOCATION \
        --binauthz-evaluation-mode=POLICY_BINDINGS \
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID \
        --project=CLUSTER_PROJECT_ID
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster
    • LOCATION: la posizione, ad esempio: us-central1 o asia-south1
    • POLICY_PROJECT_ID: l'ID del progetto in cui è archiviata la policy
    • POLICY_ID: l'ID della policy
    • CLUSTER_PROJECT_ID: l'ID progetto del cluster

    Attendi la creazione del cluster.

  • Per aggiornare un cluster esistente con i criteri basati su controlli abilitati, esegui il seguente comando.

    gcloud beta container clusters update CLUSTER_NAME \
        --location=LOCATION \
        --binauthz-evaluation-mode=POLICY_BINDINGS \
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID \
        --project=CLUSTER_PROJECT_ID
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster
    • LOCATION: la posizione, ad esempio: us-central1 o asia-south1
    • POLICY_PROJECT_ID: l'ID del progetto in cui è archiviata la policy
    • POLICY_ID: l'ID della policy
    • CLUSTER_PROJECT_ID: l'ID progetto del cluster

    Attendi l'aggiornamento del cluster.

Esegui il deployment di un'immagine

  1. Recupera la credenziale per kubectl:

    gcloud container clusters get-credentials CLUSTER_NAME
    
  2. Esegui il deployment di un'immagine:

    kubectl run hello-app