自定义RAM授权策略

本文介绍如何创建自定义授权策略。下面以授予RAM用户或RAM角色(即子账号)查询、扩容和删除集群的权限,以及创建、修改、使用资源预留和资源配额为例进行说明。

前提条件

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

背景信息

容器计算服务ACS提供的系统授权策略的授权粒度比较粗,如果这种粗粒度授权策略不能满足您的需要,那么您可以创建自定义授权策略。例如,您想控制对某个具体的集群的操作权限,您必须使用自定义授权策略才能满足这种细粒度要求。

在进行RAM用户或RAM角色的集群RBAC授权前,您需要完成对集群管控能力的RAM授权。您可以根据需要授予RAM用户或RAM角色对于目标集群的读写策略:

  • 读策略:用于查看集群配置、kubeconfig等基本信息。

  • 写策略:包含集群伸缩、升级、删除等集群管控能力。

在提交RBAC授权前,您需要确保目标集群已经被授予RAM只读权限,策略参考如下。

{
  "Statement": [
    {
      "Action": [
        "cs:Describe*"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:acc:*:*:cluster/<yourclusterID>"
      ]
    }
  ],
  "Version": "1"
}

当您完成RAM授权后,需要完成集群内Kubernetes资源模型访问的RBAC授权。

创建自定义授权策略

  1. 使用具有RAM权限的账号登录RAM管理控制台

  2. 单击左侧导航栏的权限管理 > 权限策略

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

  4. 创建权限策略页面,单击脚本编辑页签。在策略文档中编写您的授权策略内容。

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

    其中:

    • Action处填写您所要授予的权限。

      说明

      所有的Action均支持通配符。

    • Resource有以下配置方式。

      • 授予单集群权限

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

        "Resource": [
             "acs:cs:*:*:cluster/集群ID",
             "acs:cs:*:*:cluster/集群ID"
         ]

  5. 编写完成后,单击继续编辑基本信息,填写名称,然后单击确定

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

相关参考

为RAM用户或RAM角色授权不支持限制集群的ACK OpenAPI的操作权限

部分ACK OpenAPI不支持限制集群的授权(例如,DescribeEvents),若您需要给RAM用户或RAM角色授权这些不支持限制集群的ACK OpenAPI的操作权限,请勿在Resource中限定集群ID。

例如,当前RAM权限策略如下:

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