吊销集群的KubeConfig凭证

在常见的多租场景下,容器服务 Kubernetes 版会为不同用户角色签发带有其身份信息的KubeConfig凭证用于连接集群。当企业内部员工离职或是某签发KubeConfig疑似泄露等情况发生时,吊销该集群的KubeConfig可有效保障集群的安全。本文介绍阿里云账号(主账号)或RAM用户如何吊销已经分发的用户KubeConfig凭证。

使用须知

集群限制

  • 吊销KubeConfig凭证的集群为ACK托管集群ACK专有集群时,集群创建时间需为2019年10月15日之后。

  • 吊销KubeConfig凭证的集群为ACK Serverless集群时,集群创建时间需为2019年09月06日之后。

使用场景

吊销KubeConfig凭证包含以下两种场景:

  • 阿里云账号(主账号)吊销其管理范围内(其所有RAM用户)的KubeConfig凭证。

  • RAM用户吊销自身的KubeConfig凭证。

吊销集群的KubeConfig凭证后,系统会自动分配新的KubeConfig凭证。

阿里云账号(主账号)吊销其RAM用户的KubeConfig凭证

重要

仅支持阿里云账号(主账号)吊销其他RAM用户或RAM角色的KubeConfig凭证。

您可以使用阿里云账号(主账号)登录控制台,进行如下操作。

  1. 登录容器服务管理控制台,在左侧导航栏选择授权管理

  2. RAM用户页签的用户列表,单击目标RAM用对应的管理KubeConfig,获取该RAM用户创建的集群列表,然后按照对话框提示完成目标集群的吊销操作。

RAM用户吊销自身的KubeConfig凭证

您可以使用RAM用户登录控制台,进行如下操作。

重要

吊销KubeConfig后,对应RAM用户无法再使用原KuberConfig连接集群。请谨慎操作。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择集群信息

  3. 单击连接信息页签,然后单击红色按钮吊销 KubeConfig,然后单击确定

吊销离职员工或非受信用户的KubeConfig凭证

对于离职员工或非受信用户,请您务必先使用阿里云账号(主账号)吊销离职用户的KubeConfig权限,然后再删除对应的RAM用户或RAM角色。因为仅删除RAM用户或RAM角色并不会同步删除该用户或角色拥有的集群KubeConfig中的RBAC权限。

重要

请您在删除RAM用户账号之前,并确保其在指定集群的KubeConfig没有业务依赖的情况下,吊销离职员工或非受信用户的KubeConfig权限。具体操作,请参见阿里云账号(主账号)吊销其RAM用户的KubeConfig凭证

(不推荐)若离职员工或非受信用户的RAM用户账号不小心被删除,但还未吊销该账号的KubeConfig凭证,请根据以下情况操作。

展开查看已删除RAM用户时,如何吊销该账号的KubeConfig凭证

  • 对于还在回收站的RAM用户

    1. 从回收站恢复RAM用户的基本信息,无需恢复RAM用户下原有的AccessKey。具体操作,请参见从回收站恢复RAM用户

    2. 使用阿里云账号吊销用户下发的所有集群KubeConfig。具体操作,请参见上文阿里云账号(主账号)吊销其RAM用户的KubeConfig凭证

    3. 将RAM用户移入回收站。具体操作,请参见将RAM用户移入回收站

  • 对于已彻底删除的RAM用户:需手动删除集群中以该RAM用户或RAM角色ID开头的RBAC权限绑定。

    1. 集群管理员执行以下命令,查看集群所有ClusterRoleBinding。

      kubectl get clusterrolebinding

      其中,由容器服务 Kubernetes 版授权管理功能下发的绑定格式为xxxxxxx-clusterrolebindingxxxxxxx为指定RAM用户或RAM角色ID,以数字2开头表示RAM用户绑定,以数字3开头表示RAM角色绑定。

    2. 集群管理员执行以下命,查看集群中所有由容器服务 Kubernetes 版授权管理功能下发的RoleBinding。

      kubectl get rolebinding -A | grep 'cs:ns:' 

      其中,绑定名称格式为xxxxxxx-yyyyy-rolebindingxxxxxxx为指定RAM用户或RAM角色ID,以数字2开头表示RAM用户绑定,以数字3开头表示RAM角色绑定。

    3. 对于以数字2开头的RAM用户ID,可登录RAM控制台,在用户页面搜索框,查看当前ID对应的RAM用户是否存在。如果搜索结果为空,则该RAM用户的RBAC绑定实例需清理。

    4. 对于以数字3开头的RAM角色ID,可通过RAM提供的列举RAM角色的OpenAPI,查看当前使用中的RAM角色ID。如果集群中存在的RAM角色ID不在当前列表中,则该RAM角色的RBAC绑定实例需清理。

    5. 对于需要清理的RBAC绑定实例,您可以执行kubectl delete clusterrolebinding xxxxxxx-clusterrolebinding或执行kubectl delete rolebinding xxxxxxx-yyyyy-rolebinding -n zzzz(其中zzzz为RoleBinding所在的命名空间),手动删除集群中残留的关联RBAC绑定实例。