Tag Archives: MimboloveRoleBinding

Kubernetes (k8s) RoleBinding

Автор Itworkroom

В контексте Kubernetes (k8s) RoleBinding — это объект API, который предоставляет права, определённые в Role или ClusterRole, конкретному пользователю, группе пользователей или сервисному аккаунту в пределах определённого пространства имён (namespace).

Простыми словами: RoleBinding связывает «кто» (субъект) с «что можно делать» (роль).

Ключевые понятия

  1. Role (Роль): Набор правил, определяющих, какие действия (verbs: get, list, create, delete) разрешены над какими ресурсами (pods, services, deployments). Role действует только в рамках одного namespace.
  2. ClusterRole (Кластерная роль): Аналогична Role, но действует на уровне всего кластера. Используется для:
    • Ресурсов, не привязанных к namespace (например, nodespersistentvolumes).
    • Разрешения доступа к эндпоинтам API (например, /healthz).
    • Предоставления одинаковых прав во всех namespace сразу (если привязать через RoleBinding).
  3. RoleBinding (Привязка роли): Связывает Role с субъектами внутри одного namespace.
  4. ClusterRoleBinding (Кластерная привязка роли): Связывает ClusterRole с субъектами на уровне всего кластера.

(далее…)

Настройка RBAC через ClusterRoleBinding

Автор Itworkroom

В контексте описанной выше интеграции критически важно правильно разграничить доступ к Kubernetes-кластеру. Аутсорсинговая команда не должна иметь полный доступ ко всем неймспейсам — это риск безопасности. Используем ClusterRoleBinding и RoleBinding в связке с ServiceAccount или внешними identity-провайдерами (OIDC).

Сценарий

  • Есть аутсорсинговая DevOps-команда, которая управляет CI/CD, мониторингом и слаботочной инфраструктурой (IoT Hub).
  • Им нужен доступ только к определённым неймспейсам (monitoringiot-hubci-cd) с возможностью просмотра подов, логов, запуска отладки.
  • Доступ к нодам, secrets (кроме их собственных) и критическим компонентам (kube-system) — запрещён.

Решение: ClusterRole + ClusterRoleBinding (для глобальных прав) и RoleBinding (для неймспейс-специфичных)

Создадим ClusterRole с минимальными правами для чтения ресурсов во всём кластере (например, просмотр нод, storage classes — это бывает нужно для понимания топологии, но без права изменять). А затем через RoleBinding дадим более широкие (например, CRUD подов) только в нужных неймспейсах.
(далее…)

Что такое RoleBinding

Автор Itworkroom

RoleBinding — это объект Kubernetes, который связывает (привязывает) набор разрешений, определенных в Role или ClusterRole, с конкретными пользователями, группами или сервисными аккаунтами. Проще говоря, RoleBinding «наделяет правами» субъектов в кластере.

Архитектура RBAC

Система RBAC состоит из трех основных компонентов:

  1. Role/ClusterRole — что можно делать (набор правил)
  2. Subject — кто (пользователь, группа, сервисный аккаунт)
  3. RoleBinding/ClusterRoleBinding — связывает первые два компонента

Role vs ClusterRole

Role

  • Действует в пределах одного namespace

  • Используется для предоставления прав к ресурсам в конкретном namespace

(далее…)