GitOps用户管理

更新时间: 2023-07-10 12:24:29

本文介绍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并授权

前提条件

操作步骤

创建Local User并授权操作由ACK One主控实例管理员在主控实例中执行。具体步骤如下。

  1. 执行以下命令,编辑ArgoCD argocd-cm的ConfigMap文件。
    kubectl edit cm argocd-cm -n argocd
  2. argocd-cm的ConfigMap文件中,添加如下所示的Local User localuser1
    data:
      accounts.localuser1: login,apiKey    # 可以UI/CLI登录,并可以生成apiKey Token。
      accounts.localuser1.enabled: "true"  # 创建localuser1。
  3. 执行以下命令,查看Local User。
    argocd account list

    预期输出:

    NAME        ENABLED  CAPABILITIES
    admin       true     login
    localuser1  true     login,apiKey   # 此处为上一步已创建的localuser1。
  4. 执行以下命令,设置密码并生成认证Token。
    # 设置密码。
    argocd account update-password \
      --account localuser1 \
      --current-password <admin password> \
      --new-password <localuser1-password>
    
    # 获取localuser1认证Token。
    argocd account generate-token --account localuser1
    eyJhb......
  5. 执行以下命令,编辑ArgoCD argocd-rbac-cm的ConfigMap文件。
    kubectl edit cm argocd-rbac-cm -n argocd
  6. 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主控实例管理员,ACK One GitOps会自动同步权限设置,授权其ArgoCD UI或ArgoCD CLI管理员权限。
  • 若RAM User为普通用户,需要ACK One主控实例管理员参考以下步骤配置相应的权限。
    1. 执行以下命令,编辑ArgoCD argocd-rbac-cm的ConfigMap文件。
      kubectl edit cm argocd-rbac-cm -n argocd
    2. 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]'                # 现有配置,请保留。
阿里云首页 容器服务 Kubernetes 版 ACK 相关技术圈