Audit-Logs ansehen

Auf dieser Seite wird gezeigt, wie Sie Informationen zum Deployment-Status und zur Richtlinienerzwingung in Cloud Logging aufrufen. Weitere Informationen zu der auf dieser Seite verwendeten Cloud Logging-Terminologie finden Sie unter Einfache Logabfragen.

Übersicht

Wenn Sie mit der Binärautorisierung ein Container-Image in Google Kubernetes Engine (GKE) bereitstellen, schreibt GKE Details zum Deployment in die Audit-Logs der Operations-Suite von Google Cloud. Diese Audit-Logeinträge enthalten Nachrichten zum Erzwingungsstatus. Sie können diese Logeinträge in der Google Cloud Console oder in der Befehlszeile mit dem Befehl gcloud logging read aufrufen.

Für alle folgenden Suchanfragen greifen Sie auf Cloud Logging zu und wählen das Projekt mit den Ereignissen aus, die Sie aufrufen möchten.

Gehen Sie für den allgemeinen Zugriff auf Cloud Logging so vor:

  1. Rufen Sie in der Cloud Console die Seite Logging > Logs (Loganzeige) der Operations-Suite von Google Cloud auf:

    Loganzeige aufrufen

  2. Wählen Sie das Google Cloud-Projekt aus, für das Sie Cloud Logging aufrufen möchten.

Statusmeldungen zur Durchsetzung

GKE schreibt Nachrichten für die folgenden Erzwingungsbedingungen in das Audit-Log:

  • Blockiertes Deployment: Das Deployment wurde aufgrund einer Richtlinie der Binärautorisierung blockiert.
  • Break-Glass-Ereignis: Beim Deployment wurde die Richtlinienprüfung mit dem Break-Glass-Mechanismus umgangen. Weitere Informationen finden Sie unter Break-Glass verwenden.
  • Fail-Open: Das Deployment wurde zugelassen, da das Back-End für die Binärautorisierung nicht verfügbar war.
  • Probelauf: Das Deployment wurde mit Richtlinienverstößen zugelassen, da in der Binärautorisierungsrichtlinie der Probelaufmodus festgelegt wurde.

Blockierte Deployment-Ereignisse in Cloud Logging

Wenn ein Container-Image aufgrund eines Verstoßes gegen eine Binärautorisierungsrichtlinie blockiert wird, schreibt GKE Folgendes in das Audit-Log für die Kubernetes Cluster-Ressource (k8s_cluster):

protoPayload.response.reason: "Forbidden"
protoPayload.response.status: "Failure"

Cloud Logging nach blockierten Deployment-Ereignissen abfragen

   NOT "kube-system"
   NOT "istio-system"

Loganzeige (klassisch) von Cloud Logging

So rufen Sie Ereignisse zu blockierten Deployments in der Loganzeige (klassisch) von Cloud Logging auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. Wählen Sie das Google Cloud-Projekt aus, für das Sie Cloud Logging-Einträge aufrufen möchten.

  3. Wählen Sie im Drop-down-Menü basic selector die Option Kubernetes Cluster aus.

  4. Wählen Sie im Drop-down-Menü Log selector die Option cloudaudit.googleapis.com/activity aus.

  5. Geben Sie in das Feld search-query die folgende Abfrage ein:

    FAILURE
    NOT "kube-system"
    NOT "istio-system"
    
  6. Wählen Sie den Zeitraum unter time-range selector aus.

Loganzeige von Cloud Logging (Vorschau)

So rufen Sie Ereignisse zu blockierten Deployments in der Loganzeige (Vorschau) von Cloud Logging auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. Wählen Sie in der klassischen Ansicht das Versionsauswahlmenü aus und ändern Sie die Version der Loganzeige von Klassisch in Vorschau der neuen Loganzeige ansehen.

  3. Geben Sie die folgende Abfrage in das Feld search-query ein:

    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"
    

    Blockierte Deployment-Ereignisse in Cloud Logging aufrufen

  4. Wählen Sie den Zeitraum unter time-range selector aus.

