Kubernetes ValidatingWebhookConfiguration

Mwandishi wa awali wa ukurasa huu ni Guillaume

Definition

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 awali.

Purpose

Madhumuni ya ValidatingWebhookConfiguration ni kufafanua webhook ya kuthibitisha ambayo itatekeleza seti ya sheria na vikwazo vilivyowekwa awali 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.

Example

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

The main difference between a ValidatingWebhookConfiguration and policies :

  • ValidatingWebhookConfiguration (VWC) : 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 awali.

  • Kyverno ClusterPolicy: Mwelekeo wa sera unaofafanua 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 ambazo zinatoa 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 ya kuthibitisha, webhook kyverno-resource-validating-webhook-cfg inajazwa.

Kwa Gatekeeper, kuna faili ya YAML gatekeeper-validating-webhook-configuration.

Zote zinakuja na thamani za msingi lakini timu za Wasimamizi zinaweza kusasisha 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

Here, kubernetes.io/metadata.name label inahusisha na jina la namespace. Namespaces zenye majina katika orodha ya values zitakosolewa kutoka kwenye sera:

Angalia 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 kutumia mbinu nyingine.

References

Last updated