Utilizzare la convalida continua precedente

Questa pagina è rivolta agli utenti della convalida continua precedente (non più supportata).

La convalida continua precedente è una funzionalità di autorizzazione binaria che controlla periodicamente la conformità delle immagini container associate ai pod in esecuzione al criterio di progetto singolo di autorizzazione binaria. La versione precedente di CV registra i risultati in Cloud Logging.

La CV legacy non termina i pod in esecuzione.

Limitazioni

Il CV precedente presenta i seguenti limiti:

  • La versione precedente di CV supporta solo i pod di cui è stato eseguito il deployment su Google Kubernetes Engine (GKE).
  • La versione precedente di CV non supporta i criteri di autorizzazione binaria che specificano regole specifiche per le identità di servizio Cloud Service Mesh, gli account di servizio Kubernetes o gli spazi dei nomi Kubernetes.

Prima di iniziare

  1. Assicurati di aver configurato l'Autorizzazione binaria per Google Kubernetes Engine in un progetto. CV legacy registra gli eventi di conformità ai criteri provenienti dai pod in tutti i cluster del progetto.

  2. Assicurati che la gcloud CLI sia aggiornata all'ultima versione

Autorizzazioni obbligatorie

I ruoli IAM (Identity and Access Management) includono le autorizzazioni e possono essere assegnati a utenti, gruppi e account di servizio. I seguenti ruoli includono le autorizzazioni elencate per il CV:

Nome ruolo Autorizzazioni CV legacy Descrizione
roles/binaryauthorization.policyEditor binaryauthorization.continuousValidationConfig.update Attiva e disattiva il CV.

Per impostare le autorizzazioni IAM richieste, esegui i seguenti comandi:

PROJECT_NUMBER=$(gcloud projects list \
  --filter="projectId:ATTESTATION_PROJECT_ID" \
  --format="value(PROJECT_NUMBER)")
SERVICE_ACCOUNT="service-$PROJECT_NUMBER@gcp-sa-binaryauthorization.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding ATTESTATION_PROJECT_ID \
    --member="serviceAccount:$SERVICE_ACCOUNT" \
    --role='roles/containeranalysis.occurrences.viewer'

Abilita il CV legacy

Console

Per attivare i CV precedenti utilizzando la console Google Cloud, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Criterio dell'autorizzazione binaria.

    Vai al criterio di Autorizzazione binaria

  2. Fai clic sulla scheda Norme.

  3. Fai clic su Modifica criterio.

  4. Espandi la sezione Impostazioni aggiuntive per i deployment GKE e Anthos.

  5. Seleziona la casella di controllo Abilita convalida continua.

  6. Fai clic su Save Policy (Salva criterio).

API REST

Per attivare i CV precedenti utilizzando l'API REST, procedi nel seguente modo:

  1. Memorizza l'ID progetto:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    Sostituisci DEPLOYER_PROJECT_ID con l'ID del progetto in cui esegui GKE.

  2. Recupera il token OAuth per Google Cloud.

    BEARER_TOKEN=$(gcloud auth print-access-token)
    

    Il token è valido solo per poco tempo.

  3. Abilita il CV legacy:

    curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "true"}}'
    

La versione precedente di CV è ora configurata per registrare gli eventi.

La voce di log di registrazione è simile al seguente esempio:

