For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/containers-orchestration/managed-kubernetes/forwarding-audit-logs.md.

Redirection des logs d'audit du Managed Kubernetes Service

Voir en Markdown

Découvrez comment rediriger les logs d'audit d'un cluster Managed Kubernetes Service OVHcloud vers Logs Data Platform

Objectif

Dans ce guide, vous apprendrez à activer la redirection des logs d'audit de votre cluster Managed Kubernetes Service (MKS) OVHcloud vers Logs Data Platform (LDP), une plateforme qui vous aide à stocker, archiver, interroger et visualiser vos logs. Si vous souhaitez découvrir Logs Data Platform avant de lire ce guide, consultez le guide d'introduction à Logs Data Platform.

Glossaire

  • Logs Data Platform : une plateforme de gestion de logs entièrement managée et sécurisée par OVHcloud. Retrouvez plus d'informations sur la page du service Logs Data Platform.
  • Data Stream : une partition logique de logs que vous créez dans un compte LDP et que vous utiliserez pour ingérer, visualiser ou interroger vos logs. Plusieurs sources peuvent être stockées dans le même flux de données, qui constitue l'unité de définition d'un pipeline de logs (politique de rétention, archivage, streaming en direct...), des droits d'accès et des politiques d'alerte.
  • Redirection des logs : fonctionnalité intégrée à un produit OVHcloud permettant d'ingérer les logs de ses services vers un Data Stream d'un compte LDP appartenant au même compte OVHcloud. La fonctionnalité doit être activée par le client, service par service.
  • Abonnement de redirection des logs : lorsque vous activez la redirection des logs d'un service OVHcloud donné vers un Data Stream LDP donné, un abonnement est créé et rattaché au Data Stream pour une gestion ultérieure par le client.
  • Étape de la requête et niveau d'audit : les enregistrements d'audit commencent leur cycle de vie au sein du composant kube-apiserver. Chaque requête, à chaque étape de son exécution, génère un événement d'audit, qui est ensuite prétraité selon la politique définie par le Managed Kubernetes Service OVHcloud. Cette politique définit quels événements d'audit ainsi que quel niveau d'audit (c'est-à-dire quelles données d'événements) sont transmis via les logs d'audit de votre cluster Kubernetes. Pour plus de détails, consultez la documentation Kubernetes sur l'audit.

Concept

Que sont les logs d'audit d'un cluster Managed Kubernetes ?

Les logs d'audit du Managed Kubernetes fournissent un ensemble chronologique d'enregistrements pertinents pour la sécurité, documentant la séquence des actions dans votre cluster.

Le cluster audite les activités générées par les utilisateurs, par les applications qui utilisent l'API Kubernetes, et par le control plane lui-même. L'audit permet aux administrateurs du cluster de savoir ce qui s'est passé, quand, qui l'a initié et depuis où, sur quoi cela s'est produit et vers où cela allait. Pour plus de détails sur les audits de cluster, consultez la documentation Kubernetes sur l'audit.

Warning

Les logs d'audit du Managed Kubernetes n'incluent PAS les logs de vos applications s'exécutant sur vos pods Kubernetes. Si vous souhaitez récupérer vos logs de data plane dans un des data streams de votre Logs Data Platform, consultez ce guide : Transmettre les logs d'un cluster Kubernetes vers Logs Data Platform avec Fluent Bit

Le Managed Kubernetes Service OVHcloud a défini une politique d'audit, vous permettant de récupérer les logs relatifs à :

  • les requêtes vers les ressources d'autorisation, pour faciliter le diagnostic des problèmes d'authentification
  • les modifications de configmap et de secret dans tous les namespaces, au niveau d'audit Metadata
  • les modifications de ressources au niveau RequestResponse (verbosité maximale) pour les verbes create, patch, update et delete
  • les modifications de ressources au niveau Request pour les autres verbes
  • toutes les autres requêtes au niveau Metadata

Remarques :

  • aucun log pour les requêtes du "system:kube-proxy" sur les endpoints ou services
  • faible niveau de verbosité (niveau Metadata) pour les endpoints contenant des données sensibles comme tokenreview
  • aucun log pour les requêtes à l'étape RequestReceived
  • aucun log pour les vérifications de santé et les requêtes de métriques de l'apiserver

Pour plus de détails sur les informations capturées dans les logs d'audit Kubernetes, consultez la documentation publique de Kubernetes.

Politique d'audit

La politique d'audit suivante (audit.k8s.io/v1) est appliquée au cluster Managed Kubernetes :

Consulter la politique d'audit
apiVersion: audit.k8s.io/v1
kind: Policy
metadata: {}
omitStages:
- RequestReceived
rules:
- level: None
  nonResourceURLs:
  - /healthz*
  - /logs
  - /metrics
  - /swagger*
  - /version
  userGroups:
  - system:authenticated
