В этой статье будет рассказано о том, как просто добавить пользователя в ArgoCD. Однако процесс немного отличается.
Contents
- 1 Предположения:
- 2 Доступ к ArgoCD через интерфейс командной строки и просмотр списка пользователей
- 3 Обновите карту конфигурации
- 4 Проверьте пользователей
- 5 Обновите пароль пользователя
- 6 Обновите управление доступом к базе ролей (RBAC) для локального пользователя.
- 7 Отключенная учетная запись администратора
Предположения:
- 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