为RAM用户授权

更新时间: 2023-11-01 09:40:48

RAM用户被授权后,才可以进行创建ACK One主控实例、添加或删除关联集群、删除ACK One主控实例等操作。本文介绍如何为RAM用户授予RAM权限和RBAC权限。

索引

前提条件

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

授权说明

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

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

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

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

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

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

系统策略

系统权限

说明

AliyunAdcpFullAccess

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

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

AliyunAdcpReadOnlyAccess

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

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

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

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

RBAC权限名称

说明

admin

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

dev

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

  • 集群范围资源列表

    Kind

    apiVersion

    Namespace

    v1

    Managedcluster

    cluster.open-cluster-management.io

  • 命名空间下资源列表

    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

为RAM用户授予主控实例管理员admin和dev权限方法如下。

授予主控实例管理员admin权限

使用以下命令,为RAM用户授予主控实例admin权限。

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

入参说明

字段

类型

是否必选

备注

UserId

string

RAM用户ID。

ClusterId

string

授权目标主控实例ID。

RoleType

string

授权类型,取值:

  • cluster:主控实例维度。

  • namespace:命名空间维度。

说明

admin权限的授权类型必须为cluster主控实例维度,不可以为命名空间维度。

RoleName

string

预置的角色名称,取值:

  • admin:管理员。

  • dev:开发人员。

Namespace

string

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

授予主控实例命名空间dev权限

说明

dev权限的授权类型必须为namespace命名空间维度,不可以为主控实例维度。

使用以下命令,为RAM用户授予主控实例命名空间default的dev权限。

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

相关操作

查询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:开发人员。

dev

ResourceType

string

授权类型。取值:

  • cluster:主控实例维度。

  • namespace:命名空间维度。

namespace

ResourceId

string

主控实例访问配置。

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

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

cffef3c9c7ba145b083292942a2c3****/test

取消RAM用户RBAC权限

CLI示例

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

入参说明

字段

类型

是否必选

备注

UserId

string

RAM用户ID。

ClusterId

string

授权主控实例ID。

出参说明

字段

类型

备注

示例

RequestId

string

请求ID。

EA06613B-37A3-549E-BAE0-E4AD8A6E93D7

阿里云首页 容器服务 Kubernetes 版 ACK 相关技术圈