ClusterAuthorizationRule
Scope: Cluster
Управляет настройками RBAC и авторизацией по namespace.
- specобъект
Обязательный параметр
- spec.accessLevelстрока
Уровень доступа:
User
— позволяет получать информацию обо всех объектах (включая доступ к журналам Pod’ов), но не позволяет заходить в контейнеры, читать секреты и выполнять port-forward;PrivilegedUser
— то же самое, что и User, но позволяет заходить в контейнеры, читать секреты, а также позволяет удалять Pod’ы (что обеспечивает возможность перезагрузки);-
Editor
— то же самое, что иPrivilegedUser
, но предоставляет возможность создавать, изменять и удалять namespace и все объекты, которые обычно нужны для прикладных задач;Важно! т.к. Editor уполномочен редактировать RoleBindings, он может сам себе расширить полномочия в рамках namespace.
Admin
— то же самое, что и Editor, но позволяет удалять служебные объекты (производные ресурсы, например,ReplicaSet
,certmanager.k8s.io/challenges
иcertmanager.k8s.io/orders
);-
ClusterEditor
— то же самое, что иEditor
, но позволяет управлять ограниченным набором cluster-wide объектов, которые могут понадобиться для прикладных задач (ClusterXXXMetric
,ClusterRoleBindings
,KeepalivedInstance
,DaemonSet
и т.д). Роль для работы оператора кластера.Важно! т.к.
ClusterEditor
уполномочен редактироватьClusterRoleBindings
, он может сам себе расширить полномочия. -
ClusterAdmin
— то же самое, что и ClusterEditor + Admin, но позволяет управлять служебными cluster-wide объектами (производные ресурсы, например, MachineSets, Machines, OpenstackInstanceClasses…, а так же ClusterAuthorizationRule). Роль для работы администратора кластера.Важно! т.к.
ClusterAdmin
уполномочен редактироватьClusterRoleBindings
, он может сам себе расширить полномочия. SuperAdmin
— разрешены любые действия с любыми объектами, при этом ограниченияlimitNamespaces
(см. ниже) продолжат работать.
Допустимые значения:
User
,PrivilegedUser
,Editor
,Admin
,ClusterEditor
,ClusterAdmin
,SuperAdmin
Пример:
accessLevel: PrivilegedUser
- spec.additionalRolesмассив объектов
Дополнительные роли, которые необходимо выдать для заданных
subjects
.Параметр сделан на крайний случай, вместо него категорически рекомендуется использовать параметр
accessLevel
.Пример:
additionalRoles: - apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-write-all - apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-read-all
- spec.additionalRoles.apiGroupстрока
Обязательный параметр
apiGroup для пользователей.
Пример:
apiGroup: rbac.authorization.k8s.io
- spec.additionalRoles.kindстрока
Обязательный параметр
Kind роли.
Допустимые значения:
ClusterRole
,Role
Пример:
kind: ClusterRole
- spec.additionalRoles.nameстрока
Обязательный параметр
Название роли.
Пример:
name: cluster-admin
- spec.additionalRoles.apiGroupстрока
- spec.allowAccessToSystemNamespacesбулевый
Разрешить пользователю доступ в служебные namespace (
["kube-.*", "d8-.*", "loghouse", "default"]
).Доступно только с включённым параметром
enableMultiTenancy
.По умолчанию:
false
Доступно только в enterprise edition.
- spec.allowScaleбулевый
Разрешить/запретить масштабировать (выполнять scale) Deployment’ы и StatefulSet’ы.
По умолчанию:
false
- spec.limitNamespacesмассив строк
Список разрешённых namespace в формате регулярных выражений.
Политика:
- Если список указан, то разрешаем доступ только по нему.
- Если список не указан, то считаем, что разрешено всё, кроме системных namespace (см.
spec.allowAccessToSystemNamespaces
ниже).
Доступно только с включённым параметром
enableMultiTenancy
.Доступно только в enterprise edition.
Пример:
limitNamespaces: - production-.*
- Элемент массивастрока
- spec.portForwardingбулевый
Разрешить/запретить выполнять
port-forward
.По умолчанию:
false
- spec.subjectsмассив объектов
Обязательный параметр
Пользователи и/или группы, которым необходимо предоставить права.
При использовании совместно с модулем user-authn, обратите внимание на следующие нюансы:
- Для выдачи прав конкретному пользователю в качестве имени необходимо указывать его
email
; - При указании группы убедитесь, что необходимые группы допускаются к получению от провайдера, т.е. указаны в соответствующем custom resource DexProvider.
- spec.subjects.kindстрока
Обязательный параметр
Тип ресурса.
Допустимые значения:
User
,Group
,ServiceAccount
Пример:
kind: Group
- spec.subjects.nameстрока
Обязательный параметр
Имя ресурса.
Пример:
name: some-group-name
- spec.subjects.namespaceстрока
Namespace для ServiceAccount.
Шаблон:
[a-z0-9]([-a-z0-9]*[a-z0-9])?
Длина:
1..63
- Для выдачи прав конкретному пользователю в качестве имени необходимо указывать его
- spec.accessLevelстрока
Управляет настройками RBAC и авторизацией по namespace.
- specобъект
Обязательный параметр
- spec.accessLevelстрока
Уровень доступа:
User
— позволяет получать информацию обо всех объектах (включая доступ к журналам Pod’ов), но не позволяет заходить в контейнеры, читать секреты и выполнять port-forward;PrivilegedUser
— то же самое, что и User, но позволяет заходить в контейнеры, читать секреты, а также позволяет удалять Pod’ы (что обеспечивает возможность перезагрузки);-
Editor
— то же самое, что иPrivilegedUser
, но предоставляет возможность создавать, изменять и удалять namespace и все объекты, которые обычно нужны для прикладных задач;Важно! т.к. Editor уполномочен редактировать RoleBindings, он может сам себе расширить полномочия в рамках namespace.
Admin
— то же самое, что и Editor, но позволяет удалять служебные объекты (производные ресурсы, например,ReplicaSet
,certmanager.k8s.io/challenges
иcertmanager.k8s.io/orders
);-
ClusterEditor
— то же самое, что иEditor
, но позволяет управлять ограниченным набором cluster-wide объектов, которые могут понадобиться для прикладных задач (ClusterXXXMetric
,ClusterRoleBindings
,KeepalivedInstance
,DaemonSet
и т.д). Роль для работы оператора кластера.Важно! т.к.
ClusterEditor
уполномочен редактироватьClusterRoleBindings
, он может сам себе расширить полномочия. -
ClusterAdmin
— то же самое, что и ClusterEditor + Admin, но позволяет управлять служебными cluster-wide объектами (производные ресурсы, например, MachineSets, Machines, OpenstackInstanceClasses…, а так же ClusterAuthorizationRule). Роль для работы администратора кластера.Важно! т.к.
ClusterAdmin
уполномочен редактироватьClusterRoleBindings
, он может сам себе расширить полномочия. SuperAdmin
— разрешены любые действия с любыми объектами, при этом ограниченияlimitNamespaces
(см. ниже) продолжат работать.
Допустимые значения:
User
,PrivilegedUser
,Editor
,Admin
,ClusterEditor
,ClusterAdmin
,SuperAdmin
Пример:
accessLevel: PrivilegedUser
- spec.additionalRolesмассив объектов
Дополнительные роли, которые необходимо выдать для заданных
subjects
.Параметр сделан на крайний случай, вместо него категорически рекомендуется использовать параметр
accessLevel
.Пример:
additionalRoles: - apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-write-all - apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-read-all
- spec.additionalRoles.apiGroupстрока
Обязательный параметр
apiGroup для пользователей.
Пример:
apiGroup: rbac.authorization.k8s.io
- spec.additionalRoles.kindстрока
Обязательный параметр
Kind роли.
Допустимые значения:
ClusterRole
,Role
Пример:
kind: ClusterRole
- spec.additionalRoles.nameстрока
Обязательный параметр
Название роли.
Пример:
name: cluster-admin
- spec.additionalRoles.apiGroupстрока
- spec.allowAccessToSystemNamespacesбулевый
Разрешить пользователю доступ в служебные namespace (
["kube-.*", "d8-.*", "loghouse", "default"]
).Доступно только с включённым параметром
enableMultiTenancy
.По умолчанию:
false
Доступно только в enterprise edition.
- spec.allowScaleбулевый
Разрешить/запретить масштабировать (выполнять scale) Deployment’ы и StatefulSet’ы.
По умолчанию:
false
- spec.limitNamespacesмассив строк
Список разрешённых namespace в формате регулярных выражений.
Политика:
- Если список указан, то разрешаем доступ только по нему.
- Если список не указан, то считаем, что разрешено всё, кроме системных namespace (см.
spec.allowAccessToSystemNamespaces
ниже).
Доступно только с включённым параметром
enableMultiTenancy
.Доступно только в enterprise edition.
Пример:
limitNamespaces: - production-.*
- Элемент массивастрока
- spec.portForwardingбулевый
Разрешить/запретить выполнять
port-forward
.По умолчанию:
false
- spec.subjectsмассив объектов
Обязательный параметр
Пользователи и/или группы, которым необходимо предоставить права.
При использовании совместно с модулем user-authn, обратите внимание на следующие нюансы:
- Для выдачи прав конкретному пользователю в качестве имени необходимо указывать его
email
; - При указании группы убедитесь, что необходимые группы допускаются к получению от провайдера, т.е. указаны в соответствующем custom resource DexProvider.
- spec.subjects.kindстрока
Обязательный параметр
Тип ресурса.
Допустимые значения:
User
,Group
,ServiceAccount
Пример:
kind: Group
- spec.subjects.nameстрока
Обязательный параметр
Имя ресурса.
Пример:
name: some-group-name
- spec.subjects.namespaceстрока
Namespace для ServiceAccount.
Шаблон:
[a-z0-9]([-a-z0-9]*[a-z0-9])?
Длина:
1..63
- Для выдачи прав конкретному пользователю в качестве имени необходимо указывать его
- spec.accessLevelстрока