Utilizza la convalida continua legacy

Questa pagina è destinata agli utenti di CV legacy.

La convalida continua (CV) ora supporta i criteri della piattaforma con i controlli. Se non hai mai utilizzato il CV, ti consigliamo di farlo con i criteri della piattaforma. Se utilizzi un CV legacy, ti consigliamo di eseguire l'upgrade dei criteri del singolo progetto ai criteri della piattaforma.

Il CV è una funzionalità di Autorizzazione binaria che controlla periodicamente le immagini container associate ai pod in esecuzione per garantire la conformità continua al criterio singleton del progetto di Autorizzazione binaria. Il CV registra i risultati in Cloud Logging.

Il CV non termina i pod in esecuzione.

Limitazioni

Il CV presenta le seguenti limitazioni:

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

Prima di iniziare

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

  2. Assicurati che gcloud CLI sia aggiornato all'ultima versione

Autorizzazioni obbligatorie

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

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

Per impostare le autorizzazioni IAM richieste, esegui questi 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'

Attiva CV precedente

Console

Per abilitare il CV utilizzando la console Google Cloud, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Criteri di 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 abilitare il CV 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. Richiedi il token OAuth per Google Cloud.

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

    Il token è valido solo per un breve periodo di tempo.

  3. Attiva CV:

    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"}}'
    

Il CV è ora configurato per registrare gli eventi.

La voce di log di Logging è simile all'esempio seguente:

{
"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 informazioni su come eseguire query sugli eventi CV, consulta Visualizzare gli eventi CV su Cloud Logging.

Risoluzione dei problemi

CV utilizza altri servizi Google Cloud, come Cloud Asset Inventory e Pub/Sub. Nel caso in cui il CV non vada a buon fine, puoi verificare la presenza di errori in Cloud Asset Inventory in Cloud Logging.

Inoltre, il CV crea una risorsa di feed denominata binauthz-cv-cai-feed. L'eliminazione o la modifica del feed potrebbe causare un errore nel CV. Il CV 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 il CV 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 disabilitare il CV 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. Richiedi il token OAuth per Google Cloud.

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

    Il token è valido solo per un breve periodo di tempo.

  3. Disabilita il CV 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"}}'
    

Visualizza gli eventi CV in Cloud Logging

Una volta abilitato il CV, registra regolarmente su Cloud Logging tutti i pod che violano il criterio di Autorizzazione binaria.

Queste voci di log contengono il seguente nome di log:

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

Esplora log

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

  1. Vai a Esplora log.

  2. Seleziona l'ID progetto in cui hai abilitato Google Cloud Observability.

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

    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 in Cloud Logging utilizzando Esplora log, segui questi passaggi:

  1. Vai a Esplora log.

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

  3. Scegli il progetto Google Cloud per cui vuoi configurare l'osservabilità di Google Cloud.

  4. Inserisci la query seguente nella casella della 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 dell'ultima settimana in Cloud Logging utilizzando gcloud, esegui questo comando:

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

Passaggi successivi