Многие очень мало внимания уделяют labels и вообще думают, что с безопасностью они никак не связаны... И это большая ошибка.
Давайте рассмотрим метку "admission.gatekeeper.sh/ignore", которая поставленная на Namespace, выводит его из под наблюдения OPA Gatekeeper webhook. Тут атакующему понадобится операция:
kubectl label namespace admission.gatekeeper.sh/ignore=true
Для нее нужны права:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: namespace-labeler
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "patch", "update"]
Или если вы живете по GitOps, то сразу создать такой NS в репозитарии.
В Kyverno такой специальной label нет.
В комментариях можете привести другие критичные labels, которые вы знаете.
P.S. Кто живет на OPA Gatekeeper - а у вас есть политика на OPA Gatekeeper, которая проверяет эту метку OPA Gatekeeper ?)
Давайте рассмотрим метку "admission.gatekeeper.sh/ignore", которая поставленная на Namespace, выводит его из под наблюдения OPA Gatekeeper webhook. Тут атакующему понадобится операция:
kubectl label namespace admission.gatekeeper.sh/ignore=true
Для нее нужны права:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: namespace-labeler
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "patch", "update"]
Или если вы живете по GitOps, то сразу создать такой NS в репозитарии.
В Kyverno такой специальной label нет.
В комментариях можете привести другие критичные labels, которые вы знаете.
P.S. Кто живет на OPA Gatekeeper - а у вас есть политика на OPA Gatekeeper, которая проверяет эту метку OPA Gatekeeper ?)