16-Pod 身份與認(rèn)證機(jī)制
Pod 身份與認(rèn)證機(jī)制概念引入在文章 14 中你學(xué)了 RBAC——“誰能做什么”。但有個(gè)問題被跳過了API Server 怎么知道你是誰RBAC文章 14 → 授權(quán)Authorization→ 你有權(quán)限做這個(gè)操作嗎 Pod 身份本篇 → 認(rèn)證Authentication→ 你是誰你是合法的 Pod 嗎每個(gè) Pod 從出生就攜帶一個(gè)身份證——ServiceAccount Token。Pod 用這個(gè) Token 訪問 API Server。Pod身份綁定Bearer Token 認(rèn)證通過 RBAC 檢查權(quán)限ServiceAccountmy-app-saProjected Token自動(dòng)掛載到 /var/run/secrets/...API Server驗(yàn)證 Token → 識(shí)別身份授權(quán)判斷這個(gè)身份能 GET pods 嗎學(xué)完本篇你將能夠查看 Pod 自動(dòng)掛載的 ServiceAccount Token理解 Pod 如何向 API Server 證明身份區(qū)分新版 projected token 和舊版 Secret token 的差異為 Pod 配置自定義 ServiceAccount結(jié)合 RBAC 控制 API 訪問權(quán)限原理講解Pod 的身份證ServiceAccount Token每個(gè) Pod 創(chuàng)建時(shí)K8s 自動(dòng)做三件事為 Pod 創(chuàng)建一個(gè)ServiceAccount Token通過 TokenRequest API將 Token 以projected volume方式掛載到 Pod 內(nèi)Token 有過期時(shí)間kubelet 會(huì)自動(dòng)續(xù)期# 進(jìn)入任何 Pod 都能看到 Tokenls/var/run/secrets/kubernetes.io/serviceaccount/# ca.crt namespace token ← 三個(gè)文件Schema從創(chuàng)建 Pod 到認(rèn)證的全鏈路API ServerTokenRequest APIkubeletPodAPI ServerTokenRequest APIkubeletPodPod 創(chuàng)建階段Pod 運(yùn)行時(shí)需要 ServiceAccount TokenTokenRequest(samy-app-sa, audienceapi, expiration3600s)簽發(fā) JWT Token掛載到 projected volumeGET /api/v1/namespaces/default/podsAuthorization: Bearer token驗(yàn)證 JWT 簽名 過期時(shí)間識(shí)別 SA 身份system:serviceaccount:default:my-app-saRBAC 檢查這個(gè) SA 能 list pods 嗎允許/拒絕新 Token vs 舊 Secret Token特性新版 Projected Token1.21舊版 Secret Token過期時(shí)間? 有1 小時(shí)可配置? 永不過期自動(dòng)輪換? kubelet 自動(dòng)續(xù)期? 需手動(dòng)重建 Secret綁定 Pod? Token 和 Pod 綁定? 不綁定Audience? 支持限制用途? 不支持安全性???????手動(dòng)創(chuàng)建 SA 和 TokenapiVersion:v1kind:ServiceAccountmetadata:name:my-readernamespace:default---apiVersion:v1kind:Podmetadata:name:reader-podspec:serviceAccountName:my-reader# 指定 SA不指定則用 defaultcontainers:-name:appimage:nginx:1.27# 手動(dòng)創(chuàng)建一個(gè) Token用于本地調(diào)試kubectl create token my-reader# 指定 audience 和過期時(shí)間kubectl create token my-reader--audiencemy-api--duration2hToken 的 JWT 結(jié)構(gòu)Token 是一個(gè) JWTJSON Web Token可以解碼查看# 在 Pod 內(nèi)解碼 TokenBASE64 中間那部分cat/var/run/secrets/kubernetes.io/serviceaccount/token|cut-d.-f2|base64-d|python3-mjson.tool{aud:[https://kubernetes.default.svc],exp:1753187200,iat:1753183600,iss:https://kubernetes.default.svc,kubernetes.io:{namespace:default,pod:{name:reader-pod,uid:abc123...},serviceaccount:{name:my-reader,uid:def456...}},sub:system:serviceaccount:default:my-reader}使用 Token 訪問 API Server# 在 Pod 內(nèi)直接訪問 API ServerTOKEN$(cat/var/run/secrets/kubernetes.io/serviceaccount/token)APISERVERhttps://kubernetes.default.svccurl-sk-HAuthorization: Bearer$TOKEN$APISERVER/api/v1/namespaces/default/pods動(dòng)手實(shí)驗(yàn)配套實(shí)驗(yàn)位于docs/labs/beginner/pod-identity/步驟 1部署實(shí)驗(yàn)環(huán)境cddocs/labs/beginner/pod-identitybashsetup.sh步驟 2查看 Pod 的默認(rèn)身份kubectlexecreader-pod --cat/var/run/secrets/kubernetes.io/serviceaccount/token kubectlexecreader-pod --ls/var/run/secrets/kubernetes.io/serviceaccount/步驟 3用 SA Token 訪問 API Serverkubectlexecreader-pod --sh-c TOKEN$(cat /var/run/secrets/kubernetes.io/serviceaccount/token) APISERVERhttps://kubernetes.default.svc curl -sk -H Authorization: Bearer $TOKEN $APISERVER/api/v1/namespaces/default/pods # 根據(jù) SA 的 RBAC 權(quán)限可能會(huì)返回 pods 列表或被拒絕步驟 4解碼查看 Token 內(nèi)容kubectlexecreader-pod --sh-c cat /var/run/secrets/kubernetes.io/serviceaccount/token | cut -d. -f2 | base64 -d 2/dev/null | python3 -m json.tool 2/dev/null || echo 需要 python3 解碼 步驟 5創(chuàng)建自定義 Token 并測(cè)試權(quán)限區(qū)別# 創(chuàng)建 Token無任何 RBAC 權(quán)限的 SATOKEN$(kubectl create token test-sa--duration1h)# 用這個(gè) Token 嘗試訪問kubectl get pods--token$TOKEN21# 預(yù)期Error from server (Forbidden)步驟 6清理bashteardown.sh自檢問題[基礎(chǔ)]每個(gè) Pod 默認(rèn)能訪問 API Server 嗎能做什么操作[理解]為什么新版的 Projected Token 比舊的 Secret-based Token 更安全[應(yīng)用]你發(fā)現(xiàn) Pod 里的惡意容器正在用 SA Token 調(diào)用 API Server。除了刪 Pod你能做什么來在架構(gòu)層面減少這種風(fēng)險(xiǎn)查看答案能訪問。每個(gè) Pod 默認(rèn)掛載了defaultServiceAccount 的 Token。但defaultSA 通常幾乎沒有任何 RBAC 權(quán)限——所以 Pod 能連上 API Server但驗(yàn)證身份后幾乎所有操作都被拒絕??梢酝ㄟ^ RBAC 授予特定權(quán)限如文章 14 中的 readonly-sa。舊 Secret Token永不過期、不綁定 Pod、不支持 audience 限制——如果 Token 泄露攻擊者可以永久使用它。新版 Projected Token① 1 小時(shí)后自動(dòng)過期kubelet 自動(dòng)續(xù)期泄露的 Token 很快失效② Token 綁定到特定 Podkubernetes.io.pod.uid其他 Pod 無法使用③ 支持audience字段——給外部的 Token 不能用于訪問 API Server。① 遵循最小權(quán)限原則不要給 default SA 任何 RBAC 權(quán)限② 為每個(gè)應(yīng)用創(chuàng)建專用 SA只給必要的權(quán)限③ 關(guān)閉不需要的automountServiceAccountTokenspec.automountServiceAccountToken: false④ 使用 NetworkPolicy 限制 Pod 到 API Server 的流量⑤ 啟用審計(jì)日志監(jiān)控異常的 API 調(diào)用。下一步Pod 的身份認(rèn)證搞清楚了。接下來學(xué)習(xí)如何擴(kuò)展 K8s 的 API 定義你自己的資源類型→ 27. Custom Resource 入門 本文來自 K8s Guide —— 開源免費(fèi)的 Kubernetes 中文學(xué)習(xí)指南? 初學(xué)者軌道 面試軌道從零基礎(chǔ)到拿 Offer 一站式覆蓋 每篇文章配套 Kind 實(shí)驗(yàn)?zāi)_本本地一鍵運(yùn)行 本文源碼docs/beginner/20-gateway-api.md? 如果對(duì)你有幫助歡迎 Star github.com/callmebg/k8s-guide

