0Pricing
DevOps Bootcamp · Урок

Ролевое управление доступом (RBAC)

Управляйте разрешениями пользователей и служебных учётных записей в кластере с помощью ролей RBAC и привязок ролей.

«Ролевое управление доступом (RBAC)» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Что такое RBAC в Kubernetes?

Добро пожаловать! В этом уроке мы подробно рассмотрим управление доступом на основе ролей (RBAC) — важнейшую функцию безопасности Kubernetes.

RBAC помогает управлять тем, кто и что может делать в вашем кластере. Это своего рода вышибала для ресурсов Kubernetes, который следит за тем, чтобы только авторизованные пользователи и приложения могли выполнять определённые действия.

Почему RBAC необходим

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

  • Безопасность: предотвращает несанкционированный доступ и операции.
  • Соответствие требованиям: помогает выполнять нормативные требования к управлению доступом.
  • Минимальные привилегии: гарантирует, что пользователи и приложения получают только действительно необходимые разрешения.

Основные понятия RBAC

RBAC в Kubernetes опирается на несколько основных компонентов:

  • Субъекты: «кто» (пользователи, сервисные учётные записи, группы).
  • Роли: «что» (набор разрешений).
  • RoleBindings: «как» (связывают Role с субъектом).
  • ClusterRoles и ClusterRoleBindings: варианты Role и RoleBinding, действующие во всём кластере.

Субъекты: пользователи и ServiceAccount

Kubernetes должен знать, кто запрашивает выполнение действия. Такие объекты называются субъектами:

  • Пользователи: обычно администраторы или разработчики. Kubernetes не управляет пользователями напрямую, а полагается на внешнюю аутентификацию.
  • ServiceAccount: объекты Kubernetes, используемые приложениями или процессами, работающими внутри подов. Они необходимы для обмена данными между подом и сервером API.

Определение разрешений с помощью ролей

Role определяет набор разрешений в пределах определённого пространства имён. Она указывает, какие действия (глаголы) можно выполнять над какими ресурсами.

Например, Role может разрешать получать и перечислять поды в пространстве имён «default».

Пример Role: чтение подов

Ниже приведено определение YAML для Role с именем pod-reader. Эта Role предоставляет разрешения на получение, перечисление и наблюдение (мониторинг) за подами.

Обратите внимание на apiGroups: [""] — оно указывает на основную группу API Kubernetes.

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: pod-reader
  namespace: default
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]

Предоставление разрешений с помощью RoleBindings

RoleBinding связывает определённую Role с одним или несколькими субъектами (пользователями, сервисными учётными записями или группами) в определённом пространстве имён.

Это связь, которая означает: «Этот пользователь или приложение может выполнять в данном пространстве имён действия, разрешённые этой Role».

Пример RoleBinding: предоставление доступа

Этот RoleBinding связывает нашу Role pod-reader с ServiceAccount с именем my-app-sa в пространстве имён default. Теперь my-app-sa может читать поды.

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods-binding
  namespace: default
subjects:
- kind: ServiceAccount
  name: my-app-sa # The service account getting permissions
  namespace: default
roleRef:
  kind: Role
  name: pod-reader # The Role being granted
  apiGroup: rbac.authorization.k8s.io

ClusterRoles и ClusterRoleBindings

Иногда нужны разрешения, действующие во всём кластере, а не только в одном пространстве имён. В таких случаях используются ClusterRoles и ClusterRoleBindings.

  • ClusterRole: определяет разрешения для ресурсов уровня кластера (например, узлов и постоянных томов) или для действий во всех пространствах имён (например, «перечислить все поды»).
  • ClusterRoleBinding: связывает ClusterRole с субъектами и предоставляет разрешения во всём кластере.

Быстрая проверка RBAC

Разработчику нужно развёртывать новые приложения только в пространстве имён dev. Какие два ресурса RBAC Kubernetes следует прежде всего использовать, чтобы предоставить ему именно это разрешение?

Итоги: основы RBAC

Отличная работа! Вы изучили основные принципы RBAC в Kubernetes:

  • RBAC управляет тем, кто может взаимодействовать с ресурсами вашего кластера.
  • Roles определяют разрешения в пределах пространства имён.
  • RoleBindings связывают Roles с субъектами (пользователями и сервисными учётными записями).
  • ClusterRoles и ClusterRoleBindings управляют разрешениями во всём кластере.

Освоение RBAC — важная часть защиты среды Kubernetes!

Часто задаваемые вопросы

Урок «Ролевое управление доступом (RBAC)» бесплатный?

Да — полный текст урока «Ролевое управление доступом (RBAC)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Ролевое управление доступом (RBAC)»?

Управляйте разрешениями пользователей и служебных учётных записей в кластере с помощью ролей RBAC и привязок ролей. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Ролевое управление доступом (RBAC)»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Ролевое управление доступом (RBAC)
  2. Сетевые политики для изоляции
  3. Стандарты безопасности Pod
  4. Сервисные аккаунты и идентичность рабочих нагрузок
← Назад к DevOps Bootcamp