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

1-k8s集群安全-Role_RoleBinding

1.k8s集群安全-Role RoleBinding

认证(Authentication)、鉴权(Authoriaztion)、准入控制(AdmissionContorl)三步来保障其安全

Authentication(认证

1.由一到多个认证插件完成。收到请求后,API Server依次调用为其配置的认证插件来认证客户端身份,直到其中的一个插件可以识别出请求者的身份。
2.认证方式现共有8种,可以启用一种或多种认证方式,只要有一种认证方式通过,就不再进行其它方式的认证。
3.通常启用Client Certs和Service Accout Tokens两种认证方式。

Authorization(授权

1.由一到多个授权插件进行,负责确定那些通过认证的用户是否有权限执行其发出的资源操作请求,如创建、读取、删除或者修改指定对象等
2.授权方式现共有6种,AlwaysDeny、AlwaysAllow、ABAC、RBAC、Webhook、Node
3.默认集群强制开启RBAC(系统推荐)

Admission Control(准入控制)

通过授权检测的用户所请求的修改相关的操作还要经由一到多个准入控制插件的遍历检测,例如是否违反系统资源限制等

用户和组

用户:UserAccount与ServiceAccount
1.用户账户是针对人而言的。 服务账户是针对运行在 pod 中的进程而言的。
2.用户账户是全局性的,其名称在集群各 namespace 中都是全局唯一的。服务账户是 namespace 隔离的。
3.通常情况下,集群的用户账户可能会从企业数据库进行同步,其创建需要特殊权限,并且涉及到复杂的业务流程。
4.服务账户创建的目的是为了更轻量,允许集群用户为了具体的任务创建服务账户 ( 即权限最小化原则 )。组
用户账号的逻辑集合。Kubernetes几个内建的用于特殊目的的组:
system:unauthenticated               未通过任何一个授权插件检验的账号会进入该组
system:authenticated                 认证成功后的用户自动加入的一个组
system:serviceaccounts               包含当前系统所有的Service Account对象
system:serviceaccounts:<namespace>   包含指定名称空间内所有的Service Account对象

RBAC(Role Based Access Control):基于角色访问控制授权

允许管理员通过Kubernetes API动态配置授权策略。RBAC就是用户通过角色与权限进行关联;
RBAC只有授权,没有拒绝授权,所以只需要定义允许该用户做什么即可;
RBAC包括四种类型:Role、ClusterRole、RoleBinding、ClusterRoleBinding。

Role和ClusterRole:

1.Role是一系列的权限的集合,Role只能授予单个namespace中资源的访问权限。
2.ClusterRole作用于集群中的所有namespace,用于编写集群中的通用规则

RoleBinding和ClusterRoleBinding

1.RoleBinding是将Role中定义的权限授予给用户或者用户组。它包含一个subjects列表(users,groups,service accounts),并引用该Role。
2.RoleBinding对集群中单个namespace进行授权,ClusterRoleBinding对集群中所有namespace进行授权
3.编写ClusterRole,然后在不同的namaspace中使用RoleBinding来引用

访问k8s的API Server的客户端主要分为两类:

kubectl :用户家目录中的 .kube/config 里面保存了客户端访问API Server的密钥相关信息,这样当用kubectl访问k8s时,它就会自动读取该配置文件,向API Server发起认证,然后完成操作请求。

pod:Pod中的进程需要访问API Server,如果是人去访问或编写的脚本去访问,这类访问使用的账号为:UserAccount;而Pod自身去连接API Server时,使用的账号是:ServiceAccount,生产中后者使用居多。

kubectl向apiserver发起的命令,采用的是http方式,其实就是对URL发起增删改查的操作。

$ kubectl proxy --port=8888 &

$ curl http://localhost:8888/api/v1/namespaces/default

$ curl http://localhost:8888/apis/apps/v1/namespaces/default/deployments

以上两种api的区别是:

api它是一个特殊链接,只有在核心v1群组中的对象才能使用。

apis 它是一般API访问的入口固定格式名。

http://www.jsqmd.com/news/543773/

相关文章:

  • 实战指南|安科士155M SFP 160km光模块部署与运维技巧
  • s2-pro GPU部署实操:显存优化配置与高并发语音合成调优指南
  • OpenClaw故障排查大全:Qwen3.5-9B接口连接失败解决方案
  • 自动化办公闭环:OpenClaw+Qwen3.5-4B-Claude处理审批流
  • 深度解析:Beyond Compare 5授权机制与密钥生成技术
  • 从零构建超图:HGNN+论文中三种超边生成策略的实战解读与避坑指南
  • 技术融合驱动工程创新:PyAEDT如何提升仿真自动化与多物理场分析开发效率
  • 集群节点维护
  • SEO_本地商家必备的SEO优化解决办法与实战案例
  • 告别低效!Gvim批量操作全攻略:从日志分析到代码重构的实战技巧
  • LoRA训练助手实战案例:为国风插画师生成含工笔/水墨/岩彩等技法tag
  • DDR5 SDRAM自刷新操作避坑指南:从tCSH_SRexit到tXS的完整时序解析
  • 智慧园区的终极形态:从“功能堆砌”到“数据驱动”的生态化演进(PPT)
  • ESP32接入AWS IoT的嵌入式C SDK工程实践
  • 餐厅AI优化服务商全景解析:从GEO技术适配到效果落地的选型指南 - 品牌2025
  • 手把手教你用Docker一键部署DeepAudit:打造你的本地AI安全审计助手(支持通义千问/GLM)
  • VAP动画引擎:腾讯开源的高性能跨平台动画播放方案深度解析
  • AI产品经理面试题:如何平衡模型准确率与用户体验响应速度?
  • 5分钟提升90%效率:AudioSwitch音频设备智能管理指南
  • 7semi_L89HA:轻量级GNSS NMEA解析库设计与嵌入式实践
  • Claude Code Plugin 插件安装与说明
  • 如何挑选合适的恒温摇床?从双层恒温到二氧化碳摇床的厂家与品牌浅析 - 品牌推荐大师
  • 保姆级教程:用XTuner微调大模型,从环境配置到模型合并的完整避坑指南
  • ClawdBot基础实操:使用clawdbot channels status诊断Telegram通道
  • 硬字幕提取效率突破:SubtitleOCR技术革新与行业应用指南
  • 支付链路深度剖析(2):跨境支付的核心链路——钱是如何跨境的?
  • 从“双向选择排序”那个坑说起:调试3小时才发现的数组交换Bug,你的代码可能也有
  • 怎样专业优化华硕笔记本电池寿命:5个深度技术方案解析
  • Python开源代码管理避坑实战:从Git高级操作到Docker环境配置
  • 7种体脂指标大满贯!又一NHANES体脂肪指数类指标上线---锥度指数(C-index)