Befehlszeile

So rufen Sie mithilfe der Befehlszeile die Ereignisse der letzten Woche in Cloud Logging auf:

gcloud beta logging read --order="desc" --freshness=7d \
  'resource.type="k8s_cluster" AND
  logName:"cloudaudit.googleapis.com%2Factivity" AND
  protoPayload.response.status="FAILURE"'

Break-Glass-Ereignisse in Cloud Logging

Mit der Binärautorisierung können Sie die Richtlinie mit einer Break-Glass-Anmerkung überschreiben.

Wenn ein Image die erforderlichen Prüfungen in einer Binärautorisierungsrichtlinie nicht besteht, aber durch eine Richtlinienüberschreibung bereitgestellt werden kann, schreibt GKE die folgenden Labels in das Audit-Log für die Kubernetes-Cluster-Ressource (k8s_cluster):

imagepolicywebhook.image-policy.k8s.io/break-glass: "true"
imagepolicywebhook.image-policy.k8s.io/overridden-verification-result: "'IMAGE_PATH@IMAGE_DIGEST': Denied by DENIED_REASON

Dabei gilt:

  • IMAGE_PATH ist der voll qualifizierte Pfad zum Container-Image, das Sie bereitstellen wollten (z. B. gcr.io/example-project/quickstart-image).
  • IMAGE_DIGEST ist der eindeutige Digest des Container-Images.
  • DENIED_REASON ist der Grund für die Ablehnung des Deployments durch die Binärautorisierungserzwingung.

Cloud Logging nach Break-Glass-Ereignisse abfragen

Loganzeige (klassisch) von Cloud Logging

So rufen Sie Break-Glass-Ereignisse in der Loganzeige (klassisch) von Cloud Logging auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. Wählen Sie das Google Cloud-Projekt aus, für das Sie Cloud Logging-Einträge aufrufen möchten.

  3. Wählen Sie im Drop-down-Menü basic selector die Option Kubernetes Cluster aus.

  4. Wählen Sie im Drop-down-Menü Log selector die Option cloudaudit.googleapis.com/activity aus.

  5. Geben Sie in das Feld search-query die folgende Abfrage ein:

    "imagepolicywebhook.image-policy.k8s.io/break-glass"
    
  6. Wählen Sie den Zeitraum unter time-range selector aus.

Loganzeige von Cloud Logging (Vorschau)

So rufen Sie Break-Glass-Ereignisse in der Loganzeige von Cloud Logging (Vorschau) auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. Wählen Sie in der klassischen Ansicht das Versionsauswahlmenü aus und ändern Sie die Version der Loganzeige von Klassisch in Vorschau der neuen Loganzeige ansehen.

  3. Geben Sie die folgende Abfrage in das Feld search-query ein:

    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/break-glass"="true"
    

    Break-Glass-Deployments in Cloud Logging aufrufen

  4. Wählen Sie den Zeitraum unter time-range selector aus.

Befehlszeile

So rufen Sie in Cloud Logging Break-Glass-Ereignisse der letzten Woche mit der Befehlszeile auf:

gcloud beta 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" AND
  labels."imagepolicywebhook.image-policy.k8s.io/break-glass"="true"'

Fail-Open-Ereignisse in Cloud Logging

Fail-Open tritt auf, wenn das Deployment des Container-Images versucht wird, die Binärautorisierungserzwingung aber nicht verfügbar ist bzw. die Zeit überschreitet und das Deployment des Container-Images zugelassen wird.

In diesem Fall wird das Bestätigungsergebnis nicht erkannt und ein Logeintrag wird gespeichert.

Fail-Open-Ereignisse von Cloud Logging abfragen

Loganzeige (klassisch) von Cloud Logging

