Chapitre 9. Visualisation des journaux d'audit


L'audit d'OpenShift Container Platform fournit un ensemble d'enregistrements chronologiques pertinents pour la sécurité, documentant la séquence des activités qui ont affecté le système par des utilisateurs individuels, des administrateurs ou d'autres composants du système.

9.1. À propos du journal d'audit de l'API

L'audit fonctionne au niveau du serveur API, en enregistrant toutes les demandes arrivant sur le serveur. Chaque journal d'audit contient les informations suivantes :

Tableau 9.1. Champs du journal d'audit
FieldDescription

level

Le niveau d'audit auquel l'événement a été généré.

auditID

Un identifiant d'audit unique, généré pour chaque demande.

stage

L'étape du traitement de la demande au cours de laquelle cette instance d'événement a été générée.

requestURI

L'URI de la demande tel qu'il est envoyé par le client à un serveur.

verb

Le verbe Kubernetes associé à la demande. Pour les requêtes ne portant pas sur des ressources, il s'agit de la méthode HTTP en minuscules.

user

Les informations sur l'utilisateur authentifié.

impersonatedUser

Facultatif. Les informations relatives à l'utilisateur usurpé, si la demande vise à usurper l'identité d'un autre utilisateur.

sourceIPs

Facultatif. Les adresses IP source, d'où provient la demande et les éventuels serveurs mandataires intermédiaires.

userAgent

Facultatif. Chaîne de l'agent utilisateur signalée par le client. Notez que l'agent utilisateur est fourni par le client et qu'il ne doit pas être fiable.

objectRef

Facultatif. La référence de l'objet visé par cette demande. Ceci ne s'applique pas aux demandes de type List, ni aux demandes ne portant pas sur des ressources.

responseStatus

Facultatif. L'état de la réponse, renseigné même si l'adresse ResponseObject n'est pas un type Status. Pour les réponses réussies, il s'agit uniquement du code. Pour les réponses d'erreur de type non-statut, le message d'erreur sera rempli automatiquement.

requestObject

Facultatif. L'objet API de la demande, au format JSON. Le site RequestObject est enregistré tel quel dans la demande (éventuellement réencodé en JSON), avant la conversion de version, la mise par défaut, l'admission ou la fusion. Il s'agit d'un type d'objet versionné externe, qui peut ne pas être un objet valide en soi. Il est omis pour les demandes ne portant pas sur des ressources et n'est enregistré qu'au niveau de la demande ou à un niveau supérieur.

responseObject

Facultatif. L'objet API renvoyé dans la réponse, au format JSON. Le site ResponseObject est enregistré après conversion vers le type externe et sérialisé au format JSON. Cet élément est omis pour les demandes ne portant pas sur des ressources et n'est enregistré qu'au niveau de la réponse.

requestReceivedTimestamp

Heure à laquelle la demande a atteint le serveur API.

stageTimestamp

Heure à laquelle la demande a atteint le stade actuel de l'audit.

annotations

Facultatif. Une carte de valeurs clés non structurée stockée avec un événement d'audit qui peut être définie par les plugins invoqués dans la chaîne de service de la demande, y compris les plugins d'authentification, d'autorisation et d'admission. Notez que ces annotations concernent l'événement d'audit et ne correspondent pas à l'adresse metadata.annotations de l'objet soumis. Les clés doivent identifier de manière unique le composant informant afin d'éviter les collisions de noms, par exemple podsecuritypolicy.admission.k8s.io/policy. Les valeurs doivent être courtes. Les annotations sont incluses dans le niveau des métadonnées.

Exemple de sortie pour le serveur API Kubernetes :

{"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Metadata","auditID":"ad209ce1-fec7-4130-8192-c4cc63f1d8cd","stage":"ResponseComplete","requestURI":"/api/v1/namespaces/openshift-kube-controller-manager/configmaps/cert-recovery-controller-lock?timeout=35s","verb":"update","user":{"username":"system:serviceaccount:openshift-kube-controller-manager:localhost-recovery-client","uid":"dd4997e3-d565-4e37-80f8-7fc122ccd785","groups":["system:serviceaccounts","system:serviceaccounts:openshift-kube-controller-manager","system:authenticated"]},"sourceIPs":["::1"],"userAgent":"cluster-kube-controller-manager-operator/v0.0.0 (linux/amd64) kubernetes/$Format","objectRef":{"resource":"configmaps","namespace":"openshift-kube-controller-manager","name":"cert-recovery-controller-lock","uid":"5c57190b-6993-425d-8101-8337e48c7548","apiVersion":"v1","resourceVersion":"574307"},"responseStatus":{"metadata":{},"code":200},"requestReceivedTimestamp":"2020-04-02T08:27:20.200962Z","stageTimestamp":"2020-04-02T08:27:20.206710Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":"RBAC: allowed by ClusterRoleBinding \"system:openshift:operator:kube-controller-manager-recovery\" of ClusterRole \"cluster-admin\" to ServiceAccount \"localhost-recovery-client/openshift-kube-controller-manager\""}}
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.