Kubernetes ValidatingWebhookConfiguration
Reading time: 2 minutes
Mwandishi wa awali wa ukurasa huu ni Guillaume
Maana
ValidatingWebhookConfiguration ni rasilimali ya Kubernetes inayofafanua webhook ya kuthibitisha, ambayo ni kipengele cha upande wa seva kinachothibitisha maombi ya API ya Kubernetes yanayoingia dhidi ya seti ya sheria na vikwazo vilivyowekwa.
Kusudi
Kusudi la ValidatingWebhookConfiguration ni kufafanua webhook ya kuthibitisha ambayo itatekeleza seti ya sheria na vikwazo vilivyowekwa kwenye maombi ya API ya Kubernetes yanayoingia. Webhook itathibitisha maombi dhidi ya sheria na vikwazo vilivyofafanuliwa katika usanidi, na itarudisha kosa ikiwa ombi halikidhi sheria hizo.
Mfano
Hapa kuna mfano wa ValidatingWebhookConfiguration:
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: example-validation-webhook
namespace: default
webhook:
name: example-validation-webhook
clientConfig:
url: https://example.com/webhook
serviceAccountName: example-service-account
rules:
- apiGroups:
- ""
apiVersions:
- "*"
operations:
- CREATE
- UPDATE
resources:
- pods
Tofauti kuu kati ya ValidatingWebhookConfiguration na sera:

Kyverno.png
- ValidatingWebhookConfiguration (VWC) : Rasilimali ya Kubernetes inayofafanua webhook inayothibitisha, ambayo ni kipengele cha upande wa seva kinachothibitisha maombi ya API ya Kubernetes yanayoingia dhidi ya seti ya sheria na vikwazo vilivyowekwa awali.
- Kyverno ClusterPolicy: Ufafanuzi wa sera unaoeleza seti ya sheria na vikwazo kwa ajili ya kuthibitisha na kutekeleza rasilimali za Kubernetes, kama vile pods, deployments, na services
Enumeration
$ kubectl get ValidatingWebhookConfiguration
Abusing Kyverno and Gatekeeper VWC
Kama tunavyoona, waendeshaji wote waliowekwa wana angalau moja ValidatingWebHookConfiguration(VWC).
Kyverno na Gatekeeper ni injini za sera za Kubernetes zinazotoa mfumo wa kufafanua na kutekeleza sera katika klasta.
Matumizi ya kipekee yanarejelea sheria maalum au hali ambazo zinaruhusu sera kupuuziliwa mbali au kubadilishwa chini ya hali fulani lakini hii si njia pekee!
Kwa kyverno, kadri kuna sera inayothibitisha, webhook kyverno-resource-validating-webhook-cfg
inajazwa.
Kwa Gatekeeper, kuna faili ya YAML gatekeeper-validating-webhook-configuration
.
Zote zinakuja na thamani za default lakini timu za Wasimamizi zinaweza kuboresha hizo faili 2.
Use Case
$ kubectl get validatingwebhookconfiguration kyverno-resource-validating-webhook-cfg -o yaml
Sasa, tambua matokeo yafuatayo:
namespaceSelector:
matchExpressions:
- key: kubernetes.io/metadata.name
operator: NotIn
values:
- default
- TEST
- YOYO
- kube-system
- MYAPP
Hapa, lebo kubernetes.io/metadata.name
inahusisha na jina la namespace. Namespaces zenye majina katika orodha ya values
zitakuwa nje ya sera:
Kagua uwepo wa namespaces. Wakati mwingine, kutokana na automatisering au makosa ya usanidi, baadhi ya namespaces huenda hazijaundwa. Ikiwa una ruhusa ya kuunda namespace, unaweza kuunda namespace yenye jina katika orodha ya values
na sera hazitakuwa na athari kwa namespace yako mpya.
Lengo la shambulio hili ni kutumia makosa ya usanidi ndani ya VWC ili kupita vizuizi vya waendeshaji na kisha kuinua haki zako kwa mbinu nyingine.
Abusing Roles/ClusterRoles in Kubernetes