☸️ Как запретить пользователям создавать проекты в кластере OpenShift / OKD — Information Security Squad
☸️ Как запретить пользователям создавать проекты в кластере OpenShift / OKD

Если у вас есть кластер OpenShift / OKD Kubernetes, вы должны знать, что пользователи по умолчанию могут создавать проекты / пространства имен без ведома администратора кластера.

В большинстве случаев вы скорее всего хотите отключить эту функцию, чтобы гарантировать, что вычислительные ресурсы кластера не используются не по назначению.

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

В этом руководстве мы обсудим, как запретить вошедшим в систему пользователям создание проектов самостоятельно.
Вместо этого они увидят сообщение о том, что им следует отправить электронное письмо соответствующей команде для создания проекта и предоставления им разрешения на использование этого проекта.

Отключение самостоятельной подготовки проекта в OpenShift

Сначала просмотрите использование привязки роли кластера self-provisioners с помощью команды ниже.

$ oc describe clusterrolebinding.rbac self-provisioners

----
Name:         self-provisioners
Labels:       <none>
Annotations:  rbac.authorization.kubernetes.io/autoupdate: true
Role:
  Kind:  ClusterRole
  Name:  self-provisioner
Subjects:
  Kind   Name                        Namespace
  ----   ----                        ---------
  Group  system:authenticated:oauth
Нам нужно удалить роль кластера self-provisioner из группы system:authenticated: oauth:
 oc patch clusterrolebinding.rbac self-provisioners -p '{"subjects": null}'

Вы должны получить вывод, как показано ниже:

clusterrolebinding.rbac.authorization.k8s.io/self-provisioners patched

Если привязка роли кластера self-provisioners связывает роль self-provisioners с большим количеством пользователей, групп или учетных записей служб, чем system:authenticated: oauth group, выполните следующую команду:

 oc adm policy \
    remove-cluster-role-from-group self-provisioner \
    system:authenticated:oauth

Вы можете применить патч напрямую с помощью следующей команды:

oc patch clusterrolebinding.rbac self-provisioners -p '{ "metadata": { "annotations": { "rbac.authorization.kubernetes.io/autoupdate": "false" } } }'
Проверьте содержимое привязки роли кластера self-provisioners :
oc edit clusterrolebinding.rbac self-provisioners

Теперь значение должно быть установлено на false.

.....
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "false"
.....

Войдите в систему как аутентифицированный пользователь и убедитесь, что он больше не может самостоятельно подготовить проект:

$ oc new-project test
Error from server (Forbidden): You may not request a new project via this API.

Настройка сообщений о запросе создания проектов в OpenShift

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

В CLI

Войдите в систему как пользователь с правами кластера-администратора и измените ресурс project.config.openshift.io/cluster:

$ oc edit project.config.openshift.io/cluster

Обновите параметр projectRequestMessage со значением вашего настраиваемого сообщения:

projectRequestMessage: "Чтобы запросить проект, свяжитесь с администрацией OpenShift по адресу ocpadmins@itsecforu.ru"

Из веб-панели

Откройте веб-консоль OpenShift и перейдите на страницу  Administration → Cluster Settings

Нажмите Global Configuration, чтобы просмотреть все ресурсы конфигурации.
Найдите  Projects

Нажмите на YAML, чтобы отредактировать его.

projectRequestMessage: "Чтобы запросить проект, свяжитесь с администрацией OpenShift по адресу ocpadmins@itsecforu.ru"
После сохранените изменения.
Пользователи могут попытаться создать новые проекты в качестве учетной записи разработчика или службы, и запрос не будет выполнен.
Пользователи получат пользовательское сообщение, которое мы только что настроили.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *