Обзор RBAC Wizard — инструмента для анализа и визуализации конфигурации RBAC в кластере Kubernetes
DevOps-инженер «Фланта» Юрий Дубовик расскажет о RBAC Wizard — удобном инструменте для тех, кому периодически нужно проводить аудит прав доступа в кластере Kubernetes.
228 открытий2К показов

Будь собой, остальные роли заняты.
Меня зовут Юрий Дубовик, я DevOps-инженер компании «Флант». Мы занимаемся DevOps-сопровождением — помогаем другим компаниям делать инфраструктуру надёжной и создавать комфортную среду для разработки.
Мы много работаем с Kubernetes, и иногда нашим инженерам нужно разобраться с настроенными правами доступа к разным объектам в K8s-кластере клиента. Приходится тратить много времени на сбор и упорядочивание информации, а потом сопоставлять, кому какие роли были назначены. Но сравнительно недавно появился Open Source-инструмент, который упрощает этот процесс, — RBAC Wizard.
RBAC Wizard позволяет быстро проанализировать конфигурации RBAC (Role-based access control) в кластере, а главное, может визуализировать всю собранную информацию. В этом обзоре я покажу, как установить этот инструмент с помощью Helm, и сравню его использование с ручным подходом.
Зачем нужен аудит конфигураций RBAC
RBAC — это механизм распределения прав доступа к объектам в Kubernetes-кластере. Подробно останавливаться на принципах работы RBAC я не буду, поскольку об этом уже написано множество материалов.
Вместо этого скажу пару слов о том, зачем нужен анализ конфигураций RBAC. Он помогает убедиться, что пользователи и сервисы имеют в кластере Kubernetes только те права, которые им действительно нужны для работы. Такой анализ позволяет выявить избыточные или ненужные привилегии, минимизировать риски случайных или злонамеренных действий, а также повысить безопасность и соответствие политике доступа в кластере.
Что такое RBAC Wizard
RBAC Wizard — это инструмент на Go с открытым исходным кодом, который помогает анализировать и визуализировать конфигурации RBAC вашего кластера Kubernetes. Он обеспечивает табличное и графическое представление объектов RBAC Kubernetes.
Хотя проект появился на GitHub недавно, в 2024 году, он уже успел привлечь интерес сообщества. Сейчас у RBAC Wizard чуть больше 270 звёзд.
Как установить RBAC Wizard
RBAC Wizard можно установить локально, запустить в контейнере или развернуть в кластере с помощью Helm. Процесс просто и понятно описан в самом репозитории.
Я выбрал вариант установки с помощью Helm:
После установки в кластере Kubernetes в пространстве имён rbac-wizard
появится одноимённый ингресс rbac-wizard
:
У ингресса указан хост rbac-wizard.local
. Заменяем его на нужный нам адрес — домен, который находится под нашим управлением, например new.example.com
. По этому адресу мы потом увидим RBAC Wizard в браузере.
Это всё! Больше никаких настроек не требуется. У меня на установку ушло 5–10 минут.
Подготовка тестовых ролей
Чтобы сравнить между собой решение задачи по анализу конфигураций в Kubernetes-кластере без RBAC Wizard и с ним, создадим тестовые ServiceAccount, ClusterRole и ClusterRoleBinding. Разумеется, если вы используете инструмент в готовом кластере, этот шаг стоит пропустить:
Анализ конфигурации RBAC без RBAC Wizard
Давайте посмотрим, как можно решить задачу без RBAC Wizard.
Если требуется найти пользователя или ServiceAccount, которые имеют определённую роль, выполняем следующий запрос:
Пример ответа:
Если же требуется найти все роли, которые закреплены за пользователем или ServiceAccount’ом, запрос будет таким:
Пример ответа:
Если мы получим большой объём ролей и связей с пользователями или ServiceAccount’ами, то придётся заносить все информацию в таблицу для дальнейшего анализа. Держать в голове все связи невозможно — такой метод сбора информации займёт очень много времени.
Анализ конфигурации с помощью RBAC Wizard
Теперь перейдём в браузере по указанному нами адресу в поле host
спеки ингресса rbac-wizard и посмотрим, удобнее ли анализировать конфигурации с RBAC Wizard.
Интерфейс инструмента интуитивно понятный. В верхней его части находится RBAC Table. Как понятно из названия, здесь представлена информация о ClusterRoleBinding и RoleBinding в виде таблицы с возможностью поиска:
Посмотреть подробности о том, какая роль кому назначена, можно, нажав на три вертикально расположенные точки в правой части таблицы:
Под таблицей отображается RBAC Map — граф с визуализацией объектов RBAC и их связей. В фильтре можно выбирать ClusterRoleBinding, RoleBinding и посмотреть их взаимосвязь с Role, ClusterRole, User или Group:
А так выглядят более сложные связи:
Привязку к подам утилита не показывает, то есть узнать, кто именно использует аккаунт, не получится.
Итого, RBAC Wizard позволяет мгновенно получить таблицу со всеми ClusterRoleBinding и RoleBinding, наглядно увидеть, кому и какие роли назначены, и быстро найти нужную информацию с помощью поиска. А граф может пригодиться в случаях, когда связей много.
Заключение
Буду краток. RBAC Wizard — простой как молоток инструмент. Но он неплохо упрощает жизнь, позволяя быстро проводить аудит ролей в кластере Kubernetes.
Из тех возможностей, которых пока не хватает, хотелось бы иметь фильтрацию по графу по ключевым словам, а не по точному названию. Также была бы полезна кликабельность графа, при которой описание объектов открывалось бы во всплывающем окне либо отображалась бы какая-то взаимосвязь графа с информацией из таблицы. Ну и будет здорово, если в инструменте появится ранжирование ролей по уровню доступа.
Минутка рекламы
Если перед вами стоят задачи по переходу на Kubernetes, внедрению DevOps-практик или сокращению Time to Market, а своих ресурсов и опыта недостаточно, обращайтесь к нам во «Флант». Мы внедрим проверенные технологии, возьмём на себя полный цикл работ и будем сопровождать вашу инфраструктуру силами выделенной команды с гарантиями по SLA.
228 открытий2К показов