Kubernetes Kyverno bypass

Mwandishi wa awali wa ukurasa huu ni Guillaume

Kutumia makosa ya usanidi wa sera

Kuorodhesha sheria

Kuwa na muonekano wa jumla kunaweza kusaidia kujua ni sheria zipi zinafanya kazi, katika hali gani na nani anaweza kuzipita

$ kubectl get clusterpolicies
$ kubectl get policies

Enumerate Excluded

Kwa kila ClusterPolicy na Policy, unaweza kubainisha orodha ya viumbe vilivyotengwa, ikiwa ni pamoja na:

  • Makundi: excludedGroups

  • Watumiaji: excludedUsers

  • Akaunti za Huduma (SA): excludedServiceAccounts

  • Majukumu: excludedRoles

  • Majukumu ya Kijamii: excludedClusterRoles

Viumbe vilivyotengwa vitakuwa huru kutoka kwa mahitaji ya sera, na Kyverno haitatekeleza sera kwao.

Example

Hebu tuingie kwenye mfano mmoja wa clusterpolicy :

$ kubectl get clusterpolicies MYPOLICY -o yaml

Tafuta viumbe vilivyotengwa :

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:*

Ndani ya klasta, vipengele vingi vilivyoongezwa, waendeshaji, na programu vinaweza kuhitaji kutengwa kutoka kwa sera ya klasta. Hata hivyo, hii inaweza kutumika vibaya kwa kulenga entiti zenye mamlaka. Katika baadhi ya matukio, inaweza kuonekana kwamba namespace haipo au kwamba huna ruhusa ya kujifanya kuwa mtumiaji, ambayo inaweza kuwa ishara ya usakinishaji usio sahihi.

Kutumia ValidatingWebhookConfiguration

Njia nyingine ya kupita sera ni kuzingatia rasilimali ya ValidatingWebhookConfiguration :

Kubernetes ValidatingWebhookConfiguration

Last updated