为RAM用户或RAM角色授予RAM权限

默认情况下,RAM用户或RAM角色没有使用云服务OpenAPI的任何权限,您需要为RAM用户或RAM角色授权才能使用容器服务ACK和容器计算服务ACS的OpenAPI,同时可以访问容器计算服务ACS的控制台查看集群。本文介绍如何为RAM用户或RAM角色授予系统权限策略和自定义权限策略。

前提条件

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

系统策略授权

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

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

系统策略名称

说明

AliyunCCFullAccess

使RAM用户或角色拥有容器计算服务产品所有OpenAPI的访问权限。

AliyunCSFullAccess

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

说明

此系统策略仅包含针对ACK产品的RAM授权。如您需要对ACK集群中的应用进行运维,还需要进行RBAC授权,请参见自定义RBAC授权策略。可读写操作包括除ACS类型在内所有ACK集群的,请谨慎授权。

AliyunVPCReadOnlyAccess

允许RAM用户或角色在创建集群时可以选择并指定VPC。

AliyunECSReadOnlyAccess

允许RAM用户或角色为集群查看节点详细信息。

AliyunContainerRegistryFullAccess

使RAM用户或角色拥有管理阿里云账号内的业务镜像的权限。

AliyunLogReadOnlyAccess

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

AliyunAHASReadOnlyAccess

使RAM用户或角色拥有查看集群拓扑功能的权限。

AliyunRAMFullAccess

使RAM用户或角色拥有阿里云账号内的全局授权管理权限。

AliyunYundunSASReadOnlyAccess

使RAM用户或角色拥有查看指定集群的运行时安全监控的权限。

AliyunARMSReadOnlyAccess

使RAM用户或角色拥有查看集群阿里云Prometheus插件的监控状态的权限。

AliyunKMSReadOnlyAccess

允许RAM用户或角色在创建Pro集群时可查看密钥管理服务(KMS)中密钥的权限。

AliyunESSReadOnlyAccess

使RAM用户或角色拥有查看节点池操作的权限。

为RAM用户或RAM角色授予系统策略

说明

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

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

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

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

    image

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

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

    1. 选择资源范围。

    2. 选择授权主体。

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

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

    4. 单击确认新增授权

  5. 单击关闭

自定义策略授权

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

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

  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角色授予自定义授权策略

关于自定义授权的具体操作和系统策略授权操作方法一样,在选择权限策略时,需选择您已创建的自定义策略。具体操作,请参见为RAM用户或RAM角色授予系统策略

使用示例

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

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

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

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

若您需要授权不支持限制集群的OpenAPI DescribeEvents ,其对应的RAM action为cs:DescribeEvents,修改后的RAM权限策略如下所示:

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

后续操作

  • 在完成RAM授权后,您需要继续完成集群内Kubernetes资源访问的RBAC授权,才能对集群内部资源进行操作。具体授权,请参见为RAM用户或RAM角色授予RBAC权限

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

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