相關(guān)新聞

GD32H7定時(shí)器輸出比較與PWM模式詳解:從原理到實(shí)戰(zhàn)配置

GD32H7定時(shí)器輸出比較與PWM模式詳解:從原理到實(shí)戰(zhàn)配置

1. 項(xiàng)目概述:從定時(shí)器到精準(zhǔn)控制在嵌入式開發(fā),尤其是電機(jī)控制、電源管理、LED調(diào)光這些領(lǐng)域,精準(zhǔn)的時(shí)序控制是核心。你可能會(huì)遇到這樣的需求:需要在一個(gè)精確的時(shí)刻翻轉(zhuǎn)一個(gè)引腳的電平,或者生成一個(gè)頻率和占空比都可調(diào)的…

2026/8/2 2:34:37 閱讀更多
Python游戲存檔系統(tǒng)開發(fā)實(shí)戰(zhàn):從數(shù)據(jù)模型到版本兼容性

Python游戲存檔系統(tǒng)開發(fā)實(shí)戰(zhàn):從數(shù)據(jù)模型到版本兼容性

最近在開發(fā)一個(gè)游戲存檔管理工具時(shí),遇到了一個(gè)非常棘手的問題:如何高效、安全地處理游戲存檔數(shù)據(jù),特別是那些涉及復(fù)雜狀態(tài)(如“極度困難”難度、“出道曲”成就、“珍愛”道具、“低卡位”資源)的存檔。網(wǎng)上資料要么過…

