OperationPolicy
Scope: Cluster
Version: v1alpha1
Описывает операционную политику для кластера.
Каждый ресурс OperationPolicy
описывает правила для объектов в кластере.
- specобъект
Обязательный параметр
- spec.enforcementActionстрока
Действие, которое будет выполнено по результатам проверки ограничений:
- Deny — запрет;
- Dryrun — отсутствие действия. Применяется при отладке. Информацию о событии можно посмотреть в Grafana или консоли с помощью kubectl;
- Warn — аналогично
Dryrun
, но дополнительно к информации о событии будет выведена информация о том, из-за какого ограничения (constraint) был бы запрет действия, если бы вместоWarn
использовалсяDeny
.
По умолчанию:
"Deny"
Допустимые значения:
Warn
,Deny
,Dryrun
- spec.matchобъект
Обязательный параметр
- spec.match.labelSelectorобъект
Указывает селектор лейблов для фильтрации подов.
Больше информации в документации.
- spec.match.labelSelector.matchExpressionsмассив объектов
Список выражений лейблов для подов.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- spec.match.labelSelector.matchExpressions.keyстрока
Обязательный параметр
- spec.match.labelSelector.matchExpressions.operatorстрока
Обязательный параметр
Допустимые значения:
In
,NotIn
,Exists
,DoesNotExist
- spec.match.labelSelector.matchExpressions.valuesмассив строк
- spec.match.labelSelector.matchExpressions.keyстрока
- spec.match.labelSelector.matchLabelsобъект
Список лейблов, которые должен иметь под.
Пример:
matchLabels: foo: bar baz: who
- spec.match.labelSelector.matchExpressionsмассив объектов
- spec.match.namespaceSelectorобъект
Обязательный параметр
Указывает селектор пространства имен для фильтрации объектов.
- spec.match.namespaceSelector.excludeNamesмассив строк
Включить все пространства имен, кроме определенного набора.
- spec.match.namespaceSelector.labelSelectorобъект
Указывает селектор меток для фильтрации пространств имен.
Больше информации в документации.
- spec.match.namespaceSelector.labelSelector.matchExpressionsмассив объектов
Список выражений лейблов для пространств имен.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- spec.match.namespaceSelector.labelSelector.matchExpressions.keyстрока
Обязательный параметр
- spec.match.namespaceSelector.labelSelector.matchExpressions.operatorстрока
Обязательный параметр
Допустимые значения:
In
,NotIn
,Exists
,DoesNotExist
- spec.match.namespaceSelector.labelSelector.matchExpressions.valuesмассив строк
- spec.match.namespaceSelector.labelSelector.matchExpressions.keyстрока
- spec.match.namespaceSelector.labelSelector.matchLabelsобъект
Список лейблов, которые должно иметь пространство имен.
Пример:
matchLabels: foo: bar baz: who
- spec.match.namespaceSelector.labelSelector.matchExpressionsмассив объектов
- spec.match.namespaceSelector.matchNamesмассив строк
Включать только определенный набор пространств имен.
- spec.match.namespaceSelector.excludeNamesмассив строк
- spec.match.labelSelectorобъект
- spec.policiesобъект
Обязательный параметр
- spec.policies.allowedReposмассив строк
Список префиксов, которые может иметь образ контейнера.
- Элемент массивастрока
Пример:
registry.deckhouse.io
- Элемент массивастрока
- spec.policies.checkContainerDuplicatesбулевый
Проверка имен контейнеров и переменных env на наличие дубликатов.
- spec.policies.checkHostNetworkDNSPolicyбулевый
Проверка, что dnsPolicy
ClusterFirstWithHostNet
установлена для подов сhostNetwork: true
. - массив строк
Требует, чтобы образы контейнера имели тег, отличный от указанных в списке.
Пример:
disallowedImageTags: latest
- spec.policies.imagePullPolicyстрока
Требуемая политика скачивания образов для контейнеров.
Допустимые значения:
Always
,IfNotPresent
- spec.policies.maxRevisionHistoryLimitцелочисленный
Максимальное значение для истории ревизий.
- spec.policies.priorityClassNamesмассив строк
List of allowed priority class names.
- spec.policies.replicaLimitsобъект
Проверка диапазона разрешенных реплик. Значения включаются в диапазон.
- spec.policies.replicaLimits.maxReplicasцелочисленный
Максимально разрешенное количество реплик, включительно.
- spec.policies.replicaLimits.minReplicasцелочисленный
Минимально разрешенное количество реплик, включительно.
- spec.policies.replicaLimits.maxReplicasцелочисленный
- spec.policies.requiredAnnotationsобъект
Список аннотаций, которые должен указать объект.
- spec.policies.requiredAnnotations.annotationsмассив объектов
- spec.policies.requiredAnnotations.annotations.allowedRegexстрока
Если указано, то содержит регулярное выражение, которому должно соответствовать значение аннотации. Значение должно содержать хотя бы одно совпадение с регулярным выражением.
- spec.policies.requiredAnnotations.annotations.keyстрока
Требуемая аннотация.
- spec.policies.requiredAnnotations.annotations.allowedRegexстрока
- spec.policies.requiredAnnotations.watchKindsмассив строк
Список объектов Kubernetes в формате
$apiGroup/$kind
для просмотра аннотаций.- Элемент массивастрока
Шаблон:
^[a-z]*/[a-zA-Z]+$
Примеры:
apps/Deployment
"/Pod"
networking.k8s.io/Ingress
- Элемент массивастрока
- spec.policies.requiredAnnotations.annotationsмассив объектов
- spec.policies.requiredLabelsобъект
Список лейблов, которые должен указать объект.
- spec.policies.requiredLabels.labelsмассив объектов
- spec.policies.requiredLabels.labels.allowedRegexстрока
Если указано, то содержит регулярное выражение, которому должно соответствовать значение лейбла. Значение должно содержать хотя бы одно совпадение с регулярным выражением.
- spec.policies.requiredLabels.labels.keyстрока
Требуемый лейбл.
- spec.policies.requiredLabels.labels.allowedRegexстрока
- spec.policies.requiredLabels.watchKindsмассив строк
Список объектов Kubernetes в формате
$apiGroup/$kind
для просмотра меток.- Элемент массивастрока
Шаблон:
^[a-z]*/[a-zA-Z]+$
Примеры:
apps/Deployment
"/Pod"
networking.k8s.io/Ingress
- Элемент массивастрока
- spec.policies.requiredLabels.labelsмассив объектов
- spec.policies.requiredProbesмассив строк
Список проб, которые необходимы (например,
readinessProbe
).Примеры:
requiredProbes: livenessProbe
requiredProbes: readinessProbe
- Элемент массивастрока
Допустимые значения:
livenessProbe
,readinessProbe
,startupProbe
- Элемент массивастрока
- spec.policies.requiredResourcesобъект
Набор ресурсов, который требуют контейнеры.
- spec.policies.requiredResources.limitsмассив строк
Список ограничений, которые должны соблюдаться (процессор, память или оба).
По умолчанию:
["memory"]
- Элемент массивастрока
Допустимые значения:
cpu
,memory
- Элемент массивастрока
- spec.policies.requiredResources.requestsмассив строк
Список запросов, которые должны быть выполнены (вычислительная мощность, память или и то и другое).
По умолчанию:
["cpu","memory"]
- Элемент массивастрока
Допустимые значения:
cpu
,memory
- Элемент массивастрока
- spec.policies.requiredResources.limitsмассив строк
- spec.policies.allowedReposмассив строк
- spec.enforcementActionстрока
SecurityPolicy
Scope: Cluster
Version: v1alpha1
Описывает политику безопасности для кластера.
Каждый ресурс SecurityPolicy
описывает правила для объектов в кластере.
- specобъект
Обязательный параметр
- spec.enforcementActionстрока
Действие, которое будет выполнено по результатам проверки ограничений:
Deny
— запрет;Dryrun
— отсутствие действия. Применяется при отладке. Информацию о событии можно посмотреть в Grafana или консоли с помощью kubectl;Warn
— аналогичноDryrun
, но дополнительно к информации о событии будет выведена информация о том, из-за какого ограничения (constraint) был бы запрет действия, если бы вместоWarn
использовалсяDeny
.
По умолчанию:
"Deny"
Допустимые значения:
Warn
,Deny
,Dryrun
- spec.matchобъект
Обязательный параметр
- spec.match.labelSelectorобъект
Указывает селектор лейблов для фильтрации подов.
Больше информации в документации.
- spec.match.labelSelector.matchExpressionsмассив объектов
Список выражений лейблов для подов.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- spec.match.labelSelector.matchExpressions.keyстрока
Обязательный параметр
- spec.match.labelSelector.matchExpressions.operatorстрока
Обязательный параметр
Допустимые значения:
In
,NotIn
,Exists
,DoesNotExist
- spec.match.labelSelector.matchExpressions.valuesмассив строк
- spec.match.labelSelector.matchExpressions.keyстрока
- spec.match.labelSelector.matchLabelsобъект
Список лейблов, которые должен иметь под.
Пример:
matchLabels: foo: bar baz: who
- spec.match.labelSelector.matchExpressionsмассив объектов
- spec.match.namespaceSelectorобъект
Обязательный параметр
Указывает селектор пространства имен для фильтрации объектов.
- spec.match.namespaceSelector.excludeNamesмассив строк
Включить все пространства имен, кроме определенного набора.
- spec.match.namespaceSelector.labelSelectorобъект
Указывает селектор меток для фильтрации пространств имен.
Больше информации в документации.
- spec.match.namespaceSelector.labelSelector.matchExpressionsмассив объектов
Список выражений лейблов для пространств имен.
Пример:
matchExpressions: - key: tier operator: In values: - production - staging
- spec.match.namespaceSelector.labelSelector.matchExpressions.keyстрока
Обязательный параметр
- spec.match.namespaceSelector.labelSelector.matchExpressions.operatorстрока
Обязательный параметр
Допустимые значения:
In
,NotIn
,Exists
,DoesNotExist
- spec.match.namespaceSelector.labelSelector.matchExpressions.valuesмассив строк
- spec.match.namespaceSelector.labelSelector.matchExpressions.keyстрока
- spec.match.namespaceSelector.labelSelector.matchLabelsобъект
Список лейблов, которые должно иметь пространство имен.
Пример:
matchLabels: foo: bar baz: who
- spec.match.namespaceSelector.labelSelector.matchExpressionsмассив объектов
- spec.match.namespaceSelector.matchNamesмассив строк
Включать только определенный набор пространств имен.
- spec.match.namespaceSelector.excludeNamesмассив строк
- spec.match.labelSelectorобъект
- spec.policiesобъект
Обязательный параметр
- spec.policies.allowHostIPCбулевый
Разрешает контейнерам доступ к IPC-пространству имен хоста.
- spec.policies.allowHostNetworkбулевый
Разрешает контейнерам доступ к Network-пространству имен хоста.
- spec.policies.allowHostPIDбулевый
Разрешает контейнерам доступ к PID-пространству имен хоста.
- spec.policies.allowPrivilegeEscalationбулевый
Разрешает процессам в контейнере запрашивать более широкий относительно родительского процесса список привилегий.
- spec.policies.allowPrivilegedбулевый
Разрешает запуск контейнеров в привилегированном режиме.
- spec.policies.allowedAppArmorмассив строк
Список допустимых к использованию контейнерами профилей AppArmor.
Примеры:
allowedAppArmor: runtime/default
allowedAppArmor: unconfined
- Элемент массивастрока
Профиль AppArmor.
- Элемент массивастрока
- spec.policies.allowedCapabilitiesмассив строк
Список привилегий (linux capabilities), доступных контейнеру.
Используйте
ALL
для разрешения всех привилегий.Примеры:
allowedCapabilities: SETGID
allowedCapabilities: SETUID
allowedCapabilities: NET_BIND_SERVICE
- Элемент массивастрока
Allowed linux capabilities.
Допустимые значения:
ALL
,SETPCAP
,SYS_MODULE
,SYS_RAWIO
,SYS_PACCT
,SYS_ADMIN
,SYS_NICE
,SYS_RESOURCE
,SYS_TIME
,SYS_TTY_CONFIG
,MKNOD
,AUDIT_WRITE
,AUDIT_CONTROL
,MAC_OVERRIDE
,MAC_ADMIN
,NET_ADMIN
,SYSLOG
,CHOWN
,NET_RAW
,DAC_OVERRIDE
,FOWNER
,DAC_READ_SEARCH
,FSETID
,KILL
,SETGID
,SETUID
,LINUX_IMMUTABLE
,NET_BIND_SERVICE
,NET_BROADCAST
,IPC_LOCK
,IPC_OWNER
,SYS_CHROOT
,SYS_PTRACE
,SYS_BOOT
,LEASE
,SETFCAP
,WAKE_ALARM
,BLOCK_SUSPEND
- Элемент массивастрока
- spec.policies.allowedFlexVolumesмассив объектов
Список допустимых к использованию драйверов Flex Volumes.
- spec.policies.allowedFlexVolumes.driverстрока
Название драйвера.
- spec.policies.allowedFlexVolumes.driverстрока
- spec.policies.allowedHostPathsмассив объектов
Список префиксов путей, разрешенных для монтирования в контейнере.
Пример:
allowedHostPaths: pathPrefix: "/dev" readOnly: true
- spec.policies.allowedHostPaths.pathPrefixстрока
Обязательный параметр
Префикс, который используется для определения того, какие директории хоста доступны для монтирования в контейнерах.
Использование маски
*
недопустимо. Завершающие слеши отбрасываются при сопоставлении пути и префикса.Например, префикс
/foo
разрешает пути/foo
,/foo/
и/foo/bar
. Напротив, пути/food
или/etc/foo
будут недоступны. - spec.policies.allowedHostPaths.readOnlyбулевый
Включает проверку на то, что все
volumeMount
, попадающие в префикс (параметр pathPrefix), монтируются только на чтение (readOnly: true).По умолчанию:
false
- spec.policies.allowedHostPaths.pathPrefixстрока
- spec.policies.allowedHostPortsмассив объектов
Определяет список диапазонов портов хоста, доступных для использования в качестве
hostPort
.- spec.policies.allowedHostPorts.maxцелочисленный
Максимальное значение диапазона.
- spec.policies.allowedHostPorts.minцелочисленный
Минимальное значение диапазона.
- spec.policies.allowedHostPorts.maxцелочисленный
- spec.policies.allowedProcMountстрока
Определяет допустимые значения монтирования
/proc
для контейнера.Допустимые значения:
Default
,Unmasked
Пример:
allowedProcMount: Unmasked.
- spec.policies.allowedUnsafeSysctlsмассив строк
Список небезопасных ключей sysctl, доступных к использованию.
Используйте
*
для разрешения всех ключей.Примеры:
allowedUnsafeSysctls: kernel.msg*
allowedUnsafeSysctls: net.core.somaxconn
- spec.policies.allowedVolumesмассив строк
Список volume-плагинов, доступных к использованию.
Примеры:
allowedVolumes: hostPath
allowedVolumes: persistentVolumeClaim
- Элемент массивастрока
Допустимые значения:
*
,none
,awsElasticBlockStore
,azureDisk
,azureFile
,cephFS
,cinder
,configMap
,csi
,downwardAPI
,emptyDir
,fc
,flexVolume
,flocker
,gcePersistentDisk
,gitRepo
,glusterfs
,hostPath
,iscsi
,nfs
,persistentVolumeClaim
,photonPersistentDisk
,portworxVolume
,projected
,quobyte
,rbd
,scaleIO
,secret
,storageos
,vsphereVolume
- Элемент массивастрока
- spec.policies.forbiddenSysctlsмассив строк
Список запрещенных к использованию ключей sysctl.
Имеет преимущество перед allowedUnsafeSysctls.
Примеры:
forbiddenSysctls: kernel.msg*
forbiddenSysctls: net.core.somaxconn
- spec.policies.fsGroupобъект
Определяет допустимые к использованию значения
fsGroup
.- spec.policies.fsGroup.rangesмассив объектов
Список диапазонов ID для
fsGroup
, доступных к использованию в режимеMustRunAs
.- spec.policies.fsGroup.ranges.maxцелочисленный
Максимальное значение диапазона.
- spec.policies.fsGroup.ranges.minцелочисленный
Минимальное значение диапазона.
- spec.policies.fsGroup.ranges.maxцелочисленный
- spec.policies.fsGroup.ruleстрока
Обязательный параметр
Правило определения доступных значений
fsGroup
.Допустимые значения:
MustRunAs
,MayRunAs
,RunAsAny
- spec.policies.fsGroup.rangesмассив объектов
- spec.policies.readOnlyRootFilesystemбулевый
Определяет необходимость запуска контейнеров с корневой файловой системой, доступной только для чтения
- spec.policies.requiredDropCapabilitiesмассив строк
Список привилегий (linux capabilities), обязательных к исключению.
Используйте
ALL
для исключения всех привилегий.Примеры:
requiredDropCapabilities: SETGID
requiredDropCapabilities: SETUID
requiredDropCapabilities: NET_BIND_SERVICE
- Элемент массивастрока
Linux capabilities to drop from containers’ specs.
Допустимые значения:
ALL
,SETPCAP
,SYS_MODULE
,SYS_RAWIO
,SYS_PACCT
,SYS_ADMIN
,SYS_NICE
,SYS_RESOURCE
,SYS_TIME
,SYS_TTY_CONFIG
,MKNOD
,AUDIT_WRITE
,AUDIT_CONTROL
,MAC_OVERRIDE
,MAC_ADMIN
,NET_ADMIN
,SYSLOG
,CHOWN
,NET_RAW
,DAC_OVERRIDE
,FOWNER
,DAC_READ_SEARCH
,FSETID
,KILL
,SETGID
,SETUID
,LINUX_IMMUTABLE
,NET_BIND_SERVICE
,NET_BROADCAST
,IPC_LOCK
,IPC_OWNER
,SYS_CHROOT
,SYS_PTRACE
,SYS_BOOT
,LEASE
,SETFCAP
,WAKE_ALARM
,BLOCK_SUSPEND
- Элемент массивастрока
- spec.policies.runAsGroupобъект
Определяет допустимые к использованию значения
runAsGroup
.- spec.policies.runAsGroup.rangesмассив объектов
Список диапазонов ID для
runAsGroup
, доступных к использованию в режимеMustRunAs
.- spec.policies.runAsGroup.ranges.maxцелочисленный
Максимальное значение диапазона.
- spec.policies.runAsGroup.ranges.minцелочисленный
Минимальное значение диапазона.
- spec.policies.runAsGroup.ranges.maxцелочисленный
- spec.policies.runAsGroup.ruleстрока
Обязательный параметр
Правило определения доступных значений
runAsGroup
.Допустимые значения:
MustRunAs
,MayRunAs
,RunAsAny
- spec.policies.runAsGroup.rangesмассив объектов
- spec.policies.runAsUserобъект
Определяет допустимые к использованию значения
runAsUser
.- spec.policies.runAsUser.rangesмассив объектов
Список диапазонов ID для
runAsUser
, доступных к использованию в режимеMustRunAs
.- spec.policies.runAsUser.ranges.maxцелочисленный
Максимальное значение диапазона.
- spec.policies.runAsUser.ranges.minцелочисленный
Минимальное значение диапазона.
- spec.policies.runAsUser.ranges.maxцелочисленный
- spec.policies.runAsUser.ruleстрока
Обязательный параметр
Правило определения доступных значений
runAsUser
.Допустимые значения:
MustRunAs
,MustRunAsNonRoot
,RunAsAny
- spec.policies.runAsUser.rangesмассив объектов
- spec.policies.seLinuxмассив объектов
Определяет допустимые к использованию значения SElinux-меток.
- spec.policies.seLinux.levelстрока
Значения для SELinux level-меток.
- spec.policies.seLinux.roleстрока
Значения для SELinux role-меток.
- spec.policies.seLinux.typeстрока
Значения для SELinux type-меток.
- spec.policies.seLinux.userстрока
Значения для SELinux user-меток.
- spec.policies.seLinux.levelстрока
- spec.policies.seccompProfilesобъект
Определяет список доступных к использованию seccomp-профилей.
- spec.policies.seccompProfiles.allowedLocalhostFilesмассив строк
Определяет локальные профили seccomp (в формате JSON), доступные к использованию, в случае указания
Localhost
в полеallowedProfiles
.Пустой список запрещает использование любых локальных профилей.
- spec.policies.seccompProfiles.allowedProfilesмассив строк
Список seccomp-профилей, доступных к использованию.
- spec.policies.seccompProfiles.allowedLocalhostFilesмассив строк
- spec.policies.supplementalGroupsобъект
Определяет допустимые к использованию значения
supplementalGroups
.- spec.policies.supplementalGroups.rangesмассив объектов
Список диапазонов ID для
supplementalGroups
, доступных к использованию в режимеMustRunAs
.- spec.policies.supplementalGroups.ranges.maxцелочисленный
Максимальное значение диапазона.
- spec.policies.supplementalGroups.ranges.minцелочисленный
Минимальное значение диапазона.
- spec.policies.supplementalGroups.ranges.maxцелочисленный
- spec.policies.supplementalGroups.ruleстрока
Обязательный параметр
Правило определения доступных значений
supplementalGroups
.Допустимые значения:
MustRunAs
,MayRunAs
,RunAsAny
- spec.policies.supplementalGroups.rangesмассив объектов
- spec.policies.allowHostIPCбулевый
- spec.enforcementActionстрока