Kubernetes Kyverno bypass

The original author of this page is Guillaume

Wykorzystywanie błędnej konfiguracji polityk

Wypisanie reguł

Posiadanie przeglądu może pomóc w zrozumieniu, które reguły są aktywne, w jakim trybie i kto może je obejść

$ kubectl get clusterpolicies
$ kubectl get policies

Enumerate Excluded

Dla każdej ClusterPolicy i Policy możesz określić listę wykluczonych podmiotów, w tym:

  • Grupy: excludedGroups

  • Użytkownicy: excludedUsers

  • Konta serwisowe (SA): excludedServiceAccounts

  • Role: excludedRoles

  • Role klastra: excludedClusterRoles

Te wykluczone podmioty będą zwolnione z wymagań polityki, a Kyverno nie będzie egzekwować polityki wobec nich.

Example

Zagłębmy się w jeden przykład clusterpolicy :

$ kubectl get clusterpolicies MYPOLICY -o yaml

Szukaj wykluczonych encji :

exclude:
any:
- clusterRoles:
- cluster-admin
- subjects:
- kind: User
name: system:serviceaccount:DUMMYNAMESPACE:admin
- kind: User
name: system:serviceaccount:TEST:thisisatest
- kind: User
name: system:serviceaccount:AHAH:*

W obrębie klastra liczne dodatkowe komponenty, operatory i aplikacje mogą wymagać wyłączenia z polityki klastra. Jednak może to być wykorzystane poprzez celowanie w uprzywilejowane podmioty. W niektórych przypadkach może się wydawać, że przestrzeń nazw nie istnieje lub że nie masz uprawnień do podszywania się pod użytkownika, co może być oznaką błędnej konfiguracji.

Wykorzystywanie ValidatingWebhookConfiguration

Innym sposobem na obejście polityk jest skupienie się na zasobie ValidatingWebhookConfiguration :

Kubernetes ValidatingWebhookConfiguration

Last updated