Audit-Logs für GKE ansehen

Auf dieser Seite wird gezeigt, wie Sie Informationen zum Bereitstellungsstatus und zur Richtlinienerzwingung in Cloud-Audit-Logs aufrufen.

Weitere Informationen zur Terminologie für die Benutzeroberfläche von Cloud-Audit-Logs, die auf dieser Seite verwendet wird, finden Sie unter Logs ansehen.

Sie können den Sicherheitsstatus Ihrer Anwendung einschließlich der Durchsetzung von Richtlinien für die Binärautorisierung über mehrere abhängige Google Cloud-Produkte hinweg in einem einzigen Dashboard bewerten. Weitere Informationen finden Sie unter Sicherheitsmonitoring.

Überblick

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 die Suchvorgänge später in dieser Anleitung greifen Sie auf Cloud-Audit-Logs zu und wählen das Projekt mit den Ereignissen aus, die Sie aufrufen möchten.

Gehen Sie so vor, um allgemeinen Zugriff auf Cloud-Audit-Logs zu erhalten:

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

    Zum Log-Explorer

  2. Wählen Sie das Google Cloud-Projekt aus, für das Sie Cloud-Audit-Logs 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 Bereitstellungsereignisse in Cloud-Audit-Logs

Wenn ein Container-Image aufgrund eines Verstoßes gegen eine Binärautorisierungsrichtlinie blockiert wird, finden Sie die Ereignisse der blockierten Bereitstellung in Cloud-Audit-Logs.

Cloud-Audit-Logs für blockierte Bereitstellungsereignisse abfragen

In diesem Abschnitt wird beschrieben, wie Cloud-Audit-Logs nach blockierten Bereitstellungsereignissen abgefragt werden.

Log-Explorer

So rufen Sie blockierte Bereitstellungsereignisse im Log-Explorer von Cloud-Audit-Logs auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. 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"
    (protoPayload.response.reason="VIOLATES_POLICY" OR
    protoPayload.response.reason="Forbidden")
    NOT "kube-system"
    NOT "istio-system"
    

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

gcloud

Führen Sie den folgenden Befehl aus, um mithilfe von gcloud-Befehlszeilenereignisse die Ereignisse der letzten Woche in Cloud-Audit-Logs aufzurufen:

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

Break-Glass-Ereignisse in Cloud-Audit-Logs

Mit der Binärautorisierung können Sie die Richtlinie mit einem Break-Glass-Label in der Podspezifikation überschreiben.

Cloud-Audit-Logs für Pods mit angegebenen Break-Glass abfragen

Log-Explorer

So rufen Sie Break-Glass-Ereignisse im Log-Explorer von Cloud-Audit-Logs auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. 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/break-glass"
    
  3. Wählen Sie den Zeitraum unter time-range selector aus.

gcloud

Führen Sie den folgenden Befehl aus, um Break-Glass-Ereignisse aus der letzten Woche in Cloud-Audit-Logs mit dem gcloud-Tool aufzurufen:

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" AND
  "image-policy.k8s.io/break-glass"'

Fail-Open-Ereignisse in Cloud-Audit-Logs

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-Audit-Logs abfragen

Log-Explorer

So rufen Sie Fail-Open-Ereignisse im Log-Explorer von Cloud-Audit-Logs auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. 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" OR
     "imagepolicywebhook.image-policy.k8s.io/failed-open" OR
     "failed-open.validating.webhook.admission.k8s.io")
    
  3. Wählen Sie den Zeitraum unter time-range selector aus.

gcloud

Führen Sie den folgenden Befehl aus, um Fail-Open-Ereignisse der letzten Woche in Cloud-Audit-Logs mit dem gcloud-Tool aufzurufen:

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

Probelaufereignisse in Cloud-Audit-Logs

Der Probelaufmodus ist ein Erzwingungsmodus einer Richtlinie, der die Bereitstellung von nicht konformen Images ermöglicht. Dabei werden Details zur Bereitstellung 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 in einer Richtlinie nicht besteht, aber im Probelaufmodus bereitgestellt werden kann, enthält Cloud-Audit-Logs imagepolicywebhook.image-policy.k8s.io/dry-run: "true".

Cloud-Audit-Logs für Probelaufereignisse abfragen

Log-Explorer

So rufen Sie Probelaufereignisse im Log-Explorer von Cloud-Audit-Logs auf:

  1. Öffnen Sie die Seite Loganzeige.

  2. 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"
    
  3. Wählen Sie den Zeitraum unter time-range selector aus.

gcloud

Führen Sie den folgenden Befehl aus, um mit dem gcloud-Tool Probelaufbereitstellungsereignisse der letzten Woche in Cloud-Audit-Logs aufzurufen:

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