Про интернет

В этой статье представлен список инструментов Linux и функционала Kubernetes, регулирующих безопасность контейнеров. Статья имеет описательный характер для базового понимания настроек безопасности, а также для систематизации полезных инструментов и полей спецификации k8s для этих целей. Статья основана на книгах, представленных в главе «Литература».

Безопасность контейнеров в Linux

Основной особенностью контейнеров является изоляция процессов средствами Linux. При этом, приложения в контейнере делят общее ядро операционной системы с другими приложениями. Какие же ограничения применяют контейнеры? 

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

Ограничения прав процесса 

Можно настроить очень простое разграничение доступа для процесса: наличие или отсутствие прав root.

Также можно разрешить запускать некоторые процессы с привилегиями root обычному пользователю, повесив файлу флаг Setuid (если владелец файла -  пользователь root). Setuid позволяет вызвать процесс от имени владельца, а не от имени запускающего пользователя.

Обычно флаг setuid (+s) используют вспомогательные программы для назначения capabilities - возможностей, для которых требуются повышенные привилегии.

Это небезопасно, например, можно задать бит +s для bash-скрипта и через него под привилегиями root выполнить любое содержимое этого скрипта. Но это более правильный вариант, чем давать исполняемому файлу полные права админа. 

Читать далее

Источник: autoRSS

Перейти на сайт

Другие материалы на сайте b.Z - Записки о гаджетах, людях и музыке