使用RAM授予集群及云资源权限

默认情况下,RAM用户或RAM角色没有使用云服务OpenAPI的任何权限,您需要为RAM用户或RAM角色授予系统策略权限或自定义权限策略权限后,才能使用容器服务ACK的OpenAPI。本文介绍如何为RAM用户或RAM角色进行集群以及云资源维度的授权。

使用系统策略授权

系统策略授权用于指定全局资源的读写访问控制。当RAM用户或RAM角色需要阿里云账号下所有集群的运维管理权限时,建议使用系统策略进行快捷授权。容器服务ACK的常用系统策略如下表所示:

重要

系统策略中Full级别的权限为高风险权限,请谨慎授予,以免造成安全风险。

展开查看容器服务ACK常用系统策略

系统策略名称

说明

AliyunCSFullAccess

当RAM用户或RAM角色需要容器服务产品所有OpenAPI的访问权限。

说明

此系统策略仅包含针对ACK产品的RAM授权。如您需要对ACK集群中的应用进行运维,还需要进行RBAC授权,请参见RBAC授权

AliyunVPCReadOnlyAccess

当RAM用户或RAM角色在创建集群时选择指定VPC。

AliyunECSReadOnlyAccess

当RAM用户或RAM角色为集群添加已有节点或查看节点详细信息。

AliyunContainerRegistryFullAccess

当RAM用户或RAM角色需要全局管理阿里云账号内的业务镜像。

AliyunLogReadOnlyAccess

当RAM用户或RAM角色在创建集群时选择已有Log Project存储审计日志,或查看指定集群的配置巡检。

AliyunAHASReadOnlyAccess

当RAM用户或RAM角色需要使用集群拓扑功能。

AliyunRAMFullAccess

当RAM用户或RAM角色需要负责阿里云账号内的全局授权管理。

AliyunYundunSASReadOnlyAccess

当RAM用户或RAM角色需要查看指定集群的运行时安全监控。

AliyunARMSReadOnlyAccess

当RAM用户或RAM角色需要查看集群阿里云Prometheus插件的监控状态。

AliyunKMSReadOnlyAccess

当RAM用户或RAM角色在创建Pro集群时启用Secret落盘加密能力。

AliyunESSReadOnlyAccess

当RAM用户或RAM角色需要执行节点池的相关操作,例如查看、编辑和扩缩容等。

说明

阿里云账号(主账号)对账号中的资源具有完全管理权限,您也可以在RAM中创建一个RAM用户,授予AdministratorAccess权限,充当账号管理员,该管理员可以对账号下所有云资源进行管控操作。更多信息,请参见创建RAM用户作为账号管理员

  1. 使用RAM管理员登录RAM控制台

  2. 在左侧导航栏,选择身份管理 > 用户

  3. 用户页面,单击目标RAM用户操作列的添加权限

    image

    您也可以选中多个RAM用户,单击用户列表下方的添加权限,为RAM用户批量授权。

  4. 新增授权面板,为RAM用户添加权限。

    1. 选择资源范围。

    2. 选择授权主体。

      授权主体即需要添加权限的RAM用户。系统会自动选择当前的RAM用户。

    3. 选择需要授予的系统权限策略。

    4. 单击确认新增授权

  5. 单击关闭

使用自定义策略授权

自定义策略授权用于对目标RAM用户或RAM角色实现细粒度的云资源访问控制。不同的云资源可能存在不同的安全性和访问控制要求,如果您需要对用户进行精细化的云资源访问控制,例如,限制某用户对某个具体集群的操作权限,您可以创建自定义授权策略满足这种细粒度要求。另外,如果目标RAM用户或RAM角色有基于SDK的二次开发需求,还可实现API级别的权限控制。关于RAM支持的授权项,请参见授权信息

说明

在创建自定义授权策略时,您需要了解授权策略语言的基本结构和语法。更多信息,请参见权限策略基本元素

步骤一:创建自定义授权策略

  1. 使用RAM管理员登录RAM控制台

  2. 在左侧导航栏,选择权限管理 > 权限策略

  3. 权限策略页面,单击创建权限策略

  4. 创建权限策略页面,单击脚本编辑页签,输入您的权限策略内容。

    {
     "Statement": [{
         "Action": [
             "cs:Get*",
             "cs:List*",
             "cs:Describe*",
             "cs:ScaleCluster",
             "cs:DeleteCluster"
         ],
         "Effect": "Allow",
         "Resource": [
             "acs:cs:*:*:cluster/集群ID"
         ]
     }],
     "Version": "1"
    }

    参数

    说明

    Action

    所需授予的权限,所有的Action均支持通配符。

    Resource

    有以下配置方式,其中,集群ID需要替换为您的实际集群ID。

    • 授予单集群权限

      "Resource": [
           "acs:cs:*:*:cluster/集群ID"
       ]
    • 授予多个集群权限

      "Resource": [
           "acs:cs:*:*:cluster/集群ID",
           "acs:cs:*:*:cluster/集群ID"
       ]
    • 授予所有集群的权限

      "Resource": [
           "*"
       ]
  5. 编写完成后,单击继续编辑基本信息,填写名称,然后单击确定

  6. 返回权限策略页面,在搜索框中搜索策略名或备注,可以看到您授权的自定义策略。

步骤二:为RAM用户或RAM角色授予自定义权限策略

关于自定义授权的具体操作和系统策略授权操作方法一样,当选择权限策略时,需选择您已创建的自定义策略。具体操作,请参见使用系统策略授权

自定义策略授权示例

示例1:授予指定集群的只读权限

{
  "Statement": [
    {
      "Action": [
        "cs:Get*",
        "cs:List*",
        "cs:Describe*"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:cs:*:*:cluster/<yourclusterID>" # 目标集群ID。
      ]
    }
  ],
  "Version": "1"
}

示例2:授予指定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/*"
        }
    ]
}

示例3:授权不支持限制集群的OpenAPI的操作权限

部分OpenAPI不支持限制集群的授权(例如,DescribeEvents),如果您需要给RAM用户或RAM角色授权这些OpenAPI不支持限制集群的OpenAPI的操作权限,请勿在Resource中限定集群ID。修改前后的RAM权限策略对比如下:

修改前RAM权限策略

修改后RAM权限策略

{
    "Statement": [
        {
            "Action": [
                "cs:Get*",
                "cs:List*",
                "cs:Describe*"
            ],
            "Effect": "Allow",
            "Resource": [
                "acs:cs:*:*:cluster/c2e63856bcd714197****"
            ]
        }
    ],
    "Version": "1"
}
{
    "Statement": [
        {
            "Action": [
                "cs:DescribeEvents"
            ],
            "Effect": "Allow",
            "Resource": [
              "*"
            ]
        },
        {
            "Action": [
                "cs:Get*",
                "cs:List*",
                "cs:Describe*"
            ],
            "Effect": "Allow",
            "Resource": [
                "acs:cs:*:*:cluster/c2e63856bcd714197****"
            ]
        }
    ],
    "Version": "1"
}

后续操作