Kubernetes - создать политику безопасности - RBAC

Thank you for reading this post, don't forget to subscribe!
Поли­ти­ка без­опас­но­сти пода Kubernetes – это ресурс, кото­рый кон­тро­ли­ру­ет без­опас­ность спе­ци­фи­ка­ции это­го пода.
Исполь­зуя опре­де­ле­ние объ­ек­та PodSecurityPolicy, вы може­те управ­лять таки­ми веща­ми, как:
  • Воз­мож­ность запус­ка при­ви­ле­ги­ро­ван­ных контейнеров
  • Повы­ше­ние привилегий
  • Доступ к типам томов
  • Доступ к фай­ло­вым систе­мам хоста
  • Исполь­зо­ва­ние хост-сети

Как создать поли­ти­ку без­опас­но­сти пода Kubernetes
Давай­те созда­дим поли­ти­ку без­опас­но­сти пода Kubernetes, кото­рая предот­вра­ща­ет созда­ние при­ви­ле­ги­ро­ван­ных моду­лей и кон­тро­ли­ру­ет доступ к томам.
Во-пер­вых, мы долж­ны создать файл YAML.
В тер­ми­на­ле вве­ди­те команду:
nano psp.yaml
В этот файл вставь­те следующее:

В этом фай­ле мы запре­ща­ем созда­ние при­ви­ле­ги­ро­ван­ных моду­лей с помо­щью строки:

Мы так­же раз­ре­ша­ем сле­ду­ю­щее (через пра­ви­ло RunAsAny):
  • SeLinux – поз­во­ля­ет любо­му поль­зо­ва­те­лю управ­лять SELinux в модулях.
  • Linux groups – допол­ни­тель­ные группы
  • runAsUser – поз­во­ля­ет поль­зо­ва­те­лям запус­кать точ­ки вхо­да в кон­тей­нер с дру­гим име­нем пользователя
  • fsGroup – тома, кото­рые под­дер­жи­ва­ют управ­ле­ние собственностью

Сохра­ни­те и закрой­те файл.

Теперь мы долж­ны при­ме­нить политику.

Это дела­ет­ся с помо­щью команды:
Вывод:

В любой момент вы може­те изме­нить файл YAML и выпол­нить ту же коман­ду, что­бы пере­кон­фи­гу­ри­ро­вать политику.

Убе­ди­тесь, что ваша поли­ти­ка доступ­на, вве­дя команду:

В выво­де будут пере­чис­ле­ны детали:
Created with GIMP

Как назначить политику безопасности Kubernetes поду

Теперь, когда вы созда­ли свою поли­ти­ку, воз­ни­ка­ет закон­ный вопрос как ее назначить?

Это дела­ет­ся с помо­щью управ­ле­ния досту­пом на осно­ве ролей (RBAC).

Создай­те кон­фи­гу­ра­цию RBAC для поли­ти­ки с помо­щью команды:

В этот файл вставь­те следующее:

 

При­ве­ден­ный выше файл создаст роль кла­сте­ра с име­нем psp, кото­рая может исполь­зо­вать нашу новую поли­ти­ку, кото­рую мы назва­ли psp.

Это так­же создаст при­вяз­ку роли на уровне кла­сте­ра, кото­рая предо­став­ля­ет доступ к роли psp: psp каж­до­му аутен­ти­фи­ци­ро­ван­но­му пользователю.

Сохра­ни­те и закрой­те файл.
Создай­те эту поли­ти­ку с помо­щью команды:

Теперь мы созда­ли поли­ти­ку и кон­троль RBAC.

Давай­те выяс­ним, смо­жем ли мы теперь исполь­зо­вать эту новую политику.

Вве­ди­те команду:

Выход дол­жен ска­зать «yes».

Конеч­но, систе­ма долж­на ска­зать «yes», так как я поль­зо­ва­тель с пра­ва­ми администратора.

Но что, если мы про­ве­рим это с дру­гим пользователем?

Сде­лай­те это с помо­щью команды:

Теперь вы долж­ны уви­деть «no» в ответе.

Вы толь­ко что созда­ли поли­ти­ку без­опас­но­сти пода Kubernetes, при­сво­и­ли ей RBAC и про­те­сти­ро­ва­ли ее, что­бы убе­дить­ся, что поли­ти­ка дей­стви­тель­но работает.