2026/8/2 2:34:36 閱讀更多
NFC供電電子紙顯示方案:零功耗、免布線硬件開發(fā)詳解

NFC供電電子紙顯示方案:零功耗、免布線硬件開發(fā)詳解

1. 項(xiàng)目概述:當(dāng)NFC遇上電子紙,一個(gè)“零功耗”顯示方案的誕生最近在搗鼓一個(gè)挺有意思的小玩意兒:一個(gè)2.13英寸、靠NFC供電的電子紙(e-Paper)顯示屏。這項(xiàng)目聽起來就有點(diǎn)“黑科技”的感覺,對(duì)吧?它…

2026/8/2 2:24:36 閱讀更多
從原子坐標(biāo)學(xué)習(xí)承諾函數(shù):無集體變量的分子動(dòng)力學(xué)反應(yīng)坐標(biāo)構(gòu)建

從原子坐標(biāo)學(xué)習(xí)承諾函數(shù):無集體變量的分子動(dòng)力學(xué)反應(yīng)坐標(biāo)構(gòu)建

1. 從“硬編碼”到“軟學(xué)習(xí)”:為什么我們需要無集體變量的承諾函數(shù)?在計(jì)算化學(xué)和分子模擬領(lǐng)域,我們經(jīng)常面臨一個(gè)核心挑戰(zhàn):如何高效且準(zhǔn)確地描述一個(gè)復(fù)雜分子體系的“狀態(tài)”?傳統(tǒng)上,我們依賴“集體變量”。你…

2026/8/2 3:54:40 閱讀更多
MATLAB數(shù)據(jù)可視化技術(shù)

MATLAB數(shù)據(jù)可視化技術(shù)

MATLAB數(shù)據(jù)可視化技術(shù) 一、數(shù)據(jù)可視化概述 1.1 MATLAB繪圖體系架構(gòu) ┌─────────────────────────────────────────────────────────────────┐ │ MATLAB可視化體系架構(gòu) …

2026/8/2 3:54:40 閱讀更多
USB/RS232/RS485/TTL萬能串口轉(zhuǎn)換器:原理、設(shè)計(jì)與實(shí)戰(zhàn)應(yīng)用

USB/RS232/RS485/TTL萬能串口轉(zhuǎn)換器:原理、設(shè)計(jì)與實(shí)戰(zhàn)應(yīng)用

1. 項(xiàng)目概述:為什么我們需要一個(gè)“萬能”的串口轉(zhuǎn)換器? 在嵌入式開發(fā)、工業(yè)自動(dòng)化、智能硬件調(diào)試這些領(lǐng)域里混跡多年的工程師,手邊最離不開的可能就是各種串口線了。你肯定遇到過這樣的場(chǎng)景:新到的工控主板只留了一個(gè)RS485接口&am…

2026/8/2 3:54:40 閱讀更多
如何快速掌握HC社區(qū)管理系統(tǒng):面向新手的完整物業(yè)數(shù)字化管理指南

如何快速掌握HC社區(qū)管理系統(tǒng):面向新手的完整物業(yè)數(shù)字化管理指南

如何快速掌握HC社區(qū)管理系統(tǒng):面向新手的完整物業(yè)數(shù)字化管理指南 【免費(fèi)下載鏈接】MicroCommunity HC is open source Property Management Software(saas) 項(xiàng)目地址: https://gitcode.com/gh_mirrors/mi/MicroCommunity HC社區(qū)管理系統(tǒng)是一套功能強(qiáng)大的開源物…

2026/8/2 3:54:40 閱讀更多
單片機(jī)畢設(shè)項(xiàng)目:基于 OLED 可視化的嵌入式智能交通燈控制器 基于單片機(jī)多外設(shè)驅(qū)動(dòng)交通信號(hào)控制系統(tǒng)實(shí)現(xiàn)(016101)

單片機(jī)畢設(shè)項(xiàng)目:基于 OLED 可視化的嵌入式智能交通燈控制器 基于單片機(jī)多外設(shè)驅(qū)動(dòng)交通信號(hào)控制系統(tǒng)實(shí)現(xiàn)(016101)

博主介紹:??碼農(nóng)一枚 ,專注于大學(xué)生項(xiàng)目實(shí)戰(zhàn)開發(fā)、講解和畢業(yè)🚢文撰寫修改等。全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者、專注于嵌入式單片機(jī),Java、小程序技術(shù)領(lǐng)域和畢業(yè)項(xiàng)目實(shí)戰(zhàn) ??…

2026/8/2 3:44:40 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書,視頻號(hào)上,賺錢從來沒有這么容易過! 支持本地語音模型chatTTS,fasterwhisper,…

2026/8/2 0:04:00 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發(fā)過的QQ空間說說,那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書,視頻號(hào)上,賺錢從來沒有這么容易過! 支持本地語音模型chatTTS,fasterwhisper,…

2026/8/2 0:04:00 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發(fā)過的QQ空間說說,那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/2 2:52:49 閱讀更多