Flink 使用之動態(tài)Kerberos認證

Flink 使用介紹相關(guān)文檔目錄

Flink 使用介紹相關(guān)文檔目錄

背景

Flink Kerberos認證的配置位于YAML配置文件中懈费,帶來的便利是用戶不用反復(fù)去配置認證信息萌焰。但這樣使用有局限性。用戶如果需要頻繁切換不同的用戶提交任務(wù),是否可以像spark-submit那樣通過--principal--keytab參數(shù)來臨時指定用戶呢蚕礼?答案是可以的乎串。

使用方式

Flink 1.17版本支持使用-D 配置項的方式在提交任務(wù)時指定認證配置历恐。例如:

./flink run-application -t yarn-application -D security.kerberos.login.keytab=/etc/security/keytabs/hdfs.headless.keytab -D security.kerberos.login.principal=hdfs@PAUL.COM ../examples/batch/WordCount.jar

其中-D 配置項的內(nèi)容和YAML配置文件中的參數(shù)名相同荸恕。

需要注意的是,經(jīng)本人驗證Flink 1.13.2 和Flink 1.15.4版本存在問題菩混,無法使用此方式忿墅。

經(jīng)查詢社區(qū),和修復(fù)此問題相關(guān)聯(lián)的Issue為:

  • [FLINK-29435][client] SecurityConfiguration supports dynamic configuration
  • [FLINK-31321][Deployment/YARN] Yarn-session mode, securityConfiguration supports dynamic configuration

如果需要在1.13.x和1.15.x版本中修復(fù)沮峡,可以將這兩個commit cherrypick過去重新編譯解決疚脐。

除此之外還有一個備用方法:動態(tài)指定Kerberos Cache。該方法對于Flink 1.13.x和1.15.x可用邢疙。

kinit hdfs@PAUL.COM -kt /etc/security/keytabs/hdfs.headless.keytab -c /opt/paul/krb_cache
export KRB5CCNAME=/opt/paul/krb_cache && ./flink run -m yarn-cluster ../examples/batch/WordCount.jar

kinit命令可以通過-c參數(shù)指定自定義的cache文件路徑棍弄。在Flink使用的時候?qū)⑵渑渲玫?code>KRB5CCNAME環(huán)境變量對應(yīng)起來望薄。不同用戶使用不同的cache文件可避免相互影響。

KRB5CCNAME環(huán)境變量僅在當前shell中生效照卦,不會干擾其他的shell提交作業(yè)式矫。

源代碼分析

security config動態(tài)參數(shù)解析部分

CliFrontend::mainInternal方法try塊內(nèi)容:

final CliFrontend cli = new CliFrontend(configuration, customCommandLines);
CommandLine commandLine =
        cli.getCommandLine(
                new Options(),
                Arrays.copyOfRange(args, min(args.length, 1), args.length),
                true);
Configuration securityConfig = new Configuration(cli.configuration);
// 獲取命令行中-D key=value形式的動態(tài)參數(shù)乡摹,將其合并入securityConfig(Configuration類型)中
DynamicPropertiesUtil.encodeDynamicProperties(commandLine, securityConfig);
// 生成安全相關(guān)配置(Hadoop認證還是JAAS)
SecurityUtils.install(new SecurityConfiguration(securityConfig));
// 執(zhí)行認證過程
retCode = SecurityUtils.getInstalledContext().runSecured(() -> cli.parseAndRun(args));

上面生成安全相關(guān)配置和執(zhí)行認證過程參見Flink 源碼之安全認證役耕。

動態(tài)指定Kerberos Cache

相關(guān)源代碼位于:KerberosUtils::static方法。相關(guān)代碼片段為:

// 獲取系統(tǒng)環(huán)境變量KRB5CCNAME
String ticketCache = System.getenv("KRB5CCNAME");
if (ticketCache != null) {
    if (IBM_JAVA) {
        System.setProperty("KRB5CCNAME", ticketCache);
    } else {
        // 添加到kerberosCacheOptions中
        kerberosCacheOptions.put("ticketCache", ticketCache);
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末聪廉,一起剝皮案震驚了整個濱河市瞬痘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌板熊,老刑警劉巖框全,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異干签,居然都是意外死亡津辩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門容劳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喘沿,“玉大人,你說我怎么就攤上這事竭贩⊙劣。” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵留量,是天一觀的道長窄赋。 經(jīng)常有香客問我,道長楼熄,這世上最難降的妖魔是什么忆绰? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮可岂,結(jié)果婚禮上较木,老公的妹妹穿的比我還像新娘。我一直安慰自己青柄,他們只是感情好伐债,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著致开,像睡著了一般峰锁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上双戳,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天虹蒋,我揣著相機與錄音,去河邊找鬼。 笑死魄衅,一個胖子當著我的面吹牛峭竣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晃虫,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼皆撩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了哲银?” 一聲冷哼從身側(cè)響起扛吞,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎荆责,沒想到半個月后滥比,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡做院,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年盲泛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片键耕。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡寺滚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出郁竟,到底是詐尸還是另有隱情玛迄,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布棚亩,位于F島的核電站蓖议,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏讥蟆。R本人自食惡果不足惜勒虾,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一碗硬、第九天 我趴在偏房一處隱蔽的房頂上張望捏悬。 院中可真熱鬧,春花似錦袜刷、人聲如沸质况。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽结榄。三九已至中贝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間臼朗,已是汗流浹背邻寿。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工蝎土, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绣否。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓誊涯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蒜撮。 傳聞我的和親對象是個殘疾皇子暴构,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容