Consulter les journaux d'audit

Cette page explique comment afficher des informations sur l'état du déploiement et sur l'application de la stratégie dans Cloud Logging. Pour en savoir plus sur la terminologie Cloud Logging utilisée dans cette page, consultez la page Afficher les journaux.

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 des opérations Google Cloud. 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 toutes les recherches ci-dessous, vous accéderez à Cloud Logging et sélectionnerez le projet contenant les événements que vous souhaitez afficher.

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

  1. Accédez à la page Logging > Journaux (Visionneuse de journaux) de la suite des opérations Google Cloud dans Cloud Console :

    Accéder à la page "Visionneuse de journaux"

  2. Choisissez le projet Google Cloud pour lequel vous souhaitez afficher les informations Cloud Logging.

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 Logging

Lorsqu'une image de conteneur est bloquée en raison de violations d'une stratégie d'autorisation binaire, GKE écrit ce qui suit dans le journal d'audit de la ressource Cluster Kubernetes (k8s_cluster) :

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

Interroger Cloud Logging pour les événements de déploiement bloqué

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

Visionneuse Cloud Logging (classique)

Pour afficher les événements de déploiement bloqué dans la visionneuse Cloud Logging (classique) :

  1. Accédez à la page "Visionneuse de journaux".

  2. Choisissez le projet Google Cloud pour lequel vous souhaitez afficher les entrées Cloud Logging.

  3. Dans le menu déroulant de sélection de base , sélectionnez Kubernetes Cluster.

  4. Dans le menu déroulant de sélection de journaux , sélectionnez cloudaudit.googleapis.com/activity.

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

    FAILURE
    NOT "kube-system"
    NOT "istio-system"
    
  6. Sélectionnez la période dans le sélecteur de période.

Visionneuse Cloud Logging (aperçu)

Pour afficher les événements de déploiement bloqué dans la visionneuse Cloud Logging (aperçu) :

  1. Accédez à la page "Visionneuse de journaux".

  2. Dans la vue classique, sélectionnez le menu de l'outil de sélection des versions, puis passez de la version Classic (Classique) de la visionneuse de journaux à la version Aperçu de la nouvelle visionneuse de journaux.

  3. 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"
    

    Afficher les événements de déploiement bloqué dans Cloud Logging

  4. Sélectionnez la période dans le sélecteur de période.

Ligne de commande

Pour afficher à l'aide de la CLI les événements de violation de stratégie survenus au cours de la semaine précédente, et consignés dans Cloud Logging :

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

Événements de type "bris de glace" dans Cloud Logging

L'autorisation binaire vous permet de remplacer la stratégie à l'aide d'une annotation bris de glace.

