Kubernetes Kyverno

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

L’auteur original de cette page est Guillaume

Définition

Kyverno est un cadre de gestion des politiques open-source pour Kubernetes qui permet aux organisations de dĂ©finir, d’appliquer et d’auditer des politiques sur l’ensemble de leur infrastructure Kubernetes. Il fournit une solution Ă©volutive, extensible et hautement personnalisable pour gĂ©rer la sĂ©curitĂ©, la conformitĂ© et la gouvernance des clusters Kubernetes.

Cas d’utilisation

Kyverno peut ĂȘtre utilisĂ© dans une variĂ©tĂ© de cas d’utilisation, y compris :

  1. Application des politiques rĂ©seau : Kyverno peut ĂȘtre utilisĂ© pour appliquer des politiques rĂ©seau, telles que permettre ou bloquer le trafic entre les pods ou les services.
  2. Gestion des secrets : Kyverno peut ĂȘtre utilisĂ© pour appliquer des politiques de gestion des secrets, telles que l’exigence que les secrets soient stockĂ©s dans un format ou un emplacement spĂ©cifique.
  3. ContrĂŽle d’accĂšs : Kyverno peut ĂȘtre utilisĂ© pour appliquer des politiques de contrĂŽle d’accĂšs, telles que l’exigence que les utilisateurs aient des rĂŽles ou des autorisations spĂ©cifiques pour accĂ©der Ă  certaines ressources.

Exemple : ClusterPolicy et Policy

Disons que nous avons un cluster Kubernetes avec plusieurs espaces de noms, et nous voulons appliquer une politique qui exige que tous les pods dans l’espace de noms default aient une Ă©tiquette spĂ©cifique.

ClusterPolicy

Une ClusterPolicy est une politique de haut niveau qui dĂ©finit l’intention gĂ©nĂ©rale de la politique. Dans ce cas, notre ClusterPolicy pourrait ressembler Ă  ceci :

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: require-label
spec:
rules:
- validate:
message: "Pods in the default namespace must have the label 'app: myapp'"
match:
any:
- resources:
kinds:
- Pod
namespaceSelector:
matchLabels:
namespace: default
- any:
- resources:
kinds:
- Pod
namespaceSelector:
matchLabels:
namespace: default
validationFailureAction: enforce

Lorsqu’un pod est créé dans l’espace de noms default sans l’étiquette app: myapp, Kyverno bloquera la demande et renverra un message d’erreur indiquant que le pod ne respecte pas les exigences de la politique.

Références

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks