Модуль Openshift работает с идентификатором пользователя, не совпадающим с пользователем в Dockerfile

У нас был пользователь по умолчанию в Dockerfile и сценарий оболочки точки входа, который нужно было выполнять во время выполнения. Когда мы развернули это в кластере Openshift (4.6), у модуля был другой пользователь, и из-за этого сценария оболочки точки входа произошел сбой, поэтому приложение не запускается. Прошу вас предложить, как выполнить эти сценарии оболочки, даже если пользователь находится в POD.


person kumar kittu    schedule 10.11.2020    source источник
comment
Что это за пользователь по умолчанию, о котором вы тоже говорите? Можете ли вы предоставить более подробную информацию? Быстрое предположение, основанное на том, что вы сказали, будет использовать openshift ограничения контекста безопасности.   -  person acid_fuji    schedule 10.11.2020


Ответы (1)


Openshift предоставляет ограничения контекста безопасности (SCC) для управления разрешениями для модулей. С их помощью вы можете контролировать разрешения/действия, которые может выполнять модуль или набор контейнеров, и к каким ресурсам они могут получить доступ. Несколько вещей, которые SCC позволяют администратору контролировать:

  • Может ли модуль запускать привилегированные контейнеры.
  • Контекст контейнера SELinux.
  • Идентификатор пользователя контейнера.
  • Распределение FSGroup, которому принадлежат тома модуля.
  • Конфигурация допустимых дополнительных групп.
  • Требуется ли для контейнера использование корневой файловой системы только для чтения.
  • Использование типов томов.

SCC состоят из настроек и стратегий, управляющих функциями безопасности, к которым у модуля есть доступ. Если я правильно понял ваши вопросы, вы хотите проверить RunAsUser стратегии:

  1. MustRunAs — для настройки требуется runAsUser. Использует настроенный runAsUser по умолчанию. Проверяет настроенный runAsUser.

  2. MustRunAsRange — требуется определить минимальные и максимальные значения, если не используются предварительно выделенные значения. Использует минимум по умолчанию. Проверяет весь допустимый диапазон.

  3. MustRunAsNonRoot — требуется, чтобы модуль был отправлен с ненулевым runAsUser или имел директиву USER, определенную в образе. По умолчанию не предусмотрено.

  4. RunAsAny — по умолчанию не предусмотрено. Позволяет указать любой runAsUser.

Дополнительную информацию см. на официальном сайте openshift. документы.

person acid_fuji    schedule 16.11.2020