容器服务ACK的授权体系包含RAM授权和RBAC授权两部分。本文介绍容器服务ACK集群访问控制授权的组成及方式。

RAM授权

在企业对接RAM的账号系统中,运维人员通过RAM用户管理云服务资源是一个常见场景。然而默认情况下RAM用户没有使用云服务OpenAPI的任何权限,为了保证RAM用户的正常使用,需要对RAM用户授权。

当您需要对集群进行可见性、扩缩容、添加节点等操作时,需要进行RAM授权。更多信息,请参见自定义RAM授权策略

RAM授权支持以下两种方式:

  • RAM系统策略授权:用于指定全局资源的读写访问控制。当RAM用户具有阿里云账号下所有集群的运维管理权限时,建议使用系统策略进行快捷授权。为RAM用户添加系统策略权限,请参见为RAM用户授权
    容器服务的常用系统策略如下表所示,您可以根据业务需求添加对应的系统策略。
    角色名称 角色说明
    AliyunCSFullAccess 当RAM用户需要管理容器服务时的所有权限。
    AliyunVPCReadOnlyAccess 当RAM用户在创建集群时选择指定VPC。
    AliyunECSReadOnlyAccess 当RAM用户为集群添加已有节点或查看节点详细信息。
    AliyunContainerRegistryFullAccess 当RAM用户需要全局管理阿里云账号内的业务镜像。
    AliyunLogReadOnlyAccess 当RAM用户在创建集群时选择已有Log Project存储审计日志,或查看指定集群的配置巡检。
    AliyunAHASReadOnlyAccess 当RAM用户需要使用集群拓扑功能。
    AliyunRAMFullAccess 当RAM用户需要负责阿里云账号内的全局授权管理。
    AliyunYundunSASReadOnlyAccess 当RAM用户需要查看指定集群的运行时安全监控。
    AliyunARMSReadOnlyAccess 当RAM用户需要查看集群阿里云Prometheus插件的监控状态。
    AliyunKMSReadOnlyAccess 当RAM用户在创建Pro集群时启用Secret落盘加密能力。
  • RAM自定义策略授权:用于对目标RAM用户实现细粒度的云资源访问控制。另外,如果目标RAM用户有基于SDK的二次开发需求,还可实现API级别的权限控制。

    ACK集群维度的RAM自定义策略授权流程,请参见自定义RAM授权策略

    例如,当RAM用户需要具有对指定OSS Bucket的读取权限时,可以参考以下策略。
    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                          "oss:ListBuckets",
                          "oss:GetBucketStat",
                          "oss:GetBucketInfo",
                          "oss:GetBucketTagging",
                          "oss:GetBucketAcl" 
                          ],    
                "Resource": "acs:oss:*:*:*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "oss:ListObjects",
                    "oss:GetBucketAcl"
                ],
                "Resource": "acs:oss:*:*:myphotos"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "oss:GetObject",
                    "oss:GetObjectAcl"
                ],
                "Resource": "acs:oss:*:*:myphotos/*"
            }
        ]
    }

RBAC授权

当RAM用户需要操作指定集群内K8s资源时(例如,获取集群Pod和Node信息),需要在容器服务管理控制台的授权管理页面对指定RAM用户进行数据平面资源的授权。

您可以给RAM用户授予以下预置角色。详细操作,请参见配置子账号RBAC权限
表 1. 角色权限说明
角色 集群内RBAC权限
管理员 对所有命名空间下所有资源的读写权限。
运维人员 对所有命名空间下控制台可见资源的读写权限,对集群节点、存储卷、命名空间、配额的只读权限。
开发人员 对所有命名空间或所选命名空间下控制台可见资源的读写权限。
受限用户 对所有命名空间或所选命名空间下控制台可见资源的只读权限。
自定义 权限由您所选择的ClusterRole决定,请在确定所选ClusterRole对各类资源的操作权限后再进行授权,以免RAM用户获得不符合预期的权限。