Visualizza audit log per GKE

Questa pagina mostra come visualizzare le informazioni sullo stato del deployment e sull'applicazione dei criteri in Cloud Audit Logs.

Per ulteriori informazioni sulla terminologia dell'interfaccia utente di Cloud Audit Logs utilizzata in questa pagina, consulta Visualizzazione dei log.

Puoi valutare la postura di sicurezza delle applicazioni, inclusa l'applicazione dei criteri di Autorizzazione binaria nei prodotti interdipendenti Google Cloud, in un'unica dashboard. Per scoprire di più, consulta Monitoraggio della sicurezza.

Panoramica

Quando utilizzi Autorizzazione binaria per eseguire il deployment di un'immagine container in Google Kubernetes Engine (GKE), GKE scrive i dettagli del deployment negli audit log in Google Cloud Observability. Queste voci degli audit log includono i messaggi di stato dell'applicazione. Puoi visualizzare queste voci di log nella console Google Cloud o nella riga di comando utilizzando il comando gcloud logging read.

Per le ricerche più avanti in questa guida, accederai a Cloud Audit Logs e selezionerai il progetto con gli eventi che vuoi visualizzare.

Per l'accesso generale a Cloud Audit Logs, segui questi passaggi:

  1. Vai alla pagina Google Cloud Observability Logging > Log (Esplora log) nella console Google Cloud:

    Vai a Esplora log

  2. Scegli il progetto Google Cloud per il quale vuoi visualizzare Cloud Audit Logs.

Messaggi di stato dell'applicazione forzata

GKE scrive i messaggi nell'audit log per le seguenti condizioni di applicazione:

  • Deployment bloccato: il deployment è stato bloccato a causa del criterio di Autorizzazione binaria.
  • Evento deployment di emergenza: il deployment ha ignorato il controllo dei criteri utilizzando il meccanismo di deployment di emergenza. Per ulteriori informazioni, consulta la sezione Utilizzare il deployment di emergenza.
  • Fail open: il deployment è stato consentito perché il backend di Autorizzazione binaria non era disponibile.
  • Prova: deployment consentito con violazioni dei criteri perché la modalità di prova è stata impostata nel criterio di Autorizzazione binaria.

Eventi di deployment bloccati in Cloud Audit Logs

Quando un'immagine container viene bloccata perché viola un criterio di Autorizzazione binaria, puoi trovare gli eventi di deployment bloccato in Cloud Audit Logs.

Esegui query su Cloud Audit Logs per gli eventi di deployment bloccati

Questa sezione descrive come eseguire query su Cloud Audit Logs per gli eventi di deployment bloccati.

Esplora log

Per visualizzare gli eventi di deployment bloccati in Esplora log di Cloud Audit Logs, segui questi passaggi:

  1. Vai alla pagina Esplora log.

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

    resource.type="k8s_cluster"
    logName:"cloudaudit.googleapis.com%2Factivity"
    (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
     protoPayload.methodName="io.k8s.core.v1.pods.update")
    protoPayload.response.status="Failure"
    (protoPayload.response.reason="VIOLATES_POLICY" OR
    protoPayload.response.reason="Forbidden")
    NOT "kube-system"
    NOT "istio-system"
    

  3. Seleziona l'intervallo di tempo nel selettore dell'intervallo di tempo.

gcloud

Per visualizzare gli eventi di violazione dei criteri dell'ultima settimana in Cloud Audit Logs utilizzando Google Cloud CLI, esegui questo comando:

gcloud logging read --order="desc" --freshness=7d \
  'resource.type="k8s_cluster"
   logName:"cloudaudit.googleapis.com%2Factivity"
   (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
    protoPayload.methodName="io.k8s.core.v1.pods.update")
   protoPayload.response.status="Failure"
   (protoPayload.response.reason="VIOLATES_POLICY" OR
   protoPayload.response.reason="Forbidden")
   NOT "kube-system"
   NOT "istio-system"'

Eventi di deployment di emergenza in Cloud Audit Logs

Autorizzazione binaria consente di eseguire l'override del criterio utilizzando un'etichetta di emergenza nella specifica del pod. Quando viene eseguito il deployment delle immagini con deployment di emergenza, Autorizzazione binaria registra gli eventi del deployment di emergenza in Cloud Audit Logs. La sezione seguente descrive come eseguire query per questi eventi.

