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массив объектов
Список выражений лейблов для подов.
Пример:
1matchExpressions: 2- key: tier 3 operator: In 4 values: 5 - production 6 - staging
- spec.match.labelSelector.matchLabelsобъект
Список лейблов, которые должен иметь под.
Пример:
1matchLabels: 2 foo: bar 3 baz: who
- spec.match.labelSelector.matchExpressionsмассив объектов
- spec.match.namespaceSelectorобъект
Обязательный параметр
Указывает селектор пространства имен для фильтрации объектов.
- spec.match.namespaceSelector.excludeNamesмассив строк
Включить все пространства имен, кроме определенного набора.
- spec.match.namespaceSelector.labelSelectorобъект
Указывает селектор меток для фильтрации пространств имен.
Больше информации в документации.
- spec.match.namespaceSelector.labelSelector.matchExpressionsмассив объектов
Список выражений лейблов для пространств имен.
Пример:
1matchExpressions: 2- key: tier 3 operator: In 4 values: 5 - production 6 - 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объект
Список лейблов, которые должно иметь пространство имен.
Пример:
1matchLabels: 2 foo: bar 3 baz: who
- spec.match.namespaceSelector.labelSelector.matchExpressionsмассив объектов
- spec.match.namespaceSelector.matchNamesмассив строк
Включать только определенный набор пространств имен.
- spec.match.namespaceSelector.excludeNamesмассив строк
- spec.match.labelSelectorобъект
- spec.policiesобъект
Обязательный параметр
- spec.policies.allowedReposмассив строк
Список префиксов, которые может иметь образ контейнера.
- spec.policies.checkContainerDuplicatesбулевый
Проверка имен контейнеров и переменных env на наличие дубликатов.
- spec.policies.checkHostNetworkDNSPolicyбулевый
Проверка, что dnsPolicy
ClusterFirstWithHostNet
установлена для подов сhostNetwork: true
. - массив строк
Требует, чтобы образы контейнера имели тег, отличный от указанных в списке.
Пример:
1disallowedImageTags: latest
- spec.policies.imagePullPolicyстрока
Требуемая политика скачивания образов для контейнеров.
Допустимые значения:
Always
,IfNotPresent
- spec.policies.maxRevisionHistoryLimitцелочисленный
Максимальное значение для истории ревизий.
- spec.policies.priorityClassNamesмассив строк
List of allowed priority class names.
- spec.policies.replicaLimitsобъект
Проверка диапазона разрешенных реплик. Значения включаются в диапазон.
- 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
для просмотра аннотаций.
- spec.policies.requiredAnnotations.annotationsмассив объектов
- spec.policies.requiredLabelsобъект
Список лейблов, которые должен указать объект.
- spec.policies.requiredProbesмассив строк
Список проб, которые необходимы (например,
readinessProbe
).Примеры:
1requiredProbes: livenessProbe
1requiredProbes: readinessProbe
- spec.policies.requiredResourcesобъект
Набор ресурсов, который требуют контейнеры.
- spec.policies.requiredResources.limitsмассив строк
Список ограничений, которые должны соблюдаться (процессор, память или оба).
По умолчанию:
["memory"]
- spec.policies.requiredResources.requestsмассив строк
Список запросов, которые должны быть выполнены (вычислительная мощность, память или и то и другое).
По умолчанию:
["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массив объектов
Список выражений лейблов для подов.
Пример:
1matchExpressions: 2- key: tier 3 operator: In 4 values: 5 - production 6 - staging
- spec.match.labelSelector.matchLabelsобъект
Список лейблов, которые должен иметь под.
Пример:
1matchLabels: 2 foo: bar 3 baz: who
- spec.match.labelSelector.matchExpressionsмассив объектов
- spec.match.namespaceSelectorобъект
Обязательный параметр
Указывает селектор пространства имен для фильтрации объектов.
- spec.match.namespaceSelector.excludeNamesмассив строк
Включить все пространства имен, кроме определенного набора.
- spec.match.namespaceSelector.labelSelectorобъект
Указывает селектор меток для фильтрации пространств имен.
Больше информации в документации.
- spec.match.namespaceSelector.labelSelector.matchExpressionsмассив объектов
Список выражений лейблов для пространств имен.
Пример:
1matchExpressions: 2- key: tier 3 operator: In 4 values: 5 - production 6 - 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объект
Список лейблов, которые должно иметь пространство имен.
Пример:
1matchLabels: 2 foo: bar 3 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.
Примеры:
1allowedAppArmor: runtime/default
1allowedAppArmor: unconfined
- spec.policies.allowedCapabilitiesмассив строк
Список привилегий (linux capabilities), доступных контейнеру.
Используйте
ALL
для разрешения всех привилегий.Примеры:
1allowedCapabilities: SETGID
1allowedCapabilities: SETUID
1allowedCapabilities: 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.allowedHostPathsмассив объектов
Список префиксов путей, разрешенных для монтирования в контейнере.
Пример:
1allowedHostPaths: 2 pathPrefix: "/dev" 3 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.allowedProcMountстрока
Определяет допустимые значения монтирования
/proc
для контейнера.Допустимые значения:
Default
,Unmasked
Пример:
1allowedProcMount: Unmasked.
- spec.policies.allowedUnsafeSysctlsмассив строк
Список небезопасных ключей sysctl, доступных к использованию.
Используйте
*
для разрешения всех ключей.Примеры:
1allowedUnsafeSysctls: kernel.msg*
1allowedUnsafeSysctls: net.core.somaxconn
- spec.policies.allowedVolumesмассив строк
Список volume-плагинов, доступных к использованию.
Примеры:
1allowedVolumes: hostPath
1allowedVolumes: 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.
Примеры:
1forbiddenSysctls: kernel.msg*
1forbiddenSysctls: net.core.somaxconn
- spec.policies.fsGroupобъект
Определяет допустимые к использованию значения
fsGroup
. - spec.policies.readOnlyRootFilesystemбулевый
Определяет необходимость запуска контейнеров с корневой файловой системой, доступной только для чтения
- spec.policies.requiredDropCapabilitiesмассив строк
Список привилегий (linux capabilities), обязательных к исключению.
Используйте
ALL
для исключения всех привилегий.Примеры:
1requiredDropCapabilities: SETGID
1requiredDropCapabilities: SETUID
1requiredDropCapabilities: 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.runAsUserобъект
Определяет допустимые к использованию значения
runAsUser
. - spec.policies.seLinuxмассив объектов
Определяет допустимые к использованию значения SElinux-меток.
- 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.ruleстрока
Обязательный параметр
Правило определения доступных значений
supplementalGroups
.Допустимые значения:
MustRunAs
,MayRunAs
,RunAsAny
- spec.policies.supplementalGroups.rangesмассив объектов
- spec.policies.allowHostIPCбулевый
- spec.enforcementActionстрока