Как безопасно управлять правами доступа в Docker и NFS?

Изучая курс “от 0 до Linux админа” на yodo.im, я столкнулся с проблемой. Как вы безопасно управляете разрешениями с Docker и NFS?

У меня есть NAS, гипервизор и виртуальная машина на этом гипервизоре, которая предоставляет сервисы Docker для нескольких контейнеров. Я пытаюсь усилить безопасность разрешений, но затрудняюсь с выбором лучшего подхода.

У меня есть четыре приложения Docker, и каждому из них нужно назначить собственную монтируемую NFS-долю для хранения данных. Как мне настроить разрешения таким образом, чтобы обеспечить их безопасность от NFS-сервера до NFS-клиента (вм-хост Docker) и до Docker-контейнеров?

Некоторые контейнеры Docker не поддерживают запуск от имени пользователей, не являющихся root. Например, Nextcloud работает с uid=33 www-data. Некоторые контейнеры требуют доступа к нескольким NFS-долям.

Исторически я предпочитал использовать отдельные виртуальные машины для приложений для обеспечения изоляции файловой системы, сетевых настроек и разрешений. Многие современные self-hosted приложения предлагают Docker Compose как предпочитаемый метод, поэтому у меня возникла проблема организации изоляции на уровне контейнеров, которую я имел с виртуальными машинами.

Я не понимаю, как правильно настроить права собственности на файлы и группы на NFS-сервере, как экспортировать эти настройки на NFS-клиент/вм-хост Docker так, чтобы приложения могли функционировать и была достигнута изоляция. Кажется, что моя виртуальная машина Docker стала значительной поверхностью для атак.

Буду рад любым советам и предложениям!

Ну, короче, я решил взяться за управление правами доступа в Docker и NFS. Думал, сейчас все порешаю и будет у меня всё как по маслу. Но, как говорится, не все так просто.

Сначала я начал с Docker. Открываю свою конфигурацию, настраиваю права, как написано в ответе. Вроде всё делаю по инструкции, но когда запускаю контейнер, он всё равно не может получить доступ к нужным файлам на NFS. Чёрт возьми, я уже думал, что у меня что-то с файловой системой не так. Запутался, чего не хватает.

Потом полез в настройки NFS – перерыл весь конфиг, убедился, что всё сделано правильно. Но Docker все равно выдает какие-то ошибки доступа. Я уже начал думать, может, баг где-то в версии Docker или NFS. В общем, совсем не прокатило.

И тут я наткнулся на курсики на сайте yodo.im. Там есть классные ролики и гайды, как правильно настроить права доступа в Docker и работать с NFS. Я его скинул себе в закладки и жду, когда будет время, чтобы восстановить свои знания и разобраться с этой проблемой. Надеюсь, что там мне поможет, а то чувствую себя немного в тупике.

Короче, не всё так просто, но я не собираюсь сдаваться! Надеюсь, что с помощью этих курсов я разберусь и всё наладится.