为RAM用户授权
RAM用户被授权后,才可以进行创建ACK One主控实例、添加或删除关联集群、删除ACK One主控实例等操作。本文介绍如何为RAM用户授予RAM权限和RBAC权限。
索引
前提条件
授权说明
默认情况下,仅阿里云账号(即主账号)和主控实例创建者账号拥有主控实例内Kubernetes资源的管理员权限。RAM用户(非主控实例创建者)没有主控实例内任何Kubernetes资源的访问权限。
管理员或主控实例创建者可以通过以下方式为RAM用户授权,允许RAM用户访问操作多集群主控实例。
步骤一:为RAM用户授予RAM权限:授权后,RAM用户可以通过控制台查看或修改主控实例。
步骤二:为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 | 是 | 授权类型,取值:
说明 admin权限的授权类型必须为 |
RoleName | string | 是 | 预置的角色名称,取值:
|
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 | 预置的角色类型。取值:
| dev |
ResourceType | string | 授权类型。取值:
| namespace |
ResourceId | string | 主控实例访问配置。
| 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 |