Esegui query su Cloud Audit Logs per i pod con deployment di emergenza specificato

Esplora log

Per visualizzare gli eventi del deployment di emergenza in Explorer log di Cloud Audit Logs, segui questi passaggi:

  1. Vai alla pagina Esplora log.

  2. Inserisci quanto segue nella casella query di ricerca:

    resource.type="k8s_cluster"
    logName:"cloudaudit.googleapis.com%2Factivity"
    (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
    protoPayload.methodName="io.k8s.core.v1.pods.update")
    "image-policy.k8s.io/break-glass"
    
  3. Seleziona l'intervallo di tempo nel selettore dell'intervallo di tempo.

gcloud

Per visualizzare gli eventi del deployment di emergenza dell'ultima settimana in Cloud Audit Logs utilizzando gcloud CLI, esegui questo comando:

gcloud logging read --order="desc" --freshness=7d \
  'resource.type="k8s_cluster" AND
  logName:"cloudaudit.googleapis.com%2Factivity" AND
  (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
    protoPayload.methodName="io.k8s.core.v1.pods.update") AND
  "image-policy.k8s.io/break-glass"'

Eventi di fail open in Cloud Audit Logs

Il failover si verifica quando viene tentato il deployment di un'immagine container, l'applicazione di Autorizzazione binaria non è disponibile o si verifica un timeout e il deployment dell'immagine container è consentito.

In questo caso, il risultato della verifica è sconosciuto e viene registrata una voce di log.

Query sugli eventi di fail open di Cloud Audit Logs

Esplora log

Per visualizzare gli eventi di fail open in Esplora log di Cloud Audit Logs, segui questi passaggi:

  1. Vai alla pagina Esplora log.

  2. Inserisci quanto segue nella casella query di ricerca:

    resource.type="k8s_cluster"
    logName:"cloudaudit.googleapis.com%2Factivity"
    (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
     protoPayload.methodName="io.k8s.core.v1.pods.update")
    ("image-policy.k8s.io/failed-open" OR
     "imagepolicywebhook.image-policy.k8s.io/failed-open" OR
     "failed-open.validating.webhook.admission.k8s.io")
    
  3. Seleziona l'intervallo di tempo nel selettore dell'intervallo di tempo.

gcloud

Per visualizzare gli eventi di fail open dell'ultima settimana in Cloud Audit Logs utilizzando gcloud CLI, esegui questo comando:

gcloud logging read --order="desc" --freshness=7d \
  'resource.type="k8s_cluster"
   logName:"cloudaudit.googleapis.com%2Factivity"
   (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
    protoPayload.methodName="io.k8s.core.v1.pods.update")
   ("image-policy.k8s.io/failed-open" OR
    "imagepolicywebhook.image-policy.k8s.io/failed-open" OR
    "failed-open.validating.webhook.admission.k8s.io")'

Eventi di prova in Cloud Audit Logs

La modalità di prova è una modalità di applicazione forzata in un criterio che consente il deployment di immagini non conformi, ma scrive i dettagli relativi al deployment nell'audit log. La modalità di prova consente di testare un criterio nell'ambiente di produzione prima che venga applicato.

Quando un'immagine container non supera i controlli richiesti in un criterio, ma ne è consentito il deployment in modalità di prova, Cloud Audit Logs contiene imagepolicywebhook.image-policy.k8s.io/dry-run: "true".

Esegui query su Cloud Audit Logs per gli eventi di prova

Esplora log

Per visualizzare gli eventi di prova in Esplora log di Cloud Audit Logs, segui questi passaggi:

  1. Vai alla pagina Esplora log.

  2. Inserisci quanto segue nella casella query di ricerca:

    resource.type="k8s_cluster"
    logName:"cloudaudit.googleapis.com%2Factivity"
    (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
     protoPayload.methodName="io.k8s.core.v1.pods.update")
    labels."imagepolicywebhook.image-policy.k8s.io/dry-run"="true"
    
  3. Seleziona l'intervallo di tempo nel selettore dell'intervallo di tempo.

gcloud

Per visualizzare gli eventi di deployment di prova dell'ultima settimana in Cloud Audit Logs utilizzando gcloud CLI, esegui questo comando:

gcloud logging read --order="desc" --freshness=7d \
  'labels."imagepolicywebhook.image-policy.k8s.io/dry-run"="true"'