Посилення безпеки динамічного розподілу ресурсів у вашому кластері

Ця сторінка показує адміністраторам кластера, як зміцнити авторизацію для Динамічного Розподілу Ресурсів (DRA), з акцентом на доступ з мінімальними привілеями для оновлень статусу ResourceClaim.

Перш ніж ви розпочнете

  • Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою minikube або використовувати одну з цих пісочниць:

    Для перевірки версії введіть kubectl version.

  • У вашому кластері налаштовано Динамічний Розподіл Ресурсів (DRA).
  • Ви можете редагувати ресурси RBAC та перезапускати або розгортати компоненти DRA.

Визначте компоненти DRA, які оновлюють статус

Визначте, які ідентичності (зазвичай ServiceAccounts) оновлюють статус ResourceClaim у вашому кластері. Типовими є:

  • kube-scheduler або власний контролер розподілу
  • драйвери DRA на вузлах
  • багатовузлові контролери статусу DRA

Надання мінімально необхідних дозволів для синтетичних субресурсів

Починаючи з Kubernetes v1.36, оновлення статусу DRA вимагають дозволів на синтетичні субресурси на додаток до resourceclaims/status.

Надання дозволів для планувальника та контролера розподілу

Застосуйте роль, яка дозволяє оновлення, повʼязані з привʼязкою:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: dra-binding-updater
rules:
  - apiGroups: ["resource.k8s.io"]
    resources: ["resourceclaims/status"]
    verbs: ["get", "patch", "update"]
  - apiGroups: ["resource.k8s.io"]
    resources: ["resourceclaims/binding"]
    verbs: ["patch", "update"]

Надання дозволів для вузлових DRA драйверів

Використовуйте вузлово-орієнтовані дієслова для драйверів, локальних для вузла:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: dra-node-driver-status-updater
rules:
  - apiGroups: ["resource.k8s.io"]
    resources: ["resourceclaims/status"]
    verbs: ["get", "patch", "update"]
  - apiGroups: ["resource.k8s.io"]
    resources: ["resourceclaims/driver"]
    verbs: ["associated-node:patch", "associated-node:update"]
    resourceNames: ["dra.example.com"]

Надання дозволів для багатовузлового контролера лише за потреби

Використовуйте arbitrary-node:* лише для компонентів, які повинні оновлювати статус з будь-якого вузла:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: dra-multinode-status-updater
rules:
  - apiGroups: ["resource.k8s.io"]
    resources: ["resourceclaims/status"]
    verbs: ["get", "patch", "update"]
  - apiGroups: ["resource.k8s.io"]
    resources: ["resourceclaims/driver"]
    verbs: ["arbitrary-node:patch", "arbitrary-node:update"]
    resourceNames: ["dra.example.com"]

Привʼязка ролей до конкретних ідентичностей

Створіть обʼєкти ClusterRoleBinding для кожної ідентичності компонента та уникайте спільного використання широкої ролі між несумісними компонентами DRA.

Обмежте правила resourceclaims/driver за допомогою resourceNames, де це можливо, щоб ідентичність могла оновлювати статус лише для конкретного драйвера DRA, яким вона керує.

Перевірка та моніторинг

  1. Перевірте, що кожна ідентичність має лише необхідні дієслова та субресурси.
  2. Підтвердіть, що оновлення статусу DRA працюють після розгортання.
  3. Спостерігайте за подіями аудиту API-сервера для відхилених запитів resourceclaims/binding та resourceclaims/driver.

Що далі

Востаннє змінено May 05, 2026 at 3:37 PM PST: [uk] Ukrainian translation (all-in-one) (f7bdd3ee72)