So rufen Sie Fail-Open-Ereignisse in der Loganzeige (klassisch) von Cloud Logging auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. Wählen Sie das Google Cloud-Projekt aus, für das Sie Cloud Logging-Einträge aufrufen möchten.

  3. Wählen Sie im Drop-down-Menü basic selector die Option Kubernetes Cluster aus.

  4. Wählen Sie im Drop-down-Menü Log selector die Option cloudaudit.googleapis.com/activity aus.

  5. Geben Sie in das Feld search-query die folgende Abfrage ein:

    "image-policy.k8s.io/failed-open"
    
  6. Wählen Sie den Zeitraum unter time-range selector aus.

Loganzeige von Cloud Logging (Vorschau)

So rufen Sie Fail-Open-Ereignisse in der Loganzeige (Vorschau) von Cloud Logging auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. Wählen Sie in der klassischen Ansicht das Versionsauswahlmenü aus und ändern Sie die Version der Loganzeige von Klassisch in Vorschau der neuen Loganzeige ansehen.

  3. Geben Sie die folgende Abfrage in das Feld search-query ein:

    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"
    

    Fail-Open-Deploymentss in Cloud Logging aufrufen

  4. Wählen Sie den Zeitraum unter time-range selector aus.

Befehlszeile

So rufen Sie Fail-Open-Ereignisse der letzten Woche in Cloud Logging über die Befehlszeile auf:

gcloud beta 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" AND
  labels."alpha.image-policy.k8s.io/failed-open"="true"'

Probelaufereignisse in Cloud Logging

Der Probelaufmodus ist ein Erzwingungsmodus einer Richtlinie, der das Deployment von nicht konformen Images ermöglicht. Dabei werden Details zum Deployment in das Audit-Log geschrieben. Im Probelaufmodus können Sie eine Richtlinie in Ihrer Produktionsumgebung testen, bevor sie wirksam wird.

Wenn ein Container-Image die erforderlichen Prüfungen einer Richtlinie nicht besteht, aber im Probelaufmodus bereitgestellt werden kann, schreibt GKE Folgendes in das Audit-Log für die Kubernetes-Cluster-Ressource (k8s_cluster):

imagepolicywebhook.image-policy.k8s.io/dry-run: "true"
imagepolicywebhook.image-policy.k8s.io/overridden-verification-result: "'REGISTRY_PATH': Image REGISTRY_PATH denied by projects/PROJECT_ID/attestors/ATTESTOR: Attestor cannot attest to an image deployed by tag

Dabei gilt:

  • REGISTRY_PATH ist der voll qualifizierte Pfad zum Image in der Container-Image-Registry.
  • ATTESTOR ist der voll qualifizierte Pfad zum Attestierer in der Binärautorisierung im Format.

Cloud Logging nach Probelaufereignissen abfragen

Loganzeige (klassisch) von Cloud Logging

So rufen Sie Ereignisse von Probelauf-Deployments in der Loganzeige (klassisch) von Cloud Logging auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. Wählen Sie das Google Cloud-Projekt aus, für das Sie Cloud Logging-Einträge aufrufen möchten.

  3. Wählen Sie im Drop-down-Menü basic selector die Option Kubernetes Cluster aus.

  4. Wählen Sie im Drop-down-Menü Log selector die Option cloudaudit.googleapis.com/activity aus.

  5. Geben Sie in das Feld search-query die folgende Abfrage ein:

    "imagepolicywebhook.image-policy.k8s.io/dry-run"
    
  6. Wählen Sie den Zeitraum unter time-range selector aus.

Loganzeige von Cloud Logging (Vorschau)

So rufen Sie Ereignisse von Probelauf-Deployments in der Loganzeige (Vorschau) von Cloud Logging auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. Wählen Sie in der klassischen Ansicht das Versionsauswahlmenü aus und ändern Sie die Version der Loganzeige von Klassisch in Vorschau der neuen Loganzeige ansehen.

  3. Geben Sie die folgende Abfrage in das Feld search-query ein:

    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"
    

    Probelauf-Deployments in Cloud Logging aufrufen

  4. Wählen Sie den Zeitraum unter time-range selector aus.

Befehlszeile

So rufen Sie Ereignisse von Probelauf-Deployments der letzten Woche mithilfe der Befehlszeile in Cloud Logging auf:

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