Docker поддерживает переназначение пространства имен пользователя, так что пространство имен пользователя полностью отделено от гостья.
Текущее поведение по умолчанию гарантирует, что контейнеры получат собственное управление пользователями и группами, то есть их собственную версию /etc/passwd
и /etc/group
, но процессы контейнера выполняются с одинаковыми идентификаторами UID в хост-системе. Это означает, что если ваш контейнер работает с UID 1 (root), он также будет работать на хосте с правами root. Точно так же, если в вашем контейнере есть пользователь john с установленным UID 1001 и он запускает свой основной процесс с этим пользователем, на хосте он также будет работать с UID 1001, который может принадлежать пользователю Will и также может иметь права администратора.
Чтобы сделать изоляцию пространства имен пользователя полной, необходимо включить переназначение, которое сопоставляет UID в контейнере с разными UID на хосте. Таким образом, UID 1 в контейнере будет сопоставлен с непривилегированным UID на хосте.
Есть ли в Kubernetes поддержка для включения этой функции в базовой среде выполнения контейнера? Будет ли работать из коробки без проблем?