Назначить права доступа
Вы можете назначить роли пользователям, группам и сервисным аккаунтам. Права доступа назначаются на двух уровнях:
- На уровне кластера — с помощью ресурса
ClusterAccessBinding. Роль действует на всю организацию. - На уровне проекта — с помощью ресурса
AccessBinding. Роль действует в рамках конкретного пространства имен.
Примечание
Для назначения прав доступа на уровне кластера необходимы права администратора организации.
Назначить роль на уровне кластера
Используйте ресурс ClusterAccessBinding для назначения ролей на уровне организации.
Назначить роль пользователю
- В консоли управления перейдите в раздел Управление доступом.
- На странице Права доступа нажмите Назначить роль.
- В поле Субъект выберите Пользователь.
- Выберите пользователя из списка.
- В поле Роль выберите нужную роль.
- Нажмите Сохранить.
-
Создайте файл
user-role-binding.yaml:apiVersion: iam.stackland.yandex.cloud/v1alpha1 kind: ClusterAccessBinding metadata: name: user-admin-role spec: roleID: admin subject: kind: User name: usernameГде:
metadata.name— уникальное имя привязки роли.roleID— идентификатор роли (например,admin,editor,viewer).kind— тип субъекта. Для пользователя укажитеUser.name— имя пользователя (usernameдля локальных пользователей илиname_idдля пользователей из SAML-федерации).
-
Примените конфигурацию:
kubectl apply -f user-role-binding.yaml -
Проверьте созданную привязку:
kubectl get clusteraccessbinding user-admin-role
Назначить роль группе
- В консоли управления перейдите в раздел Управление доступом.
- На странице Права доступа нажмите Назначить роль.
- В поле Субъект выберите Группа.
- Выберите группу из списка.
- В поле Роль выберите нужную роль.
- Нажмите Сохранить.
-
Создайте файл
group-role-binding.yaml:apiVersion: iam.stackland.yandex.cloud/v1alpha1 kind: ClusterAccessBinding metadata: name: stackland-cluster-admins spec: roleID: admin subject: kind: Group name: stackland-cluster-adminsГде:
metadata.name— уникальное имя привязки роли.roleID— идентификатор роли.kind— тип субъекта. Для группы укажитеGroup.name— имя группы.
-
Примените конфигурацию:
kubectl apply -f group-role-binding.yaml -
Проверьте созданную привязку:
kubectl get clusteraccessbinding stackland-cluster-admins
Назначить роль на уровне проекта
Используйте ресурс AccessBinding для назначения ролей в рамках конкретного пространства имен.
Назначить роль пользователю в проекте
-
Создайте файл
user-project-role-binding.yaml:apiVersion: iam.stackland.yandex.cloud/v1alpha1 kind: AccessBinding metadata: name: bob-is-storage-admin namespace: warehouse spec: roleID: storage.admin subject: kind: User name: bob@stacklandГде:
metadata.name— уникальное имя привязки роли.metadata.namespace— пространство имен, в котором назначается роль.roleID— идентификатор роли.kind— тип субъекта. Для пользователя укажитеUser.name— имя пользователя.
-
Примените конфигурацию:
kubectl apply -f user-project-role-binding.yaml -
Проверьте созданную привязку:
kubectl get accessbinding bob-is-storage-admin -n warehouse
Назначить роль сервисному аккаунту в проекте
-
Создайте файл
sa-role-binding.yaml:apiVersion: iam.stackland.yandex.cloud/v1alpha1 kind: AccessBinding metadata: namespace: warehouse name: app-sa-is-storage-viewer spec: roleID: storage.viewer subject: kind: ServiceAccount name: app-sa namespace: warehouseГде:
metadata.name— уникальное имя привязки роли.metadata.namespace— пространство имен, в котором назначается роль.roleID— идентификатор роли.kind— тип субъекта. Для сервисного аккаунта укажитеServiceAccount.name— имя сервисного аккаунта.namespace— пространство имен, в котором создан сервисный аккаунт.
-
Примените конфигурацию:
kubectl apply -f sa-role-binding.yaml -
Проверьте созданную привязку:
kubectl get accessbinding app-sa-is-storage-viewer -n warehouse
Доступные роли
Основные роли в системе:
admin— полный доступ ко всем ресурсам организации.editor— права на создание и изменение ресурсов.viewer— права только на просмотр ресурсов.
Для получения полного списка доступных ролей обратитесь к разделу Управление доступом.
Отозвать роль
- В консоли управления перейдите в раздел Управление доступом.
- На странице Права доступа найдите нужную привязку роли.
- Нажмите значок
и выберите Удалить. - Подтвердите удаление.
Для отзыва роли на уровне кластера удалите ресурс ClusterAccessBinding:
kubectl delete clusteraccessbinding <имя_привязки>
Для отзыва роли на уровне проекта удалите ресурс AccessBinding:
kubectl delete accessbinding <имя_привязки> -n <namespace>