Flink Kerberos 安全接入整体机制、三大安全模块、Standalone/K8s/YARN 部署与 Token 续期策略
1、目标Flink 为什么要做 KerberosFlink Kerberos 安全基础设施的核心目标有三类作业通过 connector 安全访问数据源典型 Kafka认证到 ZooKeeper如果 ZooKeeper 启用了 SASL认证到 Hadoop 组件HDFS、HBase、YARN 等生产里的流式作业往往跑“天/周/月”。因此必须确保作业生命周期内始终能认证成功。在这点上Keytab 是首选因为 keytab 在这个时间尺度上不会过期而 credential cachekinit 生成的缓存会过期维护成本更高delegation token 也有生命周期与续期逻辑。2、凭证方式怎么选Keytab vs kinit 缓存 vs Delegation TokensFlink 当前支持三种 Kerberos 凭证来源集群级共享Keytab推荐适合长期作业Flink 组件可自动续 TGT更省心Credential cachekinit 生成可以不用 keytab但缓存有过期时间缓存更新完全由用户负责容易踩坑需要确保缓存文件在执行认证的节点/容器可用Hadoop Delegation TokensFlink 1.17 起加入实验性对 Hadoop 服务HDFS/HBase可获取 token 让非本地进程访问文档提示用户提供的 tokens 不会自动续期且可能被 Flink 覆盖运维上要谨慎重要限制一个 Flink 集群内所有作业共享同一套 Kerberos 凭证配置。如果你想让某个作业用另一套 keytab正确方式不是“按 job 配”而是起一个新 Flink 集群K8s/YARN 下多集群并存很常见。3、Flink Security 的内部架构三大 Security ModuleFlink 通过在启动时安装“安全模块”org.apache.flink.runtime.security.modules.SecurityModule来把 Kerberos 能力注入到进程中。你文档里主要讲了三个模块3.1 Hadoop Security ModuleUGI使用 Hadoop 的UserGroupInformation (UGI)建立进程级 login user该 login user 用于与 Hadoop 交互HDFS、HBase、YARN 等它的登录优先级顺序非常关键当hadoop.security.authenticationkerberos时如果配置了security.kerberos.login.keytabsecurity.kerberos.login.principal→keytab 登录否则如果security.kerberos.login.use-ticket-cachetrue→使用 credential cache 登录其他情况 → 使用启动 Flink 的 OS 账号身份不具备 Kerberos 票据3.2 JAAS Security Module动态 JAAS给 ZooKeeper、Kafka 以及任何依赖 JAAS 的组件提供动态 JAAS 配置使这些组件能复用 Flink 配置的 Kerberos 凭证注意如果用户提供了静态 JAAS 文件JVM 标准方式静态配置会覆盖动态配置。这在排障时很常见你以为 Flink 的动态 JAAS 生效了其实被java.security.auth.login.config指向的文件覆盖了。3.3 ZooKeeper Security Module配置 ZooKeeper 的进程级安全参数service name默认zookeeperJAAS login context默认Client对应配置项通常是zookeeper.sasl.service-namezookeeper.sasl.login-context-name4、部署模式差异Standalone vs Native K8s vs YARN4.1 Standalone裸机/静态集群步骤是“每台机器都得有材料”在所有集群节点的flink-conf.yaml添加安全配置确保 keytab 文件在所有节点上都存在且路径与security.kerberos.login.keytab一致正常启动 Flink 集群要点Standalone 没有“自动分发”所以 keytab/krb5.conf 的分发与权限要你自己保证。4.2 Native Kubernetes YARN客户端提交部署步骤是“客户端给材料Flink 帮你带进容器”在客户端侧准备好flink-conf.yaml的安全配置keytab 在客户端节点存在路径与security.kerberos.login.keytab一致提交部署后keytab 会从客户端自动拷贝到 Flink 容器/pod此外还需要 Kerberos 配置文件krb5.conf可以使用集群环境自带的或由 Flink 上传配置security.kerberos.krb5-conf.pathFlink 会把这个文件拷进 containers/pods这对 K8s/YARN 很关键因为容器里看不到宿主机的 krb5.conf5、仅使用 kinit 缓存能跑但维护成本高使用 credential cache 前需要知道credential cache 类型很多常见是 FILE需要保证缓存文件在认证发生的节点可读credential cache 一般由kinit生成与 keytab 最大区别缓存会过期保持更新是用户责任可以不带 keytab 也跑 Kerberos 集群但要把缓存“铺到”认证发生的地方多节点/多容器下非常麻烦因此除非你们安全策略禁止 keytab或只是短期实验否则不建议把生产流式作业压在 credential cache 上。6、长跑作业最关键TGT Renewal票据续期原则每个使用 Kerberos 的组件都要自己负责 TGT 的续期当提供 keytab 时组件会自动续 TGT当使用 credential cache 时续期由用户负责最常见的生产故障源所以生产上最稳的组合仍然是keytab principal 自动 relogin后面 SSL 页也给了security.kerberos.relogin.period这种配置项。7、Delegation TokensHadoop 侧的“替身凭证”Flink 1.17 引入 delegation token实验性。作用是当非本地进程要访问 Hadoop 服务时用 token 代替 Kerberos 交互减少频繁的 Kerberos 往返。Flink 可以为这些服务获取 tokenHDFS 和其他 Hadoop FSHBase要求 classpath 有 HBase且hbase.security.authenticationkerberos获取 token 的目录范围包括Hadoop 默认 filesystemsecurity.kerberos.access.hadoopFileSystems指定的文件系统列表YARN staging 目录另外还支持自定义 token providerSPI实现org.apache.flink.runtime.security.token.DelegationTokenProvider通过META-INF/services配置被ServiceLoader发现运维提醒文档明确提到“用户提供的 tokens 不会续期且可能被 Flink 覆盖”所以如果你们依赖外部系统下发 token需要非常谨慎地定义边界和刷新策略。8、一份“最小可用”的 Kerberos 配置骨架按你文档语义整理下面不是完整参数表而是你落地时一定会用到的骨架keytab 路线# Kerberos 基础材料security.kerberos.login.principal:flinkYOUR.REALMsecurity.kerberos.login.keytab:/path/to/flink.keytabsecurity.kerberos.krb5-conf.path:/path/to/krb5.conf# K8s/YARN 场景常用security.kerberos.login.use-ticket-cache:false# 需要让 Kerberos 凭证对哪些 JAAS 上下文可见示例security.kerberos.login.contexts:Client,KafkaClient# 若访问多个 Kerberos 保护的 Hadoop FSsecurity.kerberos.access.hadoopFileSystems:hdfs://nn1:8020;hdfs://nn2:8020# ZooKeeper SASL如需要zookeeper.sasl.service-name:zookeeperzookeeper.sasl.login-context-name:Client你们真实环境里 principal、realm、keytab 路径、HDFS namenode 地址、KafkaClient context 名称都会不同但结构就是这样。

