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 la suite Google Cloud Operations. 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 la suite d'opérations Google Cloud dans Cloud Console :

    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 "Visionneuse 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 les événements de violation de stratégie de la semaine précédente dans Cloud Audit Logs à l'aide de l'outil de ligne de commande gcloud, 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 le podspec.

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 "Visionneuse 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 l'outil gcloud, 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" 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 "Visionneuse 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, et consignés dans Cloud Audit Logs à l'aide de l'outil gcloud, 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 "Visionneuse 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 de simulation de la semaine précédente dans Cloud Audit Logs à l'aide de l'outil gcloud, exécutez la commande suivante :

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