Применение профиля безопасности OpenCPU AppArmor в Docker-контейнере - PullRequest
0 голосов
/ 14 марта 2019

Сценарий

Я настраиваю производственный веб-сайт, взаимодействующий с R-сервером через http-слой OpenCPU. Этот производственный сайт будет / устанавливается на док-машину Ubuntu 16.04 в контейнере.

Проблема

Мне нужно защитить серверную часть R (т. Е. OpenCPU в качестве сторожевого устройства) от возможного злоупотребления, например, Я бы хотел отключить список каталогов . В конце концов, это простая конечная точка http.

Следующий фрагмент информации из файла документации сервера, а также с официальной страницы docker hub заставил меня задуматься:

"Docker имеет свою собственную модель безопасности и отключает другие модули безопасности на основе Linux, такие как AppArmor или SELinux. Так что имейте в виду, что среда выполнения API OpenCPU в контейнере полностью неограничена."

Вопрос

Могу ли я просто повторно использовать существующий профиль AppArmor OpenCPU и заставить хост-машину Docker ограничивать разрешения запущенного процесса контейнера Docker? Я подумал, что да, вот что я сделал - на основе RAppArmor readme :

  • установил упакованный пакет RAppArmor
  • скопировал профили из /usr/local/lib/R/site-library/RAppArmor/profiles/debian/* в хост-машины докера /etc/apparmor.d/ каталог
  • активировал профиль AppArmor с помощью sudo apparmor_parser -r -W /etc/apparmor.d/usr.bin.r
  • перезапустил сервис AppArmor sudo service apparmor restart
  • указал профиль apparmor в соответствующем docker-compose.yml, добавив:
 security_opt:
   - apparmor:/usr/bin/R
  • убедившись, что профиль устройства загружен docker inspect myOpenCPUContainer | grep apparmor. Это было: "AppArmorProfile": "/usr/bin/R".

К сожалению, когда я проверяю логи docker logs myOpenCPUContainer, возвращается:

/bin/sh: error while loading shared libraries: libc.so.6: cannot stat shared object: Permission denied

Я был бы очень благодарен за помощь в том, что я делаю не так. Или предложения о других способах защиты докеризованного контейнера OpenCPU.

...