相关新闻

Flink SSL/TLS 安全加固内网 mTLS、REST HTTPS、证书 Pinning 与部署要点

Flink SSL/TLS 安全加固内网 mTLS、REST HTTPS、证书 Pinning 与部署要点

1. Flink 的两类网络链路:Internal vs External/REST1.1 Internal Connectivity(内部连接) 内部连接指 Flink 进程之间的通信,用户不会直接连这些端口,主要包括: 控制面:JobManager/TaskManager…

2026/7/4 3:23:13 阅读更多 →
TDengine IDMP 数据可视化 6. 资产列表

TDengine IDMP 数据可视化 6. 资产列表

资产列表 资产列表使用表格用来展示企业的资产信息及其最新状态和采集值。资产列表作为面板的一种类型,可以单独保存为某个元素下的资产列表面板,也可以添加到仪表板中。 保存资产列表面板 元素查询结果保存为资产列表 如果检索出的元素来自同一个元…

2026/7/3 16:57:55 阅读更多 →
提示工程架构师如何用提示设计打造极致用户体验?

提示工程架构师如何用提示设计打造极致用户体验?

提示工程架构师:用“语言翻译术”打造AI与用户的“理解之桥” 一、引入:你遇到过的AI“沟通痛点”,其实是提示设计的“翻译事故” 凌晨1点,运营岗的小夏盯着电脑屏幕崩溃:“我让AI写‘年轻人喜欢的奶茶店活动方案’&am…

2026/5/17 4:38:28 阅读更多 →

最新新闻

终极GitHub Desktop汉化指南:三分钟让英文界面变中文

终极GitHub Desktop汉化指南:三分钟让英文界面变中文

终极GitHub Desktop汉化指南:三分钟让英文界面变中文 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 【GitHub桌面客户端中文汉化】 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 还在为GitHub Desktop的…

2026/7/4 3:21:49 阅读更多 →
看懂一个 AI 范式,比用一百个 AI 产品更重要

看懂一个 AI 范式,比用一百个 AI 产品更重要

今年年初,但凡刷点 AI 圈的内容,OpenClaw 就躲都躲不开——GitHub 几天涨几十万 star,各路人喊它「最接近 JARVIS 的东西」,朋友圈里有人连夜部署、半夜被它的 heartbeat 叫醒。然后呢?半年过去,你已经很久没在 timeline 上看到它了,取而代之的是「OpenClaw is dead」的复盘文…

2026/7/4 3:19:48 阅读更多 →
Linux 运维高频故障排查手册(CPU/内存/磁盘/网络/端口/进程一套打通)

Linux 运维高频故障排查手册(CPU/内存/磁盘/网络/端口/进程一套打通)

在日常运维中,大多数线上问题都可以归类为:资源类(CPU/内存/磁盘)、网络类(连通性/丢包/延迟/端口)、服务类(进程挂了/端口占用/依赖不可用)。 本文提供一套“从现象到定位再到验证”…

2026/7/4 3:19:48 阅读更多 →
Anthropic Claude Code 被指用文本隐写术标记用户,失去的信任能否回滚?

Anthropic Claude Code 被指用文本隐写术标记用户,失去的信任能否回滚?

Anthropic 又翻车,Claude Code 暗藏隐写术我们发现,Anthropic 这次又翻车了。6 月 30 日,一名 Reddit 用户发布逆向分析,拆解 Claude Code 2.1.196 的二进制文件,发现一段触发条件具体、行为隐蔽的函数。当使用代理连接…

2026/7/4 3:17:48 阅读更多 →
三星固件下载难题:如何用Kotlin跨平台技术5分钟搞定官方固件获取?

三星固件下载难题:如何用Kotlin跨平台技术5分钟搞定官方固件获取?

三星固件下载难题:如何用Kotlin跨平台技术5分钟搞定官方固件获取? 【免费下载链接】Bifrost Cross-platform tool for downloading Samsung mobile device firmware. 项目地址: https://gitcode.com/gh_mirrors/sa/Bifrost 在安卓设备维护和开发领…

2026/7/4 3:17:48 阅读更多 →
python-LangGraph框架(3-32-LangGraph 并行验证)

python-LangGraph框架(3-32-LangGraph 并行验证)

一、LangGraph 并行执行核心优势相比其他工作流框架,LangGraph 的并行能力具备三大核心亮点:极简定义,无冗余代码:无需手动管理线程、协程,框架底层自动处理任务并发,专注业务逻辑即可;状态自动…

2026/7/4 3:15:48 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