Забезпечення стандартів безпеки Podʼів шляхом конфігурування вбудованого контролера допуску

Забезпечення стандартів безпеки Podʼів шляхом конфігурування вбудованого контролера допуску

Kubernetes надає вбудований контролер допуску для забезпечення дотримання стандартів безпеки Podʼів. Цей контролер допуску можна налаштувати, щоб задати стандартні значення для всього кластера та винятки.

Перш ніж ви розпочнете

Після альфа-випуску в Kubernetes v1.22 Pod Security Admission стала стандартно доступною в Kubernetes v1.23 як бета-можливість. Починаючи з версії 1.25, Pod Security Admission загальнодоступна (GA).

Для перевірки версії введіть kubectl version.

Якщо ви використовуєте не Kubernetes 1.37, можна перейти до перегляду цієї сторінки в документації для версії Kubernetes, яку ви використовуєте.

Налаштування контролера допуску

Примітка:

Конфігурація pod-security.admission.config.k8s.io/v1 потребує v1.25+. Для v1.23 і v1.24 використовуйте v1beta1. Для v1.22 використовуйте v1alpha1.
apiVersion: apiserver.config.k8s.io/v1
kind: AdmissionConfiguration
plugins:
- name: PodSecurity
  configuration:
    apiVersion: pod-security.admission.config.k8s.io/v1 # див. примітку про сумісність
    kind: PodSecurityConfiguration
    # Стандартні значення, які застосовуються, коли мітка режиму не встановлена.
    #
    # Значення мітки рівня повинні бути одним з:
    # - "privileged" (стандартно)
    # - "baseline"
    # - "restricted"
    #
    # Значення мітки версії повинні бути одним з:
    # - "latest" (стандартно)
    # - конкретна версія, наприклад "v1.37"
    defaults:
      enforce: "privileged"
      enforce-version: "latest"
      audit: "privileged"
      audit-version: "latest"
      warn: "privileged"
      warn-version: "latest"
    exemptions:
      # Масив імен автентифікованих користувачів, на які поширюється виняток.
      usernames: []
      # Масив імен RuntimeClass, на які поширюється виняток.
      runtimeClasses: []
      # Масив просторів імен, на які поширюється виняток.
      namespaces: []

Примітка:

Наведений вище маніфест потрібно передати kube-apiserver через --admission-control-config-file.