All Policies

Require TLS routes in OpenShift

HTTP traffic is not encrypted and hence insecure. This policy prevents configuration of OpenShift HTTP routes.

Policy Definition

/openshift/check-routes/check-routes.yaml

 1apiVersion: kyverno.io/v1
 2kind: ClusterPolicy
 3metadata:
 4  name: check-routes
 5  annotations:
 6    policies.kyverno.io/title: Require TLS routes in OpenShift
 7    policies.kyverno.io/category: OpenShift
 8    policies.kyverno.io/severity: high
 9    kyverno.io/kyverno-version: 1.6.0
10    policies.kyverno.io/minversion: 1.6.0
11    kyverno.io/kubernetes-version: "1.20"
12    policies.kyverno.io/subject: Route
13    policies.kyverno.io/description: |-
14      HTTP traffic is not encrypted and hence insecure. This policy prevents configuration of OpenShift HTTP routes.
15spec:
16  validationFailureAction: Enforce
17  background: true
18  rules:
19    - name: require-tls-routes
20      match:
21        any:
22        - resources:
23            kinds:
24              - route.openshift.io/v1/Route
25      preconditions:
26        all:
27        - key: "{{ request.operation || 'BACKGROUND' }}"
28          operator: NotEquals
29          value: ["DELETE"]
30      validate:
31        message: >-
32          HTTP routes are not allowed. Configure TLS for secure routes.
33        deny:
34          conditions:
35            all:
36            - key: "{{ keys(request.object.spec) | contains(@, 'tls') }}"
37              operator: Equals
38              value: false