Utilizzare la convalida continua legacy

Questa pagina è destinata agli utenti della convalida continua legacy (CV legacy) (obsoleta).

La convalida continua legacy è una funzionalità di Autorizzazione binaria che controlla periodicamente le immagini container associate ai pod in esecuzione per verificare la conformità continua alla policy singleton del progetto di Autorizzazione binaria. La CV legacy registra i risultati in Cloud Logging.

La CV legacy non termina i pod in esecuzione.

Limitazioni

La CV legacy presenta le seguenti limitazioni:

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

Prima di iniziare

  1. Assicurati di aver configurato Autorizzazione binaria per Google Kubernetes Engine in un progetto. La CV legacy registra gli eventi di conformità alle policy dei pod in tutti i cluster del progetto.

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

Autorizzazioni obbligatorie

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

Nome ruolo Autorizzazioni CV legacy Descrizione
roles/binaryauthorization.policyEditor binaryauthorization.continuousValidationConfig.update Abilita e disabilita la 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 la CV legacy

Console

Per abilitare la CV legacy utilizzando la Google Cloud console, procedi nel seguente modo:

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

    Vai alla policy di Autorizzazione binaria

  2. Fai clic sulla scheda Policy.

  3. Fai clic su Modifica policy.

  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 Salva policy.

API REST

Per abilitare la CV legacy 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 un breve periodo di tempo.

  3. Abilita la 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 CV legacy è ora configurata per registrare gli eventi.

La voce di log di Logging è 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 per gli eventi della CV legacy, vedi Visualizzare gli eventi della CV legacy in Cloud Logging.

Risoluzione dei problemi

La CV legacy utilizza altri Google Cloud servizi, come Cloud Asset Inventory e Pub/Sub. Nei casi in cui la CV legacy non riesce, puoi verificare la presenza di errori di Cloud Asset Inventory in Cloud Logging.

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

Disabilita la CV

Console

Per disabilitare la CV legacy utilizzando la Google Cloud console, procedi nel seguente modo:

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

    Vai alla policy di Autorizzazione binaria

  2. Fai clic sulla scheda Policy.

  3. Fai clic su Modifica policy.

  4. Deseleziona la casella di controllo Abilita convalida continua.

  5. Fai clic su Salva policy.

API REST

Per disabilitare la CV legacy 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 un breve periodo di tempo.

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

Visualizza gli eventi della CV legacy in Cloud Logging

Dopo aver abilitato la CV, questa registra regolarmente in Cloud Logging tutti i pod che violano la policy 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 della CV legacy in Cloud Logging utilizzando Esplora log, procedi nel seguente modo:

  1. Vai a Esplora log.

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

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

  1. Vai a Esplora log.

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

  3. Scegli il Google Cloud progetto 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 della CV legacy dell'ultima settimana in Cloud Logging utilizzando gcloud, esegui il seguente comando:

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

Passaggi successivi