Создайте нового пользователя в ArgoCD с помощью CLI и ConfigMap.

by moiseevrus

В этой статье будет рассказано о том, как просто добавить пользователя в ArgoCD. Однако процесс немного отличается.

Предположения:

  • ArgoCD установлен в кластере Kubernetes.
  • Что вы можете получить доступ к ArgoCD через интерфейс командной строки ArgoCD
  • Иметь доступ для обновления ConfigMap в кластере Kubernetes.

Доступ к ArgoCD через интерфейс командной строки и просмотр списка пользователей

Первым шагом является доступ к интерфейсу командной строки и просмотр текущего списка пользователей. Для этого сначала войдите в ArgoCD через интерфейс командной строки, выполнив:

argocd login <hostname> --username admin --grpc-web-root-path /

Просмотрите список пользователей, запустив;

argocd account list

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

Обновите карту конфигурации

Следующий шаг — обновить ConfigMap, запустив:

kubectl get configmap argocd-cm -n argocd -o yaml > argocd-cm.yml

Расположение ArgoCD может быть другим, но по умолчанию он обычно устанавливается в пространстве имен «argocd».

Теперь внесите следующие изменения в ConfigMap:


data:
  accounts.<new-username>: apiKey, login

Это добавит новое имя пользователя и позволит ему обрабатывать ключ API, а также входить в систему через интерфейс командной строки и графический интерфейс пользователя.

Примените изменения, запустив:

kubectl apply -f argocd-cm.yml

Проверьте пользователей

Выполните следующее, чтобы убедиться, что новые пользователи существуют автоматически:

argocd account list

Обновите пароль пользователя

Так здорово! Пользователи есть, но нам нужно иметь возможность войти в систему с новыми пользователями. Позвольте изменить пароль, запустив:

argocd account update-password --account <new-username> --new-password <new-password>

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

Обновите управление доступом к базе ролей (RBAC) для локального пользователя.

Так здорово зайти так далеко. По умолчанию пользователь может войти в систему с доступом « только для чтения ». Карта конфигурации RBAC должна быть обновлена. Выполните следующее, чтобы получить карту конфигурации:

kubectl get configmap argocd-rbac-cm -n argocd -o yaml > argocd-rbac.yml

Теперь добавьте следующее:

data:
  policy.csv: |
    p, role:org-admin, applications, *, */*, allow
    p, role:org-admin, clusters, get, *, allow
    p, role:org-admin, repositories, get, *, allow
    p, role:org-admin, repositories, create, *, allow
    p, role:org-admin, repositories, update, *, allow
    p, role:org-admin, repositories, delete, *, allow
    g, <new-user>, role:org-admin
  policy.default: role:''

и так, что здесь происходит?

Ниже показано, чтобы убедиться, что пользователь не может ничего сделать, кроме входа в пользовательский интерфейс по умолчанию. Только чтение теперь отключено.

policy.default: role:”

Следующая часть — настройка всего доступа в ArgoCD для роли org-admin:

p, role:org-admin, applications, *, */*, allow
    p, role:org-admin, clusters, get, *, allow
    p, role:org-admin, repositories, get, *, allow
    p, role:org-admin, repositories, create, *, allow
    p, role:org-admin, repositories, update, *, allow
    p, role:org-admin, repositories, delete, *, allow

Далее новому пользователю присваивается роль:

g, <new-user>, role:org-admin

Обновление: работа с разделом GPGKeys

Обратите внимание, что НЕ все будут принимать */* роль. Есть области, где вы можете просто использовать *. Например, GPGKeys могут быть такими:

p, role:<assigned-role>, gpgkeys, get, *, allow

Теперь примените карту конфигурации RBAC, выполнив следующее:

kubectl apply -f argcd-rbac.yml

Отключенная учетная запись администратора

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

kubectl get configmap argocd-cm -n argocd -o yaml > argocd-cm.yml

Затем добавьте в карту конфигурации следующее:
data:
admin.enabled: "false"

Примените карту конфигурации, выполнив:

kubectl apply -f argocd-cm.yml 

Большой! Теперь вы настроили локального пользователя в ArgoCD и отключили учетную запись администратора!

Статья является переводом medium.com

You may also like

Leave a Comment