- level: None
  resources:
  - resources:
    - endpoints
    - services
    - services/status
  users:
  - system:kube-proxy
  verbs:
  - watch
- level: Metadata
  resources:
  - group: authentication.k8s.io
    resources:
    - tokenreviews
- level: RequestResponse
  resources:
  - group: authorization.k8s.io
- level: Metadata
  resources:
  - resources:
    - secrets
    - configmaps
- level: None
  resources:
  - resources:
    - nodes
    - nodes/status
  userGroups:
  - system:nodes
  verbs:
  - get
- level: RequestResponse
  resources:
  - group: admissionregistration.k8s.io
  - group: apiextensions.k8s.io
  - group: apiregistration.k8s.io
  - group: apps
  - group: authentication.k8s.io
  - group: autoscaling
  - group: batch
  - group: certificates.k8s.io
  - group: extensions
  - group: metrics.k8s.io
  - group: networking.k8s.io
  - group: policy
  - group: rbac.authorization.k8s.io
  - group: settings.k8s.io
  - group: storage.k8s.io
  - resources:
    - '*'
  verbs:
  - create
  - patch
  - update
  - delete
- level: Request
  resources:
  - group: admissionregistration.k8s.io
  - group: apiextensions.k8s.io
  - group: apiregistration.k8s.io
  - group: apps
  - group: authentication.k8s.io
  - group: autoscaling
  - group: batch
  - group: certificates.k8s.io
  - group: extensions
  - group: metrics.k8s.io
  - group: networking.k8s.io
  - group: policy
  - group: rbac.authorization.k8s.io
  - group: settings.k8s.io
  - group: storage.k8s.io
  - resources:
    - '*'
- level: Metadata
  omitStages:
  - RequestReceived

Exemple de log d'audit

Voici un exemple de log d'audit généré par un cluster Kubernetes. Notez que cet exemple n'est pas exhaustif.

Consulter un exemple de log d'audit
{
   "kind":"Event",
   "apiVersion":"audit.k8s.io/v1",
   "level":"Metadata",
   "auditID":"XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX",
   "stage":"ResponseStarted",
   "requestURI":"/api/v1/namespaces/searching-worker/configmaps?......",
   "verb":"watch",
   "user":{
      "username":"system:node:search-workers-node-81097c",
      "groups":[
         "system:nodes",
         "system:authenticated"
      ]
   },
   "sourceIPs":[
      "10.10.0.43"
   ],
   "userAgent":"kubelet/v1.26.4 (linux/amd64) kubernetes/f89670c",
   "objectRef":{
      "resource":"configmaps",
      "namespace":"searching-worker",
      "name":"kube-root-ca.crt",
      "apiVersion":"v1"
   },
   "responseStatus":{
      "metadata":{

      },
      "code":200
   },
   "requestReceivedTimestamp":"2024-01-01T11:59:06.428015Z",
   "stageTimestamp":"2024-01-01T11:59:06.428962Z",
   "annotations":{
      "authorization.k8s.io/decision":"allow",
      "authorization.k8s.io/reason":""
   }
}

Prérequis

Pour suivre ce guide, vous aurez besoin de :

  • un compte Logs Data Platform (LDP) avec au moins un Stream actif configuré. Ce guide vous accompagnera dans toutes les étapes nécessaires : Démarrage rapide de Logs Data Platform.
    • Si vous ne connaissez pas encore toutes les possibilités de configuration des Stream LDP, créez-en simplement un nouveau avec les options par défaut (indexation et websocket activés, stockage longue durée désactivé) pour les besoins de ce guide.
  • un cluster Managed Kubernetes Service (MKS) opérationnel. Ce guide vous accompagnera également dans ces étapes.
  • le compte LDP et le cluster MKS doivent appartenir au même compte OVHcloud.

Accès à l'espace client OVHcloud

  • Lien direct :
  • Pour accéder à vos services : Public Cloud > sélectionnez votre projet

En pratique

Activer la redirection des logs d'audit via l'espace client OVHcloud

Étape 1 - Accéder à la section Logs d'Audit de votre cluster Managed Kubernetes Service

Accédez à l'interface d'administration de vos clusters Managed Kubernetes OVHcloud en cliquant sur Managed Kubernetes Service dans le menu de gauche.

Entrée de menu Log Data Platform

Accédez aux détails de votre cluster MKS (en cliquant sur le nom du cluster dans la liste des clusters MKS) et cliquez sur l'onglet Audit Logs.

Étape 2 - Créer un abonnement Logs Data Platform

Dans l'onglet Audit Logs, vous pouvez visualiser en direct les logs d'audit de votre cluster.

Pour activer la redirection des logs vers LDP, cliquez simplement sur le bouton S'abonner sur la droite de votre écran.

Entrée de menu Log Data Platform

Étape 3 - Sélectionner votre compte LDP et votre flux de données

