Зіставлення PodSecurityPolicies зі стандартами безпеки Podʼів

Нижче наведено таблиці, що перераховують параметри конфігурації обʼєктів PodSecurityPolicy, чи поле змінює або перевіряє контейнери, та як значення конфігурації зіставляються з Стандартами безпеки Podʼів.

Для кожного параметра, до якого це застосовується, перераховані допустимі значення для Baseline та Restricted профілів. Все, що перебуває за межами допустимих значень для цих профілів, підпадає під Privileged профіль. "Немає думки" означає, що всі значення допустимі для всіх стандартів безпеки Podʼів.

Для покрокового керівництва міграції див. Міграція з PodSecurityPolicy до вбудованого контролера допуску PodSecurity.

Специфікація PodSecurityPolicy

Поля, перераховані в цій таблиці, є частиною PodSecurityPolicySpec, яка вказана в шляху поля .spec.

Зіставлення політики безпеки PodSecurityPolicySpec зі стандартами безпеки Podʼів
PodSecurityPolicySpecТипЕквівалент стандартів безпеки Podʼів
privilegedПеревіркаBaseline & Restricted: false / undefined / nil
defaultAddCapabilitiesЗміна & ПеревіркаВимоги відповідають allowedCapabilities нижче.
allowedCapabilitiesПеревірка

Baseline: підмножина

  • AUDIT_WRITE
  • CHOWN
  • DAC_OVERRIDE
  • FOWNER
  • FSETID
  • KILL
  • MKNOD
  • NET_BIND_SERVICE
  • SETFCAP
  • SETGID
  • SETPCAP
  • SETUID
  • SYS_CHROOT

Обмежений: пустий / undefined / nil АБО список, що містить тільки NET_BIND_SERVICE

requiredDropCapabilitiesЗміна & Перевірка

Baseline: немає думки

Baseline: повинен містити ALL

volumesПеревірка

Baseline: будь-що крім

  • hostPath
  • *

Restricted: підмножина

  • configMap
  • csi
  • downwardAPI
  • emptyDir
  • ephemeral
  • persistentVolumeClaim
  • projected
  • secret
hostNetworkПеревіркаBaseline & Restricted: false / undefined / nil
hostPortsПеревіркаBaseline & Restricted: undefined / nil / пустий
hostPIDПеревіркаBaseline & Restricted: false / undefined / nil
hostIPCПеревіркаBaseline & Restricted: false / undefined / nil
seLinuxЗміна & Перевірка

Baseline & Restricted: seLinux.rule is MustRunAs, з наступними options

  • user не встановлено ("" / undefined / nil)
  • role не встановлено ("" / undefined / nil)
  • type не встановлено або один із: container_t, container_init_t, container_kvm_t
  • level є будь-чим
runAsUserЗміна & Перевірка

Baseline: Будь-що

Restricted: rule є MustRunAsNonRoot

runAsGroupЗміна (MustRunAs) & ПеревіркаНемає думки
supplementalGroupsЗміна & ПеревіркаНемає думки
fsGroupЗміна & ПеревіркаНемає думки
readOnlyRootFilesystemЗміна & ПеревіркаНемає думки
defaultAllowPrivilegeEscalationЗмінаНемає думки
allowPrivilegeEscalationЗміна & Перевірка

Лише зміна, якщо встановлено false

Baseline: Немає думки

Restricted: false

allowedHostPathsПеревіркаНемає думки (пріоритет мають volumes)
allowedFlexVolumesПеревіркаНемає думки (пріоритет мають volumes)
allowedCSIDriversПеревіркаНемає думки (пріоритет мають volumes)
allowedUnsafeSysctlsПеревіркаBaseline & Restricted: undefined / nil / empty
forbiddenSysctlsПеревіркаНемає думки
allowedProcMountTypes
(альфа-функція)
ПеревіркаBaseline & Restricted: ["Default"] АБО undefined / nil / empty
runtimeClass
 .defaultRuntimeClassName
ЗмінаНемає думки
runtimeClass
 .allowedRuntimeClassNames
ПеревіркаНемає думки

Анотації PodSecurityPolicy

Анотації, перераховані в цій таблиці, можуть бути вказані у .metadata.annotations обʼєкту PodSecurityPolicy.

Зіставлення анотацій PodSecurityPolicy зі стандартами безпеки Podʼів
Анотація PSPТипЕквівалент стандартів безпеки Podʼів
seccomp.security.alpha.kubernetes.io
/defaultProfileName
ЗмінаНемає думки
seccomp.security.alpha.kubernetes.io
/allowedProfileNames
Перевірка

Baseline: "runtime/default," (Кома в кінці, щоб встановити unset)

Restricted: "runtime/default" (Без коми в кінці)

Значення localhost/* також дозволені як для Baseline, так і для Restricted.

apparmor.security.beta.kubernetes.io
/defaultProfileName
ЗмінаНемає думки
apparmor.security.beta.kubernetes.io
/allowedProfileNames
Перевірка

Baseline: "runtime/default," (Кома в кінці, щоб встановити unset)

Restricted: "runtime/default" (Без коми в кінці)

Значення localhost/* також дозволені як для Baseline, так і для Restricted.

Змінено June 20, 2024 at 12:44 PM PST: Sync changest from andygol/k8s-website (36d05bc8a1)