{
"insertId": "6054e143-0000-2562-aa64-883d24f57e70",
"jsonPayload": {
  "@type": "type.googleapis.com/google.cloud.binaryauthorization.v1beta1.ContinuousValidationEvent",
  "podEvent": {
    "images": [
      {
        "description": "Image <var>IMAGE_NAME@IMAGE_DIGEST</var> denied by
        attestor projects/<var>ATTESTOR_PROJECT_ID</var>/attestors/<var>ATTESTOR_NAME</var>:
        No attestations found that were valid and signed by a key trusted by
        the attestor",
        "image": "<var>IMAGE_NAME@IMAGE_DIGEST</var>",
        "result": "DENY"
      }
    ],
    "verdict": "VIOLATES_POLICY",
    "deployTime": "2021-03-19T17:00:08Z",
    "pod": "<var>POD_NAME</var>"
  }
},
"resource": {
  "type": "k8s_cluster",
  "labels": {
    "cluster_name": "<var>CLUSTER_NAME</var>",
    "location": "<var>CLUSTER_LOCATION</var>",
    "project_id": "<var>DEPLOYER_PROJECT_ID</var>"
  }
},
"timestamp": "2021-03-19T17:15:43.872702342Z",
"severity": "WARNING",
"logName": "projects/<var>DEPLOYER_PROJECY_ID</var>/logs/binaryauthorization.googleapis.com%2Fcontinuous_validation",
"receiveTimestamp": "2021-03-19T17:57:00.432116179Z"
}

Per scoprire come eseguire query sugli eventi CV precedenti, consulta Visualizzare gli eventi CV precedenti in Cloud Logging.

Risoluzione dei problemi

La versione precedente di CV utilizza altri servizi Google Cloud, come Cloud Asset Inventory e Pub/Sub. Nei casi in cui il CV precedente non vada a buon fine, puoi controllare la presenza di errori di Cloud Asset Inventory in Cloud Logging.

Inoltre, il CV legacy crea una risorsa feed denominata binauthz-cv-cai-feed. L'eliminazione o la modifica del feed potrebbe causare il fallimento del CV precedente. Il CV precedente ripristina automaticamente i feed mancanti o alterati, ma potrebbe non riuscire a registrare i risultati fino a quando non lo fa.

Disattiva CV

Console

Per disattivare i CV precedenti utilizzando la console Google Cloud, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Autorizzazione binaria:

    Vai al criterio di Autorizzazione binaria

  2. Fai clic sulla scheda Norme.

  3. Fai clic su Modifica criterio.

  4. Deseleziona la casella di controllo Abilita convalida continua.

  5. Fai clic su Save Policy (Salva criterio).

API REST

Per disattivare i CV precedenti utilizzando l'API REST:

  1. Memorizza l'ID progetto:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    Sostituisci DEPLOYER_PROJECT_ID con l'ID del progetto in cui esegui GKE.

  2. Recupera il token OAuth per Google Cloud.

    BEARER_TOKEN=$(gcloud auth print-access-token)
    

    Il token è valido solo per poco tempo.

  3. Disattiva il CV legacy utilizzando il seguente comando:

    curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "false"}}'
    

Visualizzare gli eventi CV precedenti in Cloud Logging

Dopo aver attivato CV, tutti i pod che violano il criterio di Autorizzazione binaria vengono registrati regolarmente in Cloud Logging.

Queste voci di log contengono il seguente nome:

logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"

Esplora log

Per visualizzare gli eventi CV legacy in Cloud Logging utilizzando Esplora log, segui questi passaggi:

  1. Vai a Esplora log.

  2. Seleziona l'ID progetto in cui hai attivato l'osservabilità di Google Cloud.

  3. Inserisci la seguente query nella casella search-query:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  4. Seleziona l'intervallo di tempo nel selettore dell'intervallo di tempo.

Visualizzatore log legacy

Per visualizzare gli eventi CV precedenti in Cloud Logging utilizzando Logs Explorer, procedi nel seguente modo:

  1. Vai a Esplora log.

  2. Seleziona Torna al visualizzatore log legacy dal menu a discesa Opzioni.

  3. Scegli il progetto Google Cloud in cui hai configurato Google Cloud Observability.

  4. Inserisci la seguente query nella casella di query di ricerca:

    logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
    
  5. Seleziona l'intervallo di tempo nel selettore dell'intervallo di tempo.

gcloud

Per visualizzare gli eventi CV precedenti della settimana precedente in Cloud Logging utilizzando gcloud, esegui il seguente comando:

gcloud logging read --order="desc" --freshness=7d \
  'logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"'

Passaggi successivi