ArgoCD安装后有一个内置的管理员用户,拥有最高权限可以完全访问系统。建议只使用管理用户进行初始配置,然后切换到本地用户或配置SSO集成。

本地用户/账户

ArgoCD本地用户/账户功能主要有两个用途:

  • Argo CD管理自动化的认证令牌。可以配置一个具有有限权限的API账户并生成一个认证令牌。这种令牌可以用来自动创建应用程序和项目等
  • 对于一个非常小的团队来说,使用SSO集成可能被认为多余的。本地用户不提供组、登录历史等高级功能。因此,如果需要这些功能,强烈建议使用SSO
当创建本地用户时,每个用户都需要设置额外的RBAC规则,否则他们将回到argocd-rbac-cm ConfigMap的policy.default字段指定的默认策略。本地账户用户名最大长度为32

创建本地用户

新用户应该在argocd-cm ConfigMap中定义
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-cm
  namespace: argocd
  labels:
    app.kubernetes.io/name: argocd-cm
    app.kubernetes.io/part-of: argocd
data:
  accounts.huis: apiKey, login
  # 是否禁用用户,默认情况下用户为启用状态,true代表启用用户,false代表禁用用户
  accounts.huis.enabled: "false"

每个用户可能有两种功能权限:

  • apiKey:允许为API访问生成认证令牌
  • login:允许使用用户界面登录

禁用管理员用户

创建了其它用户,建议禁用管理用户
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-cm
  namespace: argocd
  labels:
    app.kubernetes.io/name: argocd-cm
    app.kubernetes.io/instance: argocd
data:
  # false为禁用,true为启用
  admin.enabled: "false"

ArgoCD用户管理

  • 获取完整用户列表

    argocd account list
  • 获取特定用户信息

    # argocd account get --account <username>
    argocd account get --account huis
  • 设置用户密码

    # 如果是以管理员身份管理用户(即以管理员身份修改用户密码),<current-user-password>应该是当前的管理员密码。
    # argocd account update-password --account <name> --current-password <current-user-password> --new-password <new-user-password>
    argocd account update-password --account huis --current-password Abc123@ --new-password ABCabc123
  • 生成认证token

    # 如果省略--account参数,那么Argo CD将为当前用户生成令牌
    # argocd account generate-token --account <username>
    argocd account generate-token --account huis
文章目录