清除KubeConfig

容器服务 Kubernetes 版会为不同阿里云账号、RAM用户或角色签发带有其身份信息的KubeConfig凭证用于连接集群。阿里云账号或RAM用户或RAM角色可以通过KubeConfig管理功能,从集群维度或用户维度获取所有已下发的KubeConfig状态,并针对部分有安全风险的KubeConfig进行清理和解除授权。

KubeConfig介绍

KubeConfig用于在客户端配置集群的访问凭据,您可以通过容器服务管理控制台获取集群KubeConfig接口等方式获取。请妥善管理集群的KubeConfig凭据,避免KubeConfig泄露带来的数据泄露等安全风险。

重要

获取的KubeConfig具备特定的生效时间,到期之后将自动失效。关于KubeConfig有效期时间查询,请参见如何获取KubeConfig所使用的证书的过期时间?

KubeConfig状态

容器服务 Kubernetes 版的KubeConfig具备以下四个状态。

KubeConfig状态

说明

未颁发

对当前RAM用户或RAM角色从未下发过该集群的KubeConfig。

生效

当前RAM用户或RAM角色的集群KubeConfig存在且未过期。

当前RAM用户或RAM角色的集群KubeConfig已被清除,但仍然存在残留的RBAC权限。

过期

当前RAM用户或RAM角色的集群KubeConfig存在,但已过期。

已清除

当前RAM用户或RAM角色下发过集群的KubeConfig,但是目前KubeConfig已经被清除。

清除KubeConfig即删除集群的KubeConfig信息和该RAM用户或RAM角色的RBAC Binding。

如需清除正在生效的KubeConfig,请您谨慎核对凭据下发的合理性和有效性。例如,离职员工请逐一清除其持有的KubeConfig,避免正在合理使用的KubeConfig过期。同时建议您通过ack-ram-authenticator完成ACK托管集群APIServer的Webhook认证实现更加灵活可控的RBAC授权体验,实现删除RAM用户或RAM角色时数据面KubeConfig凭据的自动吊销。

重要
  • 请务必确认不存在风险后,再执行KubeConfig清除操作,否则,您将无法使用该用户的KubeConfig访问集群API Server。

  • KubeConfig的运维和管理是用户的职责,请您务必及时清除有安全风险的KubeConfig。

KubeConfig管理

管理维度

适用场景

使用所需权限

使用示例

集群维度

管理目标集群下所有用户的KubeConfig。

集群维度KubeConfig管理示例

RAM用户或RAM角色维度

管理指定用户所拥有的集群KubeConfig。

RAM用户或RAM角色维度KubeConfig管理示例

已失效RAM用户或RAM角色维度

账号中存在已删除的RAM用户或RAM角色,但KubeConfig仍在生效中。

清除失效用户KubeConfig示例

集群维度KubeConfig管理示例

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

  2. 授权管理页面,单击KubeConfig 管理页签,单击目标集群右侧的KubeConfig 管理进入KubeConfig 管理页面。

    在该页面可查看拥有该集群KubeConfigKubeConfig过去被清除但是仍残留RBAC授权的用户列表,列表包含用户信息和KubeConfig证书信息两部分:

    • 用户信息:包括用户名、用户ID、账号类型以及账号状态。

    • KubeConfig证书信息:包括KubeConfig过期时间、KubeConfig状态等。

  3. 确认待清除用户的KubeConfig没有被任何业务应用依赖使用后,单击目标用户右侧操作列下的清除 KubeConfig,清除目标用户在该集群下的KubeConfig。

    重要
    • 请务必确认不存在风险后,再执行KubeConfig清除操作,否则,您将无法使用该用户的KubeConfig访问集群API Server。

    • KubeConfig的运维和管理是用户的职责,请您务必及时清除有安全风险的KubeConfig。

    单击清除 KubeConfig时,将会对待删除的KubeConfig进行七天内在指定集群API Server审计日志的访问记录检查,此辅助检查使用前提为对应集群已开启集群的API Server审计功能

