Перейти до основного вмісту
Версія: 3.22.0

Role-Based Access Control

Цей розділ посібника з найкращих практик розглядає створення та форматування ресурсів RBAC у маніфестах чарту.

Ресурси RBAC це:

  • ServiceAccount (обмежений простором імен)
  • Role (обмежений простором імен)
  • ClusterRole
  • RoleBinding (обмежений простором імен)
  • ClusterRoleBinding

Конфігурація YAML​

Конфігурація RBAC та ServiceAccount повинна здійснюватися під окремими ключами. Це окремі речі. Розділення цих двох концепцій у YAML знімає неоднозначність і робить це ясніше.

rbac:
# Вказує, чи повинні бути створені ресурси RBAC
create: true

serviceAccount:
# Вказує, чи повинен бути створений ServiceAccount
create: true
# Імʼя ServiceAccount для використання.
# Якщо не вказано і create дорівнює true, імʼя генерується за допомогою шаблону fullname
name:

Цю структуру можна розширити для складніших чартів, які потребують кількох ServiceAccount.

someComponent:
serviceAccount:
create: true
name:
anotherComponent:
serviceAccount:
create: true
name:

Ресурси RBAC повинні бути стандартно створені​

rbac.create має бути булевим значенням, яке контролює, чи створюються ресурси RBAC. Стандартне значення має бути true. Користувачі, які бажають самостійно управляти контролем доступу RBAC, можуть встановити це значення в false (у цьому випадку дивіться нижче).

Використання ресурсів RBAC​

serviceAccount.name має бути встановлено на імʼя ServiceAccount, яке буде використовуватися доступними ресурсами, створеними чартом.

  • serviceAccount.create = true → створити ServiceAccount з цим імʼям
  • імʼя не вказано → імʼя генерується за допомогою шаблону fullname
  • serviceAccount.create = false → не створюється, але асоціюється з тими ж ресурсами
  • serviceAccount.create = false та імʼя не вказано → використовується стандартний ServiceAccount

Для ServiceAccount слід використовувати наступний допоміжний шаблон.

{{/*
Створіть імʼя ServiceAccount для використання
*/}}
{{- define "mychart.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "mychart.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}