Openshift - SCC
Reading time: 2 minutes
Оригінальний автор цієї сторінки Guillaume
Визначення
У контексті OpenShift, SCC означає Security Context Constraints. Security Context Constraints - це політики, які контролюють дозволи для подів, що працюють на кластерах OpenShift. Вони визначають параметри безпеки, за якими под може працювати, включаючи дії, які він може виконувати, і ресурси, до яких він може отримати доступ.
SCC допомагають адміністраторам забезпечувати дотримання політик безпеки в кластері, гарантуючи, що поди працюють з відповідними дозволами та дотримуються організаційних стандартів безпеки. Ці обмеження можуть вказувати на різні аспекти безпеки подів, такі як:
- Linux capabilities: Обмеження можливостей, доступних контейнерам, таких як можливість виконувати привілейовані дії.
- SELinux context: Застосування контекстів SELinux для контейнерів, які визначають, як процеси взаємодіють з ресурсами в системі.
- Read-only root filesystem: Запобігання змінам файлів у певних каталогах контейнерами.
- Allowed host directories and volumes: Вказування, які каталоги та томи хоста може монтувати под.
- Run as UID/GID: Вказування ідентифікаторів користувача та групи, під якими працює процес контейнера.
- Network policies: Контроль мережевого доступу для подів, наприклад, обмеження вихідного трафіку.
Налаштувавши SCC, адміністратори можуть забезпечити, щоб поди працювали з відповідним рівнем ізоляції безпеки та контролю доступу, зменшуючи ризик вразливостей безпеки або несанкціонованого доступу в кластері.
В основному, щоразу, коли запитується розгортання пода, виконується процес прийому, як показано нижче:

Цей додатковий рівень безпеки за замовчуванням забороняє створення привілейованих подів, монтування файлової системи хоста або встановлення будь-яких атрибутів, які можуть призвести до ескалації привілеїв.
Список SCC
Щоб перерахувати всі SCC за допомогою Openshift Client:
$ oc get scc #List all the SCCs
$ oc auth can-i --list | grep securitycontextconstraints #Which scc user can use
$ oc describe scc $SCC #Check SCC definitions
Всі користувачі мають доступ до стандартних SCC "restricted" та "restricted-v2", які є найсуворішими SCC.
Використання SCC
SCC, що використовується для поду, визначається всередині анотації:
$ oc get pod MYPOD -o yaml | grep scc
openshift.io/scc: privileged
Коли користувач має доступ до кількох SCC, система використовуватиме той, який відповідає значенням контексту безпеки. В іншому випадку виникне помилка заборони.
$ oc apply -f evilpod.yaml #Deploy a privileged pod
Error from server (Forbidden): error when creating "evilpod.yaml": pods "evilpod" is forbidden: unable to validate against any security context constrain