Kubernetes Kyverno bypass
Reading time: 1 minute
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 Klastasi:
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 vitu 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:*
Katika klasta, vipengele vingi vilivyoongezwa, waendeshaji, na programu vinaweza kuhitaji kutengwa kutoka kwa sera ya klasta. Hata hivyo, hii inaweza kutumika kwa kulenga viumbe wenye mamlaka. Katika baadhi ya matukio, inaweza kuonekana kwamba jina la nafasi halipo au kwamba huna ruhusa ya kujifanya kuwa mtumiaji, ambayo inaweza kuwa ishara ya usanidi mbaya.
Kutumia ValidatingWebhookConfiguration
Njia nyingine ya kupita sera ni kuzingatia rasilimali ya ValidatingWebhookConfiguration:
Kubernetes ValidatingWebhookConfiguration
Maelezo zaidi
Kwa maelezo zaidi angalia https://madhuakula.com/kubernetes-goat/docs/scenarios/scenario-22/securing-kubernetes-clusters-using-kyverno-policy-engine/welcome/