当前位置: 首页 > news >正文

Kubernetes 访问控制全解析:认证、RBAC 与准入控制一次搞懂 实战指南

Kubernetes 访问控制全解析:认证、RBAC 与准入控制一次搞懂 实战指南

Kubernetes 访问控制是保障集群安全的核心防线。无论是普通用户、ServiceAccount,还是 Pod 自身与 API Server 的交互,都会经过认证 → 授权 → 准入控制三层检查。本文将深入每一层的原理与配置,并通过大量实战示例,让你彻底掌握 Kubernetes 访问控制。


1. 访问控制三层架构

一个请求到达 API Server 后,会经历以下流程:

客户端请求 → 认证(Authentication) → 授权(Authorization) → 准入控制(Admission Control) → etcd
  • 认证:确认“你是谁”(身份)。
  • 授权:确认“你能做什么”(权限)。
  • 准入控制:在对象持久化之前,对其进行校验或修改(策略增强)。

注意:匿名请求和 ServiceAccount 也经过相同流程,只是身份来源不同。


2. 认证(Authentication)

K8s 没有内部用户存储,用户由外部系统管理(如证书、OIDC、Webhook)。API Server 支持多种认证方式,按顺序尝试,直到有一个成功。

2.1 认证方式概览

认证方式典型用途说明
X509 客户端证书管理员、kubelet最常用,CN 为用户名,O 为组
静态 Token 文件测试、遗留系统用 CSV 文件存储 token,不推荐生产
引导令牌(Bootstrap Token)节点加入集群用于 kubeadm 自动颁发证书
ServiceAccount 令牌Pod 内访问 APIJWT 令牌,自动挂载
OIDC企业 SSO与 Dex、Keycloak 等集成
Webhook Token自定义认证请求外部服务验证 token
匿名请求允许未认证访问需显式启用并授权

2.2 核心概念:用户与组

  • 普通用户:由外部管理,无法通过 K8s API 增删改。
  • ServiceAccount:由 K8s 管理,存在 Namespace 中,用于 Pod 内进程。
  • :可以是证书中的 O 字段、OIDC 中的 group 声明或静态 token 中的组。

2.3 实战:创建客户端证书用户

目标:生成一个名为 john 的用户证书,并为其配置 kubeconfig,使其能够访问集群。

# 1. 生成私钥 openssl genrsa -out john.key 2048 # 2. 生成证书签名请求(CN=用户名,O=组,O 可选) openssl req -new -key john.key -out john.csr -subj "/CN=john/O=dev-team" # 3. 使用集群 CA 签发证书 openssl x509 -req -in john.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out john.crt -days 365 # 4. 设置 kubeconfig 条目 kubectl config set-credentials john --client-certificate=john.crt --client-key=john.key kubectl config set-context john@kubernetes --cluster=kubernetes --user=john

生产环境应使用更安全的证书管理方案,如 cfssl 或 cert-manager


3. 授权(Authorization)

认证通过后,请求进入授权层。K8s 支持多种授权模块,RBAC 是生产标准。

3.1 RBAC 对象

对象作用域用途
RoleNamespace授予某命名空间内的资源权限
ClusterRole集群授予集群级资源权限,或跨 Namespace 复用
RoleBindingNamespace将 Role/ClusterRole 绑定到 Subjects,仅影响该命名空间
ClusterRoleBinding集群将 ClusterRole 绑定到 Subjects,影响整个集群

Subjects:可以是 User、Group、ServiceAccount。

3.2 RBAC 核心规则:资源与动词

apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default na
http://www.jsqmd.com/news/372938/

相关文章:

  • TypeScript输入掩码:企业级表单验证的技术革新与实践指南
  • 小米温湿度计智能家居改造:从痛点到解决方案的实战指南
  • 平民化动作捕捉技术:三维角色动画创作的无门槛解决方案
  • Spring Boot + MQTT + EMQX 实战:从零搭建物联网数据接入与指令下发平台
  • AssetRipper全面解析:高效Unity资源逆向工具的实战指南
  • ExplorerPatcher隐藏文件显示异常故障排除指南(2024更新)
  • PojavLauncher iOS:在iPhone上流畅运行Minecraft Java版的技术指南
  • 如何用AI界面设计工具提升开发效率?探索OpenUI的无代码解决方案
  • 开发效率工具Claude HUD:如何通过实时状态监控提升AI助手工作流效率?
  • Agent Starter Pack实战指南:从问题诊断到生产部署的全流程解析
  • 4个系统级防护方案:Windows防火墙强化与网络安全策略优化指南
  • 从零开始掌握PathOfBuilding:游戏角色构建实战指南
  • FactoryBluePrints革新性工厂优化实战指南
  • AI音乐生成工具Riffusion实战指南:从零基础到创作达人
  • ExplorerPatcher隐藏文件异常?三步解决显示问题的实用指南
  • P2P下载加速完全指南:Tracker服务器优化与效率提升方案
  • Czkawka:释放磁盘空间的智能清理工具全指南
  • 3个让浏览器提速200%的核心技术揭秘
  • 3大维度拆解Android性能调优真相:从问题诊断到工具实战全流程
  • AI视频内容解析技术:从信息提取到智能总结的完整解决方案
  • 智能文档自动化:重塑研发团队的文档管理模式
  • 掌握2026企业级RAG多模态技术:从文本对齐到端到端融合(收藏版,小白程序员必看)
  • Recorder录音库全场景问题解决指南:从环境配置到性能优化
  • AI文档生成与开发效率工具:Claude Flow智能文档自动化实践指南
  • 7天如何掌握量化投资的波动率加权策略?
  • 如何通过draw.io桌面版实现全场景绘图无忧:7个专业技巧
  • 5个超实用步骤掌握SDR++信号接收与频谱分析
  • Qt creator快捷键
  • Recorder录音库避坑指南:20个实战问题的诊断与破局方案
  • 3步实现多模型本地推理:Xinference全流程技术指南