☸️ Как предоставить пользователям доступ к проекту/пространству имен в OpenShift |

☸️ Как предоставить пользователям доступ к проекту/пространству имен в OpenShift

Мануал

Проекты (projects) в OpenShift – это единица ограничения доступа или наоборот совместной работы.

Чтобы разработчики могли развертывать приложения, они должны быть участниками проекта.

В рамках проекта участники могут иметь разные роли – администратор, права редактировать, просматривать и т. д.

Как администратор проекта вы можете добавлять пользователей в кластер и назначать им определенные права.

Ниже приведены предварительно определенные роли в OpenShift.

  • edit: Пользователь, который может изменять большинство объектов в проекте, но не имеет права просматривать или изменять роли или привязки.
  • admin: Пользователь-администратор имеет права просматривать любой ресурс в проекте и изменять любой ресурс в проекте, кроме квоты.
  • cluster-admin: Суперпользователь, который может выполнять любые действия в любом проекте. При привязке к пользователю с помощью  local binding они получают полный контроль над квотой и всеми действиями для каждого ресурса в проекте.
  • basic-user: Пользователь, который может получить основную информацию о проектах и пользователях.
  • cluster-status: Пользователь, который может получить основную информацию о состоянии кластера.
  • self-provisioner: Пользователь, который может создавать свои собственные проекты.
  • view: Пользователь, который не может вносить никаких изменений, но может видеть большинство объектов в проекте. Они не могут просматривать или изменять роли или привязки.
В этом кратком руководстве мы создадим тестовый проект и предоставим юзерам доступ к созданному проекту.
Один из пользователей будет иметь доступ только для просмотра в кластере, а другой пользователь будет иметь возможность редактировать все ресурсы в пространстве имен / проекте.

Создание проекта на OpenShift

Создайте проект на OpenShift.

Это можно сделать с помощью интерфейса командной строки или веб-консоли.

$ oc new-project test
Now using project "test" on server "https://api.devocp.example.com:6443".

Затем вы можете перечислить все доступные проекты, чтобы убедиться, что доступен только что созданный.

$ oc get projects

Предоставление доступа пользователю к проекту OpenShift

У вас должны быть пользователи, которые уже получили доступ к кластеру OpenShift, прежде чем вы сможете предоставить им права для доступа к проекту.

Есть несколько провайдеров, которые могут использоваться для аутентификации пользователей в OpenShift, например HTPassw:

☸️ Управление пользователями OpenShift / OKD с индентити провайдером HTPasswd

Вы можете получить список пользователей, которые уже вошли в кластер, с помощью команды oc get users:

$ oc get users
JKMUTAI     17a06002-b543-4fa9-bfa8-92e510646d0a   Josphat Mutai     
Предоставьте пользователю доступ к проекту с привязкой ролей ( rolebinding) .

Используемый синтаксис:

$ oc adm policy add-role-to-user <role> <user> -n <projectname>
Чтобы назначить роль edit пользователу JKMUTAI в тестовом проекте (test), я выполню следующие команды.
$ oc adm policy add-role-to-user edit JKMUTAI -n test
clusterrole.rbac.authorization.k8s.io/edit added: "JKMUTAI"

Для Cluster role  используйте команду:

$ oc adm policy add-cluster-role-to-user edit JKMUTAI -n test

Чтобы удалить роль пользователя, используйте:

$ oc adm policy remove-role-from-user <role> <user> -n <projectname>
$ oc adm policy remove-cluster-role-from-user <role> <user> -n <projectname>

Если вы хотите получить список пользователей, имеющих доступ к проекту, выполните следующую команду:

$ oc get rolebindings -n <projectname>
$ oc get rolebindings <rolename> -n <projectname>
Вы можете войти в систему из интерфейса командной строки или консоли и подтвердить, что можете переключиться к проекту для развертывания приложений.
$ oc login

Переключитесь на проект командой:

$ oc project test
Already on project "test" on server "https://api.example.com:6443".

Разверните тестовое приложение.

oc apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: command-demo
  labels:
    purpose: demonstrate-command
spec:
  containers:
  - name: command-demo-container
    image: debian
    command: ["printenv"]
    args: ["HOSTNAME", "KUBERNETES_PORT"]
  restartPolicy: OnFailure
EOF

Подтвердите, что контейнер запущен:

$ oc get pods

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий