Utilizza la convalida continua legacy

Questa pagina è destinata agli utenti di una convalida continua precedente (CV legacy) (deprecata).

La convalida continua legacy è una funzionalità di Autorizzazione binaria che controlla periodicamente le immagini container associate ai pod in esecuzione per garantire la conformità continua il criterio del singleton dei progetti di Autorizzazione binaria. Risultati dei log di CV legacy in Cloud Logging.

Il CV legacy non termina i pod in esecuzione.

Limitazioni

Il CV legacy ha le seguenti limitazioni:

  • CV legacy supporta solo i pod di cui è stato eseguito il deployment su Google Kubernetes Engine (GKE).
  • Il CV legacy non supporta i criteri di Autorizzazione binaria che specificano regole specifiche per Identità di servizio Cloud Service Mesh, account di servizio Kubernetes o Kubernetes spazi dei nomi.

Prima di iniziare

  1. Assicurati di aver configurato Autorizzazione binaria per Google Kubernetes Engine in un progetto. eventi di conformità ai criteri dei log CV legacy 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 autorizzazioni per CV:

Nome ruolo Autorizzazioni CV precedenti 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'

Abilita CV precedente

Console

Per abilitare CV legacy utilizzando la console Google Cloud, procedi come segue seguenti:

  1. Nella console Google Cloud, vai ad Autorizzazione binaria. Norme.

    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 la visualizzazione continua precedente utilizzando l'API REST, segui questi passaggi:

  1. Archivia il tuo ID progetto:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    Sostituisci DEPLOYER_PROJECT_ID con l'ID del nel 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. Abilita CV precedente:

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

CV legacy è 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 per gli eventi CV legacy, consulta Visualizzare gli eventi CV legacy su Cloud Logging.

Risoluzione dei problemi

CV legacy utilizza altri servizi Google Cloud, come Cloud Asset Inventory e Pub/Sub. Nella casi in cui CV legacy non vanno a buon fine, puoi verificare Cloud Asset Inventory in Cloud Logging.

Inoltre, il CV precedente crea una risorsa del feed denominata binauthz-cv-cai-feed. Eliminazione in corso... o la modifica del feed potrebbe causare un errore nel CV precedente. Ripristina automaticamente un CV legacy feed mancanti o alterati, ma può non riuscire a registrare i risultati finché non lo fa.

Disattiva CV

Console

Per disabilitare un CV precedente 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 un CV precedente utilizzando l'API REST, segui questi passaggi:

  1. Archivia il tuo ID progetto:

    DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
    

    Sostituisci DEPLOYER_PROJECT_ID con l'ID del nel 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 un CV precedente 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 legacy in Cloud Logging

Dopo aver abilitato la CV, registra regolarmente tutti i pod violino il criterio di Autorizzazione binaria per Cloud Logging.

Queste voci di log contengono il seguente nome di log:

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

Esplora log

Per visualizzare gli eventi CV legacy in Cloud Logging utilizzando Esplora log, esegui le seguenti:

  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-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 legacy in Cloud Logging utilizzando Esplora log, procedi nel seguente modo:

  1. Vai a Esplora log.

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

  3. Scegli il progetto Google Cloud per cui configuri Google Cloud Observability.

  4. Inserisci la seguente query 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 legacy 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