kubelet 的 HTTPS 端点公开了 API, 这些 API 可以访问敏感度不同的数据, 并允许你在节点上和容器内以不同级别的权限执行操作。
本文档介绍了如何对 kubelet 的 HTTPS 端点的访问进行认证和鉴权。
默认情况下,未被已配置的其他身份认证方法拒绝的对 kubelet 的 HTTPS 端点的请求会被视为匿名请求, 并被赋予 用户名和 组。
要禁用匿名访问并向未经身份认证的请求发送 响应,请执行以下操作:
- 带 标志启动 kubelet
要对 kubelet 的 HTTPS 端点启用 X509 客户端证书认证:
- 带 标志启动 kubelet,提供一个 CA 证书包以供验证客户端证书
- 带 和 标志启动 API 服务器
- 有关更多详细信息,请参见 API 服务器身份验证文档
要启用 API 持有者令牌(包括服务帐户令牌)以对 kubelet 的 HTTPS 端点进行身份验证,请执行以下操作:
- 确保在 API 服务器中启用了 API 组
- 带 和 标志启动 kubelet
- kubelet 调用已配置的 API 服务器上的 API,以根据持有者令牌确定用户信息
任何成功通过身份验证的请求(包括匿名请求)之后都会被鉴权。 默认的鉴权模式为 ,它允许所有请求。
细分对 kubelet API 的访问权限可能有多种原因:
- 启用了匿名身份验证,但是应限制匿名用户调用 kubelet API 的能力
- 启用了持有者令牌认证,但应限制任意 API 用户(如服务帐户)调用 kubelet API 的能力
- 启用了客户端证书身份验证,但仅应允许已配置的 CA 签名的某些客户端证书使用 kubelet API
要细分对 kubelet API 的访问权限,请将鉴权委派给 API 服务器:
- 确保在 API 服务器中启用了 API 组
- 带 和 标志启动 kubelet
- kubelet 调用已配置的 API 服务器上的 API, 以确定每个请求是否得到鉴权
kubelet 使用与 API 服务器相同的 请求属性 方法对 API 请求执行鉴权。
请求的动词根据传入请求的 HTTP 动词确定:
资源和子资源是根据传入请求的路径确定的:
名字空间和 API 组属性始终是空字符串, 资源名称始终是 kubelet 的 API 对象的名称。
在此模式下运行时,请确保传递给 API 服务器的由 和 标志标识的用户具有以下属性的鉴权:
- verb=*, resource=nodes, subresource=proxy
- verb=*, resource=nodes, subresource=stats
- verb=*, resource=nodes, subresource=log
- verb=*, resource=nodes, subresource=spec
- verb=*, resource=nodes, subresource=metrics
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/27723.html