如何配置RAM用户的RBAC权限

RAM系统策略仅控制ACK One集群资源的操作权限(例如创建实例、查看实例列表等),若RAM用户或RAM角色需要操作指定集群内的K8s资源,例如,创建GitOps Application和Argo Workflow等,还需要获取指定ACK One集群及其命名空间的操作权限即RBAC权限。本文为您介绍如何为RAM用户或RAM角色授予RBAC权限。

注意事项

您需要使用阿里云(主账号)、集群创建者或已具有集群管理员权限的RAM用户,为指定的RAM用户或RAM角色授权,普通RAM用户无授权操作的权限。

前提条件

ACK One支持的RBAC权限

多集群舰队RBAC权限

RBAC权限

RBAC权限

admin(管理员)

具有集群范围和所有命名空间下资源的读写权限。

dev(开发人员)

具有所选命名空间下的资源读写权限。

gitops-dev(GitOps开发人员)

具有argocd命名空间下应用资源的读写权限。

展开查看集群及命名空间资源列表

  • 集群范围资源列表

    Kind

    apiVersion

    Namespace

    v1

    Managedcluster

    cluster.open-cluster-management.io

    MseIngressConfig

    mse.alibabacloud.com/v1alpha1

    IngressClass

    networking.k8s.io/v1

  • 命名空间下资源列表

    Kind

    apiVersion

    Deployment

    apps/v1

    Service

    v1

    Ingress

    networking.k8s.io/v1

    ConfigMap

    v1

    Secret

    v1

    StatefulSet

    apps/v1

    PersistentVolumeClaim

    v1

    ServiceExport 

    multicluster.x-k8s.io/v1alpha1

    ServiceImport 

    multicluster.x-k8s.io/v1alpha1

    HorizontalPodAutoscaler

    autoscaling/v1

    Application

    ApplicationSet

    Appproject

    argoproj.io

    Workflow

    argoproj.io

    Application

    core.oam.dev

  • argocd命名空间下应用资源

    Kind

    apiVersion

    Application

    argoproj.io

工作流集群RBAC权限

RBAC权限

RBAC权限

admin(管理员)

具有集群范围和所有命名空间下资源的读写权限。

dev(开发人员)

具有所选命名空间下的资源读写权限。

展开查看集群及命名空间资源列表

  • 集群范围资源列表

    Kind

    apiVersion

    Namespace

    v1

    PersistentVolumes

    v1

    ImageCaches

    eci.alibabacloud.com

  • 命名空间下资源列表

    Kind

    apiVersion

    ConfigMap

    v1

    Secret

    v1

    ServiceAccount

    v1

    PersistentVolumeClaim

    v1

    Pod

    v1

    Workflow

    WorkflowTemplate

    CronWorkflow

    argoproj.io

    EventSource

    EventBus

    Sensor

    argoproj.io

注册集群RBAC权限

请参见注册集群预置角色权限

为RAM用户或RAM角色授予舰队的RBAC权限

通过控制台授权

  1. 登录ACK One控制台

  2. 在左侧导航栏选择舰队 > 权限管理

  3. 权限管理页面选择舰队页签,然后选择RAM 用户页签。

  4. 在RAM用户列表中找到要授权的RAM用户,然后在其操作列单击管理授权

  5. 在弹出的操作框中选择授权角色命名空间,然后单击确定

通过CLI授权

授予Fleet实例管理员admin权限

aliyun adcp GrantUserPermission --UserId 1159648454****** --ClusterId c6caf48c192f7476****** --RoleType cluster --RoleName admin

授予Fleet实例命名空间dev权限

aliyun adcp GrantUserPermission --UserId 1159648454****** --ClusterId c6caf48c192f7476****** --RoleType namespace --Namespace default --RoleName dev

授予Fleet实例argocd命名空间gitops-dev权限

aliyun adcp GrantUserPermission --UserId 1159648454****** --ClusterId c6caf48c192f7476****** --RoleType namespace --Namespace argocd --RoleName gitops-dev

展开查看入参说明

字段

类型

是否必选

备注

UserId

string

RAM用户ID。

ClusterId

string

授权目标Fleet实例ID。

RoleType

string

授权类型,取值:

  • cluster:Fleet实例维度。

  • namespace:命名空间维度。

    说明
    • admin权限的授权类型必须为clusterFleet实例维度,不可以为命名空间维度。

    • dev和gitops-dev权限的授权类型必须为namespace命名空间维度,不可以为Fleet实例维度。

RoleName

string

预置的角色名称,取值:

  • admin:管理员。

  • dev:开发人员。

  • gitops-dev:GitOps开发人员。

Namespace

string

命名空间名称。

说明
  • 授权维度为命名空间维度时必须填写。

  • 授权维度为命名空间且角色类型为GitOps开发人员时,命名空间名称必须指定为argocd

  • 授权维度为Fleet实例时无需填写。

为RAM用户或RAM角色授予工作流集群的RBAC权限

通过CLI授权

授予工作流集群管理员admin权限

aliyun adcp GrantUserPermission --UserId 1159648454****** --ClusterId c6caf48c192f7476****** --RoleType cluster --RoleName admin

授予工作流集群命名空间dev权限

aliyun adcp GrantUserPermission --UserId 1159648454****** --ClusterId c6caf48c192f7476****** --RoleType namespace --Namespace default --RoleName dev

展开查看入参说明

字段

类型

是否必选

备注

UserId

string

RAM用户ID。

ClusterId

string

授权目标工作流集群ID。

RoleType

string

授权类型,取值:

  • cluster:集群维度。

  • namespace:命名空间维度。

说明
  • admin权限的授权类型必须为cluster集群维度,不可以为命名空间维度。

  • dev权限的授权类型必须为namespace命名空间维度,不可以为集群维度。

RoleName

string

预置的角色名称,取值:

  • admin:管理员。

  • dev:开发人员。

Namespace

string

命名空间名称。

    说明

    授权维度为命名空间维度时必须填写。

    授权维度为Fleet实例时无需填写。

相关操作

更新RAM用户RBAC权限

aliyun adcp UpdateUserPermission --UserId 1159648454****** --ClusterId c6caf48c192f7476****** --RoleType cluster --RoleName dev

查询RAM用户RBAC权限

aliyun adcp DescribeUserPermissions --UserId 1159648454******

取消RAM用户RBAC权限

aliyun adcp DeleteUserPermission --UserId 1159648454****** --ClusterId c6caf48c192f7476******