This commit is contained in:
2026-04-08 20:22:14 +07:00
commit 34fbdd1412
96 changed files with 5321 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: restrict-privileged-for-non-admins
annotations:
policies.kyverno.io/title: "Привилегированные контейнеры — только для администраторов"
policies.kyverno.io/category: Security
policies.kyverno.io/severity: high
policies.kyverno.io/subject: Pod
policies.kyverno.io/description: >-
Запрещает создание привилегированных контейнеров для обычных пользователей.
Администраторы (system:masters, cluster-admins) могут создавать
привилегированные поды для системных нужд.
Использует request.userInfo для проверки прав запрашивающего.
spec:
rules:
- name: restrict-privileged-non-admin
match:
resources:
kinds:
- Pod
# Precondition: применять только если пользователь НЕ администратор
preconditions:
all:
- key: "system:masters"
operator: NotIn
value: "{{ request.userInfo.groups }}"
- key: "cluster-admins"
operator: NotIn
value: "{{ request.userInfo.groups }}"
validate:
message: >-
Пользователь '{{ request.userInfo.username }}' не имеет права
создавать привилегированные контейнеры.
Обратитесь к cluster-admin для выполнения системных задач.
foreach:
- list: >-
request.object.spec.containers[] |
merge(request.object.spec.initContainers[] || `[]`, @)
deny:
conditions:
any:
- key: "{{ element.securityContext.privileged }}"
operator: Equals
value: true