Внимание! Мы категорически не рекомендуем создавать Pod’ы и ReplicaSet’ы – эти объекты являются второстепенными и должны создаваться из других контроллеров. Доступ к созданию и изменению Pod’ов и ReplicaSet’ов полностью отсутствует.
Внимание! Режим multi-tenancy (авторизация по namespace) в данный момент реализован по временной схеме и не гарантирует безопасность! Если webhook, который реализовывает систему авторизации по какой-то причине будет не доступен, авторизация по namespace (опции
allowAccessToSystemNamespaces
,namespaceSelector
иlimitNamespaces
в CR) перестанет работать и пользователи получат доступы во все namespace. После восстановления доступности webhook’а все вернется на свои места.
Вся настройка прав доступа происходит с помощью Custom Resources.
Модуль включен по умолчанию в наборах модулей: Default
, Managed
.
Модуль выключен по умолчанию в наборе модулей Minimal
.
Чтобы настроить модуль используйте custom resource ModuleConfig
с именем user-authz
(подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/user-authz
для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: user-authz
spec:
version: 1
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 1
- controlPlaneConfiguratorобъект
Настройки параметров для модуля автоматической настройки kube-apiserver control-plane-manager.
- controlPlaneConfigurator.enabledбулевый
Передавать ли в control-plane-manager параметры для настройки authz-webhook (см. параметры control-plane-manager’а).
При выключении этого параметра, модуль
control-plane-manager
будет считать, что по умолчанию Webhook-авторизация выключена и, соответственно, если не будет дополнительных настроек, тоcontrol-plane-manager
будет стремиться вычеркнуть упоминания Webhook-плагина из манифеста. Даже если вы настроите манифест вручную.По умолчанию:
true
Примеры:
enabled: true
enabled: false
- controlPlaneConfigurator.enabledбулевый
- enableMultiTenancyбулевый
Включить авторизацию по namespace (режим — multi-tenancy).
Все настройки
kube-apiserver
, необходимые для работы авторизации по namespace, выполняются автоматически модулем control-plane-manager (подробнее).Доступно только в версии Enterprise Edition.
По умолчанию:
false
Примеры:
enableMultiTenancy: true
enableMultiTenancy: false