GitOps用户管理
本文介绍ACK One GitOps支持的用户类型以及如何为用户授权。
索引
用户类型
ACK One GitOps支持多用户团队协作,管理员可以创建或删除用户,并为不同用户设置不同的权限。目前ACK One GitOps支持以下两种用户类型。
Local User
系统本地用户。管理员可以创建Local User并获取认证Token,由自动化系统使用,调用ArgoCD API自动创建ArgoCD Application、Project等。若您的团队规模较小,可创建不同的Local User分配给团队成员。关于Local User授权方式,请参见创建Local User并授权。
阿里云RAM User
阿里云用户。通过SSO方式登录ArgoCD UI或ArgoCD CLI。建议使用阿里云用户登录ArgoCD UI或ArgoCD CLI。ACK One GitOps默认打通ArgoCD UI和ArgoCD CLI向阿里云RAM的SSO认证。关于阿里云RAM User授权方式,请参见为阿里云RAM User授权。
创建Local User并授权
前提条件
已从ACK One控制台获取Fleet实例的KubeConfig,并通过kubectl连接至Fleet实例。
已在ACK One Fleet实例中开启GitOps。具体操作,请参见在ACK One Fleet实例中开启GitOps。
已获取ArgoCD管理员密码,并登录ArgoCD CLI。具体操作,请参见通过ArgoCD CLI方式访问ArgoCD。
操作步骤
创建Local User并授权操作由ACK One Fleet实例管理员在Fleet实例中执行。具体步骤如下。
执行以下命令,编辑ArgoCD
argocd-cm
的ConfigMap文件。kubectl edit cm argocd-cm -n argocd
在
argocd-cm
的ConfigMap文件中,添加如下所示的Local Userlocaluser1
。data: accounts.localuser1: login,apiKey # 可以UI/CLI登录,并可以生成apiKey Token。 accounts.localuser1.enabled: "true" # 创建localuser1。
执行以下命令,查看Local User。
argocd account list
预期输出:
NAME ENABLED CAPABILITIES admin true login localuser1 true login,apiKey # 此处为上一步已创建的localuser1。
执行以下命令,设置密码并生成认证Token。
# 设置密码。 argocd account update-password \ --account localuser1 \ --current-password <admin password> \ --new-password <localuser1-password> # 获取localuser1认证Token。 argocd account generate-token --account localuser1 eyJhb......
执行以下命令,编辑ArgoCD
argocd-rbac-cm
的ConfigMap文件。kubectl edit cm argocd-rbac-cm -n argocd
在
argocd-rbac-cm
的ConfigMap文件中,设置如下内容为Local User授权。重要请勿修改此ConfigMap文件中已有的配置。
data: policy.csv: | g, "14***01", role:admin # 现有配置,请保留。 g, localuser1, role:admin # 新增配置,设置localuser1为admin。 scopes: '[uid]' # 现有配置,请保留。
为阿里云RAM User授权
ACK One GitOps默认打通ArgoCD UI和ArgoCD CLI向阿里云RAM的SSO认证。当您登录阿里云控制台后,可以通过SSO登录ArgoCD UI或ArgoCD CLI,无需再次输入用户名密码。
若RAM User为ACK One Fleet实例管理员,ACK One GitOps会自动同步权限设置,授权其ArgoCD UI或ArgoCD CLI管理员权限。
若RAM User为普通用户,需要ACK One Fleet实例管理员参考以下步骤配置相应的权限。
执行以下命令,编辑ArgoCD
argocd-rbac-cm
的ConfigMap文件。kubectl edit cm argocd-rbac-cm -n argocd
在
argocd-rbac-cm
的ConfigMap文件中,设置如下内容为RAM User授权。data: policy.csv: | g, "14***01", role:admin # 现有配置,请保留。 g, "27***02", role:admin # 新增配置,设置RAM User "27***02"为admin。 scopes: '[uid]' # 现有配置,请保留。