Afficher les journaux d'audit pour GKE

Cette page explique comment afficher des informations sur l'état du déploiement et sur l'application de la stratégie dans Cloud Audit Logs.

Pour en savoir plus sur la terminologie de l'interface utilisateur de Cloud Audit Logs utilisée sur cette page, consultez la page Afficher les journaux.

Vous pouvez évaluer la stratégie de sécurité de votre application, y compris l'application de la stratégie d'autorisation binaire pour les produits Google Cloud interdépendants dans un seul tableau de bord. Pour en savoir plus, consultez la section Surveillance de la sécurité.

Présentation

Lorsque vous utilisez l'autorisation binaire pour déployer une image de conteneur sur Google Kubernetes Engine (GKE), ce dernier écrit des informations sur le déploiement dans les journaux d'audit dans Google Cloud Observability. Ces entrées de journal d'audit incluent des messages d'état d'application. Vous pouvez afficher ces entrées de journal dans Google Cloud Console ou sur la ligne de commande à l'aide de la commande gcloud logging read.

Pour les recherches ultérieures de ce guide, vous accédez à Cloud Audit Logs et sélectionnez le projet contenant les événements que vous souhaitez afficher.

Pour un accès général à Cloud Audit Logs, procédez comme suit :

  1. Accédez à la page Logging > Journaux (Explorateur de journaux) de Google Cloud Observability dans la console Google Cloud :

    Accéder à l'explorateur de journaux

  2. Choisissez le projet Google Cloud pour lequel vous souhaitez afficher Cloud Audit Logs.

Messages d'état d'application

GKE écrit des messages dans le journal d'audit pour les conditions d'application suivantes :

  • Déploiement bloqué : le déploiement a été bloqué en raison de la stratégie d'autorisation binaire.
  • Événement de type "bris de glace" : le déploiement a contourné la vérification de la stratégie à l'aide d'un mécanisme appelé "bris de glace". Pour en savoir plus, consultez la page Utiliser le mode "bris de glace".
  • Mode "fail open" : le déploiement a été autorisé, car le backend de l'autorisation binaire était indisponible.
  • Simulation : le déploiement a été autorisé, avec des violations des règles, car le mode de simulation était défini dans la stratégie d'autorisation binaire.

Événements de déploiement bloqué dans Cloud Audit Logs

Lorsqu'une image de conteneur est bloquée en raison de violations d'une stratégie d'autorisation binaire, vous pouvez rechercher les événements de déploiement bloqué dans Cloud Audit Logs.

Interroger Cloud Audit Logs pour les événements de déploiement bloqué

Cette section explique comment interroger Cloud Audit Logs pour les événements de déploiement bloqué.

Explorateur de journaux

Pour afficher les événements de déploiement bloqué dans l'explorateur Cloud Audit Logs, procédez comme suit :

  1. Accédez à la page Explorateur de journaux.

  2. Saisissez la requête suivante dans la zone de requête de recherche :

    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. Sélectionnez la période dans le sélecteur de période.

gcloud

Pour afficher à l'aide de Google Cloud CLI les événements de violation de stratégie survenus au cours de la semaine précédente, exécutez la commande suivante :

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

Événements de type "bris de glace" dans Cloud Audit Logs

L'autorisation binaire vous permet de remplacer la stratégie à l'aide d'une étiquette bris de glace dans la spécification du pod. Lorsque les images sont déployées avec le mode "bris de glace", les événements d'autorisation binaire consignent les événements de type "bris de glace" dans les journaux d'audit Cloud. La section suivante décrit comment interroger ces événements.

Interroger Cloud Audit Logs pour les pods avec le mode "bris de glace" spécifié

Explorateur de journaux

Pour afficher les événements de type "bris de glace" dans l'explorateur de journaux Cloud Audit Logs, procédez comme suit :

  1. Accédez à la page Explorateur de journaux.

  2. Saisissez ce qui suit dans la zone de requête de recherche :

    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. Sélectionnez la période dans le sélecteur de période.

gcloud

Pour afficher les événements de type bris de glace de la semaine précédente dans Cloud Audit Logs à l'aide de gcloud CLI, exécutez la commande suivante :

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

Événements de type "fail open" dans Cloud Audit Logs

Ces événements se produisent lors d'une tentative de déploiement d'une image de conteneur, lorsque l'outil d'application de l'autorisation binaire est indisponible ou a expiré, et que le déploiement de l'image de conteneur est autorisé.

Dans ce cas, le résultat de la vérification est inconnu et une entrée de journal est enregistrée.

Interroger Cloud Audit Logs pour les événements de type "fail open"

Explorateur de journaux

Pour afficher les événements de type "fail open" dans l'explorateur de journaux Cloud Audit Logs, procédez comme suit :

  1. Accédez à la page Explorateur de journaux.

  2. Saisissez ce qui suit dans la zone de requête de recherche :

    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. Sélectionnez la période dans le sélecteur de période.

gcloud

Pour afficher les événements de type fail open survenus au cours de la semaine précédente dans Cloud Audit Logs à l'aide de gcloud CLI, exécutez la commande suivante :

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

Événements de simulation dans Cloud Audit Logs

Le mode de simulation est un mode d'application d'une stratégie qui permet de déployer des images non conformes et qui écrit des informations sur le déploiement dans le journal d'audit. Le mode de simulation vous permet de tester une stratégie dans votre environnement de production avant son entrée en vigueur.

Lorsqu'une image de conteneur échoue aux contrôles requis dans une stratégie, mais qu'elle peut être déployée en mode de simulation, Cloud Audit Logs contient imagepolicywebhook.image-policy.k8s.io/dry-run: "true".

Interroger Cloud Audit Logs pour les événements de simulation

Explorateur de journaux

Pour afficher les événements de simulation dans l'explorateur de journaux Cloud Audit Logs, procédez comme suit :

  1. Accédez à la page Explorateur de journaux.

  2. Saisissez ce qui suit dans la zone de requête de recherche :

    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. Sélectionnez la période dans le sélecteur de période.

gcloud

Pour afficher les événements de déploiement dry run de la semaine précédente dans Cloud Audit Logs à l'aide de gcloud CLI, exécutez la commande suivante :

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