В ограниченном PodSecurityPolicy нельзя использовать MayRunAs вместо MustRunAs - PullRequest
0 голосов
/ 06 августа 2020

В документации k8s есть пример ограниченного PodSecurityPolicy:

https://kubernetes.io/docs/concepts/policy/pod-security-policy/#example -policies

, содержащий следующий фрагмент:

  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 Ответ

0 голосов
/ 13 августа 2020

Следовательно, не было бы лучше использовать MayRunAs вместо MustRunAs для ограничительной политики PodSecurityPolicy?

С моей точки зрения, MustRunAs является более строгим, чем MayRunAs. Давайте посмотрим на Pull Request , где MayRunAs был введен:

Добавляет значение MayRunAs среди других групповых стратегий. Эта стратегия позволяет определить определенный диапазон GID для FSGroupStrategy и SupplementalGroupStrategy в PSP.

Эта новая стратегия работает аналогично стратегии «MustRunAs», за исключением случаев, когда в контексте безопасности модуля / контейнера не указан GID. тогда для соответствующих контейнеров не создается GID.

А вот примечания к выпуску:

Объекты PodSecurityPolicy теперь поддерживают правило MayRunAs для fsGroup и supplementalGroups варианты. Это позволяет указывать диапазоны разрешенных GID для подов / контейнеров без принудительного использования GID по умолчанию, как это делает MustRunAs. Это означает, что контейнер, к которому применяется такая политика, не будет использовать какой-либо GID fsGroup / AdditionalGroup, если он не указан явно, но указанный GID все равно должен попадать в диапазон GID в соответствии с политикой.

Для обоих случаев, когда GID не указан в определении контейнера:

  • для MustRunAs будет установлено по умолчанию (минимально)
  • для MayRunAs не будет установлено по умолчанию .
...