文档

为RAM用户授权

更新时间:

默认情况下,仅阿里云账号(即主账号)和Fleet实例创建者账号拥有Fleet实例内Kubernetes资源的管理员权限。RAM用户需要进行授权操作,才可以进行创建ACK One Fleet实例、添加或删除关联集群、删除ACK One Fleet实例等操作。本文介绍如何为RAM用户授予RAM权限和RBAC权限。

前提条件

已安装阿里云CLI并配置凭证,且CLI版本为3.0.159及以上。具体操作,请参见安装阿里云CLI配置凭证

授权说明

  • 默认情况下,仅阿里云账号(即主账号)和Fleet实例创建者账号拥有Fleet实例内Kubernetes资源的管理员权限。RAM用户(非Fleet实例创建者)没有Fleet实例内任何Kubernetes资源的访问权限。

  • 管理员或Fleet实例创建者可以通过以下方式为RAM用户授权,允许RAM用户访问和操作多集群Fleet实例。

    1. 步骤一:为RAM用户授予RAM权限:授权后,RAM用户可以通过控制台查看或修改Fleet实例。

    2. 步骤二:为RAM用户授予Fleet实例的RBAC权限:授权后,RAM用户可以通过kubectl命令行操作Fleet实例,例如应用分发、GitOps、多集群服务等。

步骤一:为RAM用户授予RAM权限

ACK One多集群Fleet实例默认已创建AliyunAdcpFullAccess和AliyunAdcpReadOnlyAccess策略,可直接授权使用。关于授权具体操作,请参见为RAM用户授权

系统策略

系统权限

说明

AliyunAdcpFullAccess

具有多集群Fleet实例的所有权限,可以创建Fleet实例、开启Fleet实例功能开关、删除Fleet实例、用户授权和查看Fleet实例。

若RAM用户要成为Fleet实例管理员,请授权AliyunAdcpFullAccess。

AliyunAdcpReadOnlyAccess

具有多集群Fleet实例的只读权限,可以查看Fleet实例,获取Fleet实例的KubeConfig。

若RAM用户要成为开发者,使用Fleet实例做GitOps、应用下发和多集群服务等,则授权AliyunAdcpReadOnlyAccess。

步骤二:为RAM用户授予Fleet实例的RBAC权限

ACK One多集群Fleet实例默认内置admin、dev和gitops-dev的RBAC权限,可直接授权使用。

RBAC权限名称

说明

admin

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

dev

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

gitops-dev

具有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

    Application

    core.oam.dev

  • argocd命名空间下应用资源

    Kind

    apiVersion

    Application

    argoproj.io

为RAM用户授予Fleet实例管理员admin、dev和gitops-dev权限方法如下。

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

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

授予Fleet实例管理员admin权限

aliyun adcp GrantUserPermission --UserId 2176*** --ClusterId <clusterid> --RoleType cluster --RoleName admin

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

aliyun adcp GrantUserPermission --UserId 2176*** --ClusterId <your-fleet-id> --RoleType namespace --Namespace default --RoleName dev

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

aliyun adcp GrantUserPermission --UserId 2176*** --ClusterId <your-fleet-id> --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开发人员。

说明

gitops-dev权限的授权类型必须为namespace命名空间维度,且namespace必须指定为argocd

Namespace

string

命名空间名称,授权维度为Fleet实例时为空。

相关操作

查询RAM用户RBAC权限

CLI示例

aliyun adcp DescribeUserPermissions --UserId 2176***

入参说明

字段

类型

是否必选

备注

UserId

string

RAM用户ID。

出参说明

字段

类型

备注

示例

RequestId

string

请求ID。

EA06613B-37A3-549E-BAE0-E4AD8A6E93D7

Permissions

Object

RoleType

string

预置的角色类型。取值:

  • admin:管理员。

  • dev:开发人员。

  • gitops-dev:GitOps开发人员。

dev

ResourceType

string

授权类型。取值:

  • cluster:Fleet实例维度。

  • namespace:命名空间维度。

namespace

ResourceId

string

Fleet实例访问配置。

  • 当集群维度授权时,格式为:{cluster_id}

  • 当命名空间维度授权时,格式为:{cluster_id}/{namespace}

cffef3c9c7ba145b083292942a2c3****/test

取消RAM用户RBAC权限

CLI示例

aliyun adcp DeleteUserPermission --UserId 2176*** --ClusterId <clusterid>

入参说明

字段

类型

是否必选

备注

UserId

string

RAM用户ID。

ClusterId

string

授权Fleet实例ID。

出参说明

字段

类型

备注

示例

RequestId

string

请求ID。

EA06613B-37A3-549E-BAE0-E4AD8A6E93D7

  • 本页导读 (1)
文档反馈