Lorsqu'une image ne réussit pas les contrôles requis dans une stratégie d'autorisation binaire, mais qu'elle peut être déployée du fait que la stratégie est ignorée, GKE écrit les libellés suivants dans le journal d'audit de la ressource Cluster Kubernetes (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

Où :

  • IMAGE_PATH correspond au chemin d'accès complet à l'image de conteneur que vous avez tenté de déployer (par exemple, gcr.io/example-project/quickstart-image).
  • IMAGE_DIGEST correspond au condensé unique de l'image de conteneur.
  • DENIED_REASON correspond à la raison pour laquelle l'outil d'application de l'autorisation binaire a refusé le déploiement.

Interroger Cloud Logging pour les événements de type "bris de glace"

Visionneuse Cloud Logging (classique)

Pour afficher les événements de type "bris de glace" dans la visionneuse Cloud Logging (classique) :

  1. Accédez à la page "Visionneuse de journaux".

  2. Choisissez le projet Google Cloud pour lequel vous souhaitez afficher les entrées Cloud Logging.

  3. Dans le menu déroulant de sélection de base , sélectionnez Kubernetes Cluster.

  4. Dans le menu déroulant de sélection de journaux , sélectionnez cloudaudit.googleapis.com/activity.

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

    "imagepolicywebhook.image-policy.k8s.io/break-glass"
    
  6. Sélectionnez la période dans le sélecteur de période.

Visionneuse Cloud Logging (aperçu)

Pour afficher les événements de type "bris de glace" dans la visionneuse Cloud Logging (aperçu) :

  1. Accédez à la page "Visionneuse de journaux".

  2. Dans la vue classique, sélectionnez le menu de l'outil de sélection des versions, puis passez de la version Classic (Classique) de la visionneuse de journaux à la version Aperçu de la nouvelle visionneuse de journaux.

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

    Afficher les déploiements de type "bris de glace" dans Cloud Logging

  4. Sélectionnez la période dans le sélecteur de période.

Ligne de commande

Pour afficher à l'aide de la CLI les événements de type "bris de glace" survenus au cours de la semaine précédente, et consignés dans Cloud Logging :

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

Événements de type "fail open" dans Cloud Logging

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 Logging pour les événements de type "fail open"

Visionneuse Cloud Logging (classique)

Pour afficher les événements de type "fail open" dans la visionneuse Cloud Logging (classique) :

  1. Accédez à la page "Visionneuse de journaux".

  2. Choisissez le projet Google Cloud pour lequel vous souhaitez afficher les entrées Cloud Logging.

  3. Dans le menu déroulant de sélection de base , sélectionnez Kubernetes Cluster.

  4. Dans le menu déroulant de sélection de journaux , sélectionnez cloudaudit.googleapis.com/activity.

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

    "image-policy.k8s.io/failed-open"
    
  6. Sélectionnez la période dans le sélecteur de période.

Visionneuse Cloud Logging (aperçu)

Pour afficher les événements de type "fail open" dans la visionneuse Cloud Logging (aperçu) :

  1. Accédez à la page "Visionneuse de journaux".

  2. Dans la vue classique, sélectionnez le menu de l'outil de sélection des versions, puis passez de la version Classic (Classique) de la visionneuse de journaux à la version Aperçu de la nouvelle visionneuse de journaux.

  3. 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"
    

    Afficher les déploiements de type "fail open" dans Cloud Logging

  4. Sélectionnez la période dans le sélecteur de période.

Ligne de commande

Pour afficher à l'aide de la CLI les événements de type "fail open" survenus au cours de la semaine précédente, et consignés dans Cloud Logging :

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

Événements de simulation dans Cloud Logging

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 ne réussit pas les contrôles requis dans une stratégie, mais qu'elle peut être déployée en mode de simulation, GKE écrit ce qui suit dans le journal d'audit de la ressource Cluster Kubernetes (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

Où :

  • REGISTRY_PATH correspond au chemin d'accès complet à l'image qui se trouve dans votre registre d'images de conteneurs ;
  • ATTESTOR correspond au chemin d'accès complet au certificateur dans l'autorisation binaire.

Interroger Cloud Logging pour les événements de simulation

Visionneuse Cloud Logging (classique)

Pour afficher les événements de déploiement de simulation dans la visionneuse Cloud Logging (classique), procédez comme suit :

  1. Accédez à la page "Visionneuse de journaux".

  2. Choisissez le projet Google Cloud pour lequel vous souhaitez afficher les entrées Cloud Logging.

  3. Dans le menu déroulant de sélection de base , sélectionnez Kubernetes Cluster.

  4. Dans le menu déroulant de sélection de journaux , sélectionnez cloudaudit.googleapis.com/activity.

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

    "imagepolicywebhook.image-policy.k8s.io/dry-run"
    
  6. Sélectionnez la période dans le sélecteur de période.

Visionneuse Cloud Logging (aperçu)

Pour afficher les événements de déploiement de simulation dans la visionneuse Cloud Logging (aperçu), procédez comme suit :

  1. Accédez à la page "Visionneuse de journaux".

  2. Dans la vue classique, sélectionnez le menu de l'outil de sélection des versions, puis passez de la version Classic (Classique) de la visionneuse de journaux à la version Aperçu de la nouvelle visionneuse de journaux.

  3. 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"
    

    Afficher les déploiements de simulation dans Cloud Logging

  4. Sélectionnez la période dans le sélecteur de période.

Ligne de commande

Pour afficher à l'aide de la CLI les événements de déploiement de simulation survenus au cours de la semaine précédente, et consignés dans Cloud Logging :

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