主要观点:作者曾因害怕 Kubernetes 的认证而花费大量时间,后在实现 kty 的 OAuth 支持过程中,明白其并非如想象中复杂。只需使用 OpenID,在集群中授予组或用户正确权限,如 Google、GitHub、Okta 等均可作为 OpenID 提供方,无需纠结 IAM 等其他内容。
关键信息:
- Kubernetes 有多种认证方式,如静态令牌文件等,OpenID Connect 利用加密魔法实现身份验证,ID 令牌包含身份信息且可验证。
- API 服务器可从 ID 令牌提取身份用于 RBAC 确定权限,可将令牌与组或用户关联,通过角色绑定实现。
- kty 已实现 OIDC 支持,无需管理 SSH 密钥,通过登录屏幕验证身份,可使用 kubelogin 插件或 oidc-proxy,多数 Kubernetes 解决方案支持 OIDC。
重要细节:
- 每个请求向 API 服务器发送令牌作为头,服务器查找令牌映射到用户或组。
- ID 令牌是 JWT,包含关于身份的信息(称为“声明”),用提供方私钥签名,可通过公共密钥验证。
- 角色定义了允许的操作,通过角色绑定将身份与角色关联,可绑定到组,方便基于团队管理权限。
- 实现 OIDC 支持后,有集中位置管理集群访问,用户可使用登录屏幕直接访问集群,无需复杂系统。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。