我正在運行一個托管在 GKE 上的 Kubernetes 集群,并且想編寫一個與 Kubernetes API 對話的應用程序(用 Go 編寫)。我的理解是,我可以提供客戶端證書、不記名令牌或 HTTP 基本身份驗證,以便與 apiserver 進行身份驗證。我已經找到了將其中任何一個注入Golang 客戶端庫的正確位置。不幸的是,我遇到的示例傾向于引用存儲在我的個人 kubeconfig 文件中的現有憑據。從安全角度來看,這似乎是不可取的,并且讓我相信我應該創建一個新的客戶端證書/令牌/用戶名-密碼對,以支持輕松撤銷/刪除受感染帳戶。但是,我在文檔中找不到實際描述在 GKE 中的托管 Kubernetes 上運行時如何解決此問題的地方。(有一個關于創建新證書的指南,解釋了 apiserver 最終需要使用更新的參數重新啟動,據我所知,在 GKE 中無法做到這一點。)我在一個(或多個)應用程序中重用我的個人 Kubernetes 憑證的安全顧慮是否不合理?如果沒有,生成一組新憑據的正確方法是什么?謝謝。
1 回答

隔江千里
TA貢獻1906條經驗 獲得超10個贊
如果您的應用程序在集群內運行,您可以使用Kubernetes 服務帳戶向 API 服務器進行身份驗證。
如果這是在集群之外,事情就沒有那么容易了,我想你的擔憂是有道理的。目前,除了為您的個人 kubeconfig 文件生成的身份之外,GKE 不允許使用其他自定義身份。
您可以不使用您的憑據,而是獲取服務帳戶的令牌(在 pod 內,從 讀取/var/run/secrets/kubernetes.io/serviceaccount/token
),然后使用它。這是一個粗暴的黑客,而不是一個很好的通用解決方案,但它可能比使用您自己的個人憑據稍微好一點。
- 1 回答
- 0 關注
- 206 瀏覽
添加回答
舉報
0/150
提交
取消