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

k8s 新版创建完 serviceaccount 后-- 不再生成 对应的--token

在 Kubernetes ‌1.24 及更新版本中,创建 ServiceAccount(服务账户)后默认不会自动生成对应的 Secret 和 Token‌。这是 Kubernetes 在安全策略上的重要变更,主要解决旧版本中永久有效 Token 的安全风险问题

以下是新旧版本行为对比及新版操作指南:


🔒 一、版本行为对比

‌Kubernetes 版本‌‌创建 ServiceAccount 后的行为‌‌Token 特性‌
‌≤ 1.20 版本‌ 自动生成关联的 Secret(含永久有效 Token)
永不过期,存在安全风险
‌1.21–1.23 版本‌ 自动生成 Secret,但 Token 有过期时间
可配置有效期
‌≥ 1.24 版本(当前最新)‌ ‌不再自动生成 Secret 和 Token‌
需手动创建,默认有效期 1 小时

⚙️ 二、新版手动创建 Token 方法

通过 kubectl create token 命令显式生成短期有效的 Token:

 
# 为名为 my-sa 的 ServiceAccount 生成 Token(默认有效期 1 小时) kubectl create token my-sa

输出示例(直接返回 Token 字符串):

 
eyJhbGciOiJSUzI1NiIsImtpZCI6Ik1rQTF...

💡 关键特性:

  1. ‌短期有效性‌
    • 默认有效期 ‌1 小时‌,可通过 --duration 参数调整(如 --duration=24h
  2. ‌动态更新机制‌
    • 若 Pod 使用该 ServiceAccount,kubelet 会每小时自动轮换挂载的 Token,无需手动维护。
  3. ‌无持久化 Secret‌
    • 此命令生成的 Token ‌不会创建 Secret 对象‌,仅临时输出到终端

🔐 三、安全最佳实践

  1. ‌避免使用高权限默认 SA‌
    Kubernetes 自动为 Pod 分配的 default ServiceAccount 通常具有过高权限,建议绑定最小权限 Role

  2. ‌生产环境权限控制‌

     
    # 示例:为 default SA 绑定只读权限 kubectl create rolebinding read-only --clusterrole=view --serviceaccount=default:default
  3. ‌定期轮换敏感 Token‌
    对需长期使用的 Token(如 CI/CD 系统),通过 CronJob 定期执行 kubectl create token 更新凭证

‌注意‌:若需兼容旧版(自动生成 Secret),需显式创建 Secret 并关联 ServiceAccount 的 secrets 字段,但官方已不推荐此方式


💎 总结

  • ✅ Kubernetes ≥1.24 中,‌ServiceAccount 不再自动生成 Token‌
  • ✅ 必须通过 kubectl create token <sa-name> 手动创建‌短期有效‌ Token
  • ✅ Pod 内挂载的 Token 由 kubelet 每小时自动更新,保障安全性
 
 
 
http://www.aitangshan.cn/news/681.html

相关文章:

  • 验证码厂商对比及选型
  • debian更换NVIDIA 官方驱动
  • 经纬恒润推动汽车软件安全新生态,打造全流程质量协同新范式
  • 2025杭电多校第七场 矩形框选、伤害冷却比 个人题解 - CUC
  • 7 月 SeaTunnel 社区狂飙:新特性、强优化、贡献者满分输出
  • 在K8S中,假设一家基于整体架构的公司处理许多产品。现在,随着公司在当今规模化行业中的发展,其整体架构开始引起问题,如何看待公司从单一服务转向微服务并部署其服务容器?
  • GAS_Aura-Post Process Highlight
  • Host startup hook
  • 育儿计划
  • 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义处理方式
  • docker run 后报错/bin/bash: /bin/bash: cannot execute binary file
  • Proteus 9.0 SP2 安装使用图文指南 | EDA电路仿真软件
  • Claude Code使用指南
  • C++ 去除字符串中的控制字符
  • 芯片安全标准驱动库,筑牢芯片功能安全基石
  • windows实现键盘记录
  • Linux 安装 Nginx 并配置为开机自启动
  • 在K8S中,有一种情况,公司希望通过保持最低成本来提高效率和技术运营速度,该公司实该如何现这一目标?
  • 基于MATLAB的单目深度估计神经网络实现指南
  • DLL Injection for Notepad
  • 在K8S中,有一家公司想要修改其部署方法,并希望构建一个可扩展性和响应性更高的平台,该公司要如何实现这一目标以满足他们的客户?
  • 记一次 .NET 某汽车控制焊接软件 卡死分析
  • 在K8S中,我们都知道从单服务到微服务的转变从开发方面解决了问题,但在部署方面却增加了问题,公司该如何解决部署方面的问题?
  • 扣子 Coze 产品体验功能
  • 为什么现在的音乐+图片的多媒体形式的感染力这么强
  • 如何排查CPU占用过高
  • 关于网络性能的命令
  • 在K8S中,有一个公司要向具有各种环境的客户提供所有必需的分发产品的方案,如何看待他们动态地实现这一关键目标?
  • 在K8S中,有一家公司希望在从裸机到公共云的不同云基础架构上运行各种工作负载。在存在不同接口的情况下,该公司将如何实现这一目标?
  • Playwright基础入门篇 (1) | 环境搭建与首个自动化脚本