RAM系统策略仅控制ACK One集群资源的操作权限(例如创建实例、查看实例列表等),若RAM用户或RAM角色需要操作指定集群内的K8s资源,例如,创建GitOps Application和Argo Workflow等,还需要获取指定ACK One集群及其命名空间的操作权限即RBAC权限。本文为您介绍如何为RAM用户或RAM角色授予RBAC权限。
注意事项
您需要使用阿里云(主账号)、集群创建者或已具有集群管理员权限的RAM用户,为指定的RAM用户或RAM角色授权,普通RAM用户无授权操作的权限。
前提条件
授予RBAC权限前,您需要先为RAM用户或RAM角色授予ACK One集群的操作权限,具体操作,请参见为RAM用户或RAM角色授予系统权限策略。
若通过CLI方式授权,需要安装阿里云CLI并配置凭证,且CLI版本为3.0.159及以上。具体操作,请参见安装阿里云CLI和配置凭证。
ACK One支持的RBAC权限
多集群舰队RBAC权限
RBAC权限 | RBAC权限 |
admin(管理员) | 具有集群范围和所有命名空间下资源的读写权限。 |
dev(开发人员) | 具有所选命名空间下的资源读写权限。 |
gitops-dev(GitOps开发人员) | 具有argocd命名空间下应用资源的读写权限。 |
工作流集群RBAC权限
RBAC权限 | RBAC权限 |
admin(管理员) | 具有集群范围和所有命名空间下资源的读写权限。 |
dev(开发人员) | 具有所选命名空间下的资源读写权限。 |
注册集群RBAC权限
请参见注册集群预置角色权限。
为RAM用户或RAM角色授予舰队的RBAC权限
通过控制台授权
登录ACK One控制台。
在左侧导航栏选择
。在权限管理页面选择舰队页签,然后选择RAM 用户页签。
在RAM用户列表中找到要授权的RAM用户,然后在其操作列单击管理授权。
在弹出的操作框中选择授权角色和命名空间,然后单击确定。
通过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
为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
相关操作
更新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******