容器服务 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。 |
| |
RAM用户或RAM角色维度 | 管理指定用户所拥有的集群KubeConfig。 |
| |
已失效RAM用户或RAM角色维度 | 账号中存在已删除的RAM用户或RAM角色,但KubeConfig仍在生效中。 |
|
集群维度KubeConfig管理示例
登录容器服务管理控制台,在左侧导航栏选择授权管理。
在授权管理页面,单击KubeConfig 管理页签,单击目标集群右侧的KubeConfig 管理进入KubeConfig 管理页面。
在该页面可查看拥有该集群KubeConfig或KubeConfig过去被清除但是仍残留RBAC授权的用户列表,列表包含用户信息和KubeConfig证书信息两部分:
用户信息:包括用户名、用户ID、账号类型以及账号状态。
KubeConfig证书信息:包括KubeConfig过期时间、KubeConfig状态等。
确认待清除用户的KubeConfig没有被任何业务应用依赖使用后,单击目标用户右侧操作列下的清除 KubeConfig,清除目标用户在该集群下的KubeConfig。
重要请务必确认不存在风险后,再执行KubeConfig清除操作,否则,您将无法使用该用户的KubeConfig访问集群API Server。
KubeConfig的运维和管理是用户的职责,请您务必及时清除有安全风险的KubeConfig。
单击清除 KubeConfig时,将会对待删除的KubeConfig进行七天内在指定集群API Server审计日志的访问记录检查,此辅助检查使用前提为对应集群已开启集群的API Server审计功能。
RAM用户或RAM角色维度KubeConfig管理示例
登录容器服务管理控制台,在左侧导航栏选择授权管理。
在授权管理页面,单击RAM 用户页签,然后单击目标用户右侧的管理 KubeConfig进入该用户的管理 KubeConfig页面。
在该页面可查看该用户各个集群KubeConfig的下发状态列表,列表包含集群信息和KubeConfig证书信息两部分:
集群信息:集群名称、集群ID。
KubeConfig证书信息:KubeConfig过期时间和状态、七天日志检查(即证书访问记录)。
单个或批量清除该用户对应集群的KubeConfig。清除前,请确认待清除用户的KubeConfig没有被任何业务应用依赖使用。
单个清除:单击目标集群右侧操作列下的清除 KubeConfig,清除当前用户在该集群下的KubeConfig。
批量清除:在集群名称列选择多个待清除的集群,然后在页面左下角单击清除 KubeConfig。
重要请务必确认不存在风险后,再执行KubeConfig清除操作,否则,您将无法使用该用户的KubeConfig访问集群API Server。
KubeConfig的运维和管理是用户的职责,请您务必及时清除有安全风险的KubeConfig。
单击清除 KubeConfig时,将会对待删除的KubeConfig进行七天内在指定集群API Server审计日志的访问记录检查,此辅助检查使用前提为对应集群已开启集群的API Server审计功能。
清除失效用户KubeConfig示例
通过容器服务管理控制台清除
登录容器服务管理控制台,在左侧导航栏选择授权管理。
在授权管理页面,如果您的账号中存在已删除的失效用户的KubeConfig残留,该页面会显示如下提示信息。
单击红色提示框中的处理与失效账号关联的 KubeConfig,进入清除已删除 RAM 用户/角色的 KubeConfig页面。
该页面可查看KubeConfig 以及 RBAC 授权仍在生效的已删除的 RAM用户或RAM角色列表。
确认待清除用户的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凭证。