RAM用户或RAM角色维度KubeConfig管理示例

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

  2. 授权管理页面,单击RAM 用户页签,然后单击目标用户右侧的管理 KubeConfig进入该用户的管理 KubeConfig页面。

    在该页面可查看该用户各个集群KubeConfig的下发状态列表,列表包含集群信息和KubeConfig证书信息两部分:

    • 集群信息:集群名称、集群ID。

    • KubeConfig证书信息:KubeConfig过期时间和状态、七天日志检查(即证书访问记录)。

  3. 单个或批量清除该用户对应集群的KubeConfig。清除前,请确认待清除用户的KubeConfig没有被任何业务应用依赖使用。

    • 单个清除:单击目标集群右侧操作列下的清除 KubeConfig,清除当前用户在该集群下的KubeConfig。

    • 批量清除:在集群名称列选择多个待清除的集群,然后在页面左下角单击清除 KubeConfig

      重要
      • 请务必确认不存在风险后,再执行KubeConfig清除操作,否则,您将无法使用该用户的KubeConfig访问集群API Server。

      • KubeConfig的运维和管理是用户的职责,请您务必及时清除有安全风险的KubeConfig。

      单击清除 KubeConfig时,将会对待删除的KubeConfig进行七天内在指定集群API Server审计日志的访问记录检查,此辅助检查使用前提为对应集群已开启集群的API Server审计功能

清除失效用户KubeConfig示例

通过容器服务管理控制台清除

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

  2. 授权管理页面,如果您的账号中存在已删除的失效用户的KubeConfig残留,该页面会显示如下提示信息。image.png

  3. 单击红色提示框中的处理与失效账号关联的 KubeConfig,进入清除已删除 RAM 用户/角色的 KubeConfig页面。

    该页面可查看KubeConfig 以及 RBAC 授权仍在生效的已删除的 RAM用户或RAM角色列表。

  4. 确认待清除用户的KubeConfig没有被任何业务应用依赖使用后,单击已失效用户右侧的清除 KubeConfig清除该失效用户的KubeConfig。

    重要
    • 请务必确认不存在风险后,再执行KubeConfig清除操作,否则,您将无法使用该用户的KubeConfig访问集群API Server。

    • KubeConfig的运维和管理是用户的职责,请您务必及时清除有安全风险的KubeConfig。

    单击清除 KubeConfig时,将会对待删除的KubeConfig进行七天内在指定集群API Server审计日志的访问记录检查,此辅助检查使用前提为对应集群已开启集群的API Server审计功能

通过ack-ram-tool工具清除

关于如何使用ack-ram-tool工具清除KubeConfig的具体操作,请参见通过ack-ram-tool清理集群中指定用户的权限

KubeConfig使用常见问题

清除KubeConfig时,什么是七天日志检查?

七天日志检查是一种辅助检查手段,用于查看对应的KubeConfig在最近七天是否访问过此集群,使用前提为集群已开启集群的API Server审计功能。此检查具有一定的局限性,仅作辅助检查供您参考,您仍需要自行确保KubeConfig未被任何业务应用依赖使用。

如何解读七天日志检查的结果?

检查结果

结果类型

可能原因

成功

未发现访问记录

近七天内用户可能并未使用该KubeConfig访问集群API Server。

存在访问记录

近七天内用户使用过该KubeConfig访问集群API Server。

失败

无法查找访问记录

集群未开通日志审计,无法自动进行检查。

其他错误原因,例如集群连接失败、网络问题等。

不能清除KubeConfig的场景有哪些?

  • 集群状态异常:删除失败删除中已删除失败四种状态的集群无法进行KubeConfig清除。

  • KubeConfig或证书状态异常:集群KubeConfig处于未颁发已清除未知状态的用户无法进行 KubeConfig清除。

  • 用户无法清除自己的KubeConfig。

  • 用户无法清除阿里云账号的KubeConfig。

KubeConfig误清除可以恢复吗?可以恢复指定版本的KubeConfig吗?

如果您需要恢复误清除的KubeConfig,或回滚某个历史版本的KubeConfig,您可以通过KubeConfig回收站功能来实现。更多信息,请参见使用KubeConfig回收站

KubeConfig管理的最佳安全实践是什么?

您应自行管理账号和容器服务集群的访问凭据,妥善保管账号和容器服务集群的访问凭据,例如RAM AK、Token和容器服务集群KubeConfig客户端等。您自行管理账号和容器服务集群的授权范围,应遵循权限的最小化原则,并及时更新清除不恰当、失效的授权,例如,已离职员工不应再持有容器服务集群的访问权限。同时,建议您通过ack-ram-authenticator完成ACK托管集群APIServer的Webhook认证实现更加灵活的RBAC授权体验,实现删除RAM用户或角色时数据面KubeConfig凭据的自动吊销。

重要

因您运维不当导致的访问凭据(例如RAM凭据、KubeConfig)泄露或过期引起的一切损失和后果均由您自行承担,请仔细阅读并遵循安全责任共担模型的要求。

相关文档

当企业内部员工离职或是某签发KubeConfig疑似泄露等情况发生时,您可以吊销该集群的KubeConfig,生成新的KubeConfig。具体操作,请参见吊销集群的KubeConfig凭证