使用自定义Worker RAM角色实现节点池精细化权限控制

ACK托管集群默认会创建一个所有节点共享的默认Worker RAM角色。当您通过Worker RAM角色为特定的应用授权时,权限将会共享给集群内所有的节点,可能会存在非预期的权限扩散的风险。您可以在创建节点池时为其指定一个自定义的Worker RAM角色,通过为不同的节点池分配特定的角色,降低在集群所有节点中共用一个Worker RAM角色可能存在的风险。

前提条件

  • 已创建ACK托管集群,且集群为1.22及以上版本。具体操作,请参见创建ACK托管集群

  • 当前仅对白名单用户开放。如需使用,请提交工单申请。

步骤一:创建RAM角色

您可以通过控制台、OpenAPI或Terraform等方式创建一个Worker RAM角色。

重要
  • RAM角色的名称不能以KubernetesMasterRole-KubernetesWorkerRole-开头。

  • RAM角色的受信服务必须是云服务器

通过控制台创建RAM角色

  1. 使用阿里云账号(主账号)登录RAM控制台

    说明

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

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

  3. 角色页面,单击创建角色

  4. 创建角色页面,选择可信实体类型为阿里云服务,然后单击下一步

  5. 选择角色类型为普通服务角色

  6. 输入角色名称备注

  7. 选择受信服务为云服务器

  8. 单击完成

  9. 单击关闭

通过OpenAPI或Terraform创建RAM角色

如果您需要通过OpenAPI或Terraform创建RAM角色,在创建角色时,请确保指定的角色信任策略已配置如下策略。如需修改RAM角色信任策略,请参见修改RAM角色的信任策略

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "ecs.aliyuncs.com"
        ]
      }
    }
  ],
  "Version": "1"
}

步骤二:为新建节点池指定Woker RAM角色

重要

您可以在创建集群或创建节点池时使用自定义的Worker RAM角色。已有节点池的Worker RAM角色不支持修改。

容器服务管理控制台创建集群或创建节点池时,您可以在节点池的高级选项配置中,将Worker RAM 角色选择为步骤一:创建RAM角色所创建的角色,为新建节点池指定一个自定义Woker RAM角色。具体操作,请参见创建集群时节点池高级选项创建节点池时高级配置

相关操作

创建RAM角色后,该RAM角色默认没有任何权限。

当Worker RAM角色不再需要某些权限时,请及时将这些权限移除。具体操作,请参见为RAM角色移除权限