一、安全机制说明
在k8s集群中,API Server是集群内部各个通信组件的中介,是外部控制的入口,所以k8s的安全机制主要是针对保护API Server来设置。
二、认证
1、常见认证方式
Kubernetes 集群的客户端认证方式主要分为以下几种:
1. 客户端证书认证(X.509 Client Certificates)
-
原理:通过为客户端签发 X.509 证书,并在请求时携带该证书,API Server 使用预先配置的 CA 证书进行验证。
-
配置方式:证书和私钥配置在 kubeconfig 文件中,API Server 启动时通过
--client-ca-file指定 CA 证书。 -
特点:安全性高,支持双向 TLS 认证,常用于 kubectl 和集群组件间通信。
2. 静态 Token 认证(Static Token File)
-
原理:API Server 启动时加载一个包含用户名、用户组、Token 等信息的静态文件(通过
--token-auth-file指定)。 -
使用方式:客户端在 HTTP Header 中加入
Authorization: Bearer <token>进行认证。 -
特点:简单但不灵活,Token 长期有效,修改需重启 API Server。
3. Service Account Token 认证
-
原理:Kubernetes 自动为每个命名空间创建 ServiceAccount,并为其生成 JWT Token。
-
使用场景:Pod 内进程访问 API Server 时使用,Token 自动挂载到 Pod 中。
-
特点:适用于集群内部服务认证,Token 由 API Server 签发并验证。
4. Bootstrap Token 认证
-
原理:用于节点加入集群时的认证,Token 通过 Secret 存储在 kube-system 命名空间中。
-
使用场景:集群扩容或新节点加入时使用。
5. OpenID Connect(OIDC)Token 认证
-
原理:基于 OAuth 2.0 和 OIDC 协议,通过外部身份提供商(如 Google、Azure AD)进行认证。
-
配置方式:API Server 启动参数中配置
--oidc-issuer-url、--oidc-client-id等。 -
特点:适用于与外部身份系统集成,支持单点登录(SSO)。
6. Webhook Token 认证
-
原理:通过远程 Webhook 服务验证 Bearer Token,API Server 将 Token 转发给 Webhook 服务进行认证。
-
配置方式:API Server 启动参数中配置
--authentication-token-webhook-config-file指定 Webhook 服务的 kubeconfig 文件。 -
特点:可扩展性强,支持自定义认证逻辑和外部身份系统(如 LDAP、SAML)。
7. 身份认证代理(Authenticating Proxy)
-
原理:通过反向代理(如 Nginx、OAuth2 Proxy)在请求头中注入用户身份信息,API Server 信任代理并提取用户信息。
-
配置方式:API Server 通过
--requestheader-username-headers等参数配置信任的头信息。 -
特点:适用于统一认证网关场景,减少客户端配置复杂度。
8. HTTP Basic 认证
-
原理:通过用户名和密码进行认证,信息以 Base64 编码后放在 HTTP Header 中。
-
特点:简单但不安全,通常需配合 HTTPS 使用,生产环境较少使用。
9. 匿名认证
-
原理:允许未经认证的请求访问集群资源,默认关闭。
-
配置方式:通过 API Server 启动参数
--anonymous-auth=true开启。 -
特点:存在安全风险,生产环境建议关闭。
10. client-go 凭据插件(Exec Credential Plugins)
-
原理:通过外部命令动态获取认证凭据(如 Token 或证书),支持自定义认证协议(如 LDAP、Kerberos)。
-
配置方式:在 kubeconfig 文件中配置
exec字段,指定外部命令及其参数。 -
特点:灵活性高,支持与外部身份系统集成。
| 认证方式 | 安全性 | 适用场景 | 配置复杂度 | 备注 |
|---|---|---|---|---|
| 客户端证书 | 高 | kubectl、组件通信 | 中 | 默认推荐方式 |
| 静态 Token | 中 | 简单场景 | 低 | Token 长期有效 |
| Service Account | 中 | Pod 内服务认证 | 低 | 自动挂载 |
| Bootstrap Token | 中 | 节点加入集群 | 低 | 临时 Token |
| OIDC Token | 高 | 外部 |

最低0.47元/天 解锁文章
751

被折叠的 条评论
为什么被折叠?