Dans la liste déroulante, sélectionnez le compte LDP souhaité, puis sélectionnez le Flux de données que vous souhaitez utiliser dans la liste, et cliquez sur le bouton S'abonner.

Entrée de menu Log Data Platform

Votre abonnement est maintenant créé et les logs d'audit de votre MKS sont redirigés !

Activer la redirection des logs d'audit via les API

Vous devrez définir le Stream cible de l'un de vos comptes LDP vers lequel vous souhaitez que vos logs soient redirigés. L'activation de la redirection créera un abonnement pour cet identifiant de flux. Notez que l'activation de la redirection est gratuite, mais que l'utilisation du service Logs Data Platform vous sera facturée selon la grille tarifaire standard. Pour connaître les tarifs de LDP, consultez la page produit Logs Data Platform.

Vous pouvez récupérer les spécifications de l'API sur le

Étape 1 - Récupérer votre Stream cible (et son ID)

Listez les flux de données de votre compte Logs Data Platform :

Obtenez les détails d'un flux de données :

Étape 2 - Créer votre abonnement

Comme dans l'exemple ci-dessus, la requête POST contient un payload avec un streamId, qui correspond au flux de données cible de votre compte LDP vers lequel vous souhaitez rediriger les logs d'audit de votre cluster Kubernetes. Vous devez également spécifier le 'kind' de log que vous souhaitez rediriger. Notez que la seule valeur actuellement prise en charge pour le Managed Kubernetes Service est 'audit' (vous pouvez retrouver les types disponibles via l'appel ) :

{
  "kind": "string", // The only supported value currently is 'audit'.
  "streamId": "18d602ec-af40-4000-8e59-41ecc8c23f80" // The streamID of the targeted Stream.
}

Résultat :

{
  "operationId": "f550aa1c-89ab-4b1a-81ae-4fba4959966f",
  "serviceName": "string"
}

Vous pouvez ainsi l'utiliser pour récupérer le subscriptionId à des fins de gestion ultérieure, via l'endpoint de lecture de Logs Data Platform :

Résultat :

{
  "createdAt": "2024-01-31T15:45:25.286Z",
  "kind": "string",
  "resource": {
    "name": "string",
    "type": "string"
  },
  "serviceName": "string",
  "streamId": "string",
  "subscriptionId": "18d60324-b260-4000-83db-b484f4db6e80",
  "updatedAt": "2024-01-31T15:45:25.286Z"
}

Comment utiliser vos logs d'audit Kubernetes ?

Maintenant que les logs d'audit de votre instance Kubernetes sont ingérés et stockés dans votre flux de données Logs Data Platform, vous pouvez interroger vos logs et créer des tableaux de bord pour obtenir une représentation graphique de vos logs à l'aide de l'interface web de Graylog.

  • Depuis l'espace client OVHcloud, récupérez le nom d'utilisateur LDP (ex : logs-xxxx) et son mot de passe sur la page d'accueil de votre compte Logs Data Platform. Vous pouvez consulter la documentation Démarrage rapide de Logs Data Platform.
  • Ouvrez l'interface web de Graylog. Vous pouvez retrouver le lien sur la page d'accueil de votre compte ou via votre point d'accès selon la région de votre compte (par exemple : pour la région de Gravelines, il s'agit de https://gra1.logs.ovh.com/)
  • Connectez-vous à Graylog avec votre nom d'utilisateur et votre mot de passe Logs Data Platform
  • Recherchez dans vos logs à travers le flux de données de votre compte Logs Data Platform. Vous pouvez consulter la documentation Graylog sur l'écriture des requêtes de recherche pour plus de détails sur la syntaxe de recherche.

Consultez la documentation suivante : Logs Data Platform - Visualiser, interroger et exploiter vos logs pour plus de détails sur l'utilisation de vos logs avec Logs Data Platform, notamment pour :

  • configurer des alertes,
  • visualiser les logs en temps réel via un WebSocket,
  • créer des visualisations avec OpenSearch Dashboards,
  • s'intégrer avec l'API OpenSearch,
  • se connecter avec Grafana.

Comment gérer vos abonnements ?

À tout moment, vous pouvez récupérer les abonnements rattachés à votre flux de données Logs Data Platform et choisir de désactiver la redirection en annulant votre abonnement sur votre flux, afin que celui-ci ne reçoive plus vos logs d'audit.

Notez que cela ne supprime pas les logs déjà stockés avant l'annulation de l'abonnement, car les données stockées dans un flux de logs sont immuables, sauf si vous supprimez le flux entier.

Pour supprimer votre abonnement, vous pouvez utiliser la section dédiée dans l'espace client OVHcloud. Accédez à l'onglet Audit Logs de votre cluster MKS et cliquez sur Se désabonner, ou utilisez la route API suivante :

Résultat :

{
  "operationId": "a550aa1c-89ab-4b1a-81ae-4fba4959966c",
  "serviceName": "string"
}

Aller plus loin

  • Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

  • Échangez avec notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?