56 lines
1.6 KiB
YAML
56 lines
1.6 KiB
YAML
apiVersion: kyverno.io/v1
|
||
kind: ClusterPolicy
|
||
metadata:
|
||
name: add-default-security-context
|
||
annotations:
|
||
policies.kyverno.io/title: "Дефолтный SecurityContext"
|
||
policies.kyverno.io/category: Security
|
||
policies.kyverno.io/severity: medium
|
||
policies.kyverno.io/subject: Pod
|
||
policies.kyverno.io/description: >-
|
||
Автоматически применяет безопасный SecurityContext к подам и контейнерам,
|
||
если поля не заданы явно. Работает в связке с validation политиками
|
||
(сначала mutate, потом validate).
|
||
spec:
|
||
rules:
|
||
- name: add-pod-security-context
|
||
match:
|
||
resources:
|
||
kinds:
|
||
- Pod
|
||
exclude:
|
||
resources:
|
||
namespaces:
|
||
- kube-system
|
||
mutate:
|
||
patchStrategicMerge:
|
||
spec:
|
||
+(securityContext):
|
||
+(runAsNonRoot): true
|
||
+(runAsUser): 1000
|
||
+(seccompProfile):
|
||
+(type): RuntimeDefault
|
||
|
||
- name: add-container-security-context
|
||
match:
|
||
resources:
|
||
kinds:
|
||
- Pod
|
||
exclude:
|
||
resources:
|
||
namespaces:
|
||
- kube-system
|
||
mutate:
|
||
foreach:
|
||
- list: "request.object.spec.containers"
|
||
patchStrategicMerge:
|
||
spec:
|
||
containers:
|
||
- name: "{{ element.name }}"
|
||
+(securityContext):
|
||
+(allowPrivilegeEscalation): false
|
||
+(readOnlyRootFilesystem): true
|
||
+(capabilities):
|
||
+(drop):
|
||
- ALL
|