В ограниченном PodSecurityPolicy нельзя использовать MayRunAs вместо MustRunAs
В документации k8s есть пример ограниченного PodSecurityPolicy:
https://kubernetes.io/docs/concepts/policy/pod-security-policy/
содержащий следующий фрагмент:
supplementalGroups:
rule: 'MustRunAs'
ranges:
# Forbid adding the root group.
- min: 1
max: 65535
fsGroup:
rule: 'MustRunAs'
ranges:
# Forbid adding the root group.
- min: 1
max: 65535
Мне интересно, почему они используют правило "MustRunAs" вместо "MayRunAs".
В документации для MustRunAs указано: "По умолчанию используется минимальное значение первого диапазона".
Следовательно, я понимаю, что как SupplementalGroup, так и fsGroup по умолчанию будут иметь значение 1 для любого контейнера (если не указано иное в pod или контейнере securityContext), тогда как, если бы использовался MayRunAs, не было бы назначено по умолчанию additionalGroup / fsGroup.
Следовательно, не было бы лучше использовать MayRunAs вместо MustRunAs для ограничительной политики PodSecurityPolicy?
1 ответ
Следовательно, не было бы лучше использовать MayRunAs вместо MustRunAs для ограничительной политики PodSecurityPolicy?
С моей точки зрения MustRunAs
более строгий, чем MayRunAs
. Посмотрим запрос на слияние, гдеMayRunAs
был представлен:
Добавляет значение MayRunAs среди других групповых стратегий. Эта стратегия позволяет определить определенный диапазон GID для FSGroupStrategy и SupplementalGroupStrategy в PSP.
Эта новая стратегия работает аналогично стратегии "MustRunAs", за исключением того, что если в контексте безопасности модуля / контейнера не указан GID, то для соответствующих контейнеров GID не создается.
А вот и примечания к выпуску:
Объекты PodSecurityPolicy теперь поддерживают
MayRunAs
правило дляfsGroup
а такжеsupplementalGroups
параметры. Это позволяет указывать диапазоны разрешенных GID для подов / контейнеров без принудительного использования GID по умолчанию.MustRunAs
делает. Это означает, что контейнер, к которому применяется такая политика, не будет использовать какой-либо GID fsGroup / AdditionalGroup, если он не указан явно, однако указанный GID должен по-прежнему попадать в диапазон GID в соответствии с политикой.
Для обоих случаев, когда GID не указан в определении контейнера:
- за
MustRunAs
будет установлен по умолчанию (минимальный) - за
MayRunAs
не будет установлен по умолчанию.