kubelet 認證

譯自 https://kubernetes.io/docs/admin/kubelet-authentication-authorization/

Overview

通過kubelet暴露的https api接口,可以訪問到不同的“敏感”數據,並且允許你在節點和容器內執行不同級別的操作。

本篇文檔描述了kublet https 斷點如何鑑權。

Kubelet 認證

默認情況下,到kubelet HTTPS endpoints且沒有被其他配置的認證方法拒絕的請求被視爲匿名請求。對於匿名請求會給定system:anonymous的用戶名和system:unauthenticated用戶組。

禁止匿名用戶訪問,對不可靠的請求返回401 Unauthorized:
- 啓動kublet的時候添加--anonymous-auth=false參數

開啓X509客戶端證書認證:
- 添加啓動參數--client-ca-file, 並提供一個驗證客戶端證書的CA。
- 啓動apiserver時需添加--kubelet-client-certificate--kube-client-key 參數
- 詳情參考 apiserver authentication documentation

要啓動API承載令牌(包括serviceaccount賬戶令牌)以用於對kublet的HTTPS 端點進行身份驗證:
- 確保authentication.k8s.io/v1beta1 API組在apiserver中被啓用
- 以--authenticatioin-token-webhook, --kubeconfig以及--require-kubeconfig參數啓動kubelet
- kubelet調用事先在apiserver中定義好的TokenReview API以確定來自承載令牌的用戶信息

Note: --require-kubeconfig 在1.8中已經過時,未來的版本會移除該參數

Kubelet 授權

每個通過身份認證的請求(包括匿名請求)都會被授權。默認的授權模式是AlwaysAllow, 這會放行所有的請求。

出於某些原因,可以將對kubelet api的訪問進行細分:
- 開啓anonymous 授權, 但是匿名用戶能夠訪問的kubelet API應該做限制
- 開啓承載令牌認證,但任意API用戶(如服務帳戶)調用kubelet API的能力應該是有限的。
- 客戶端證書身份驗證已啓用,但只有部分由已配置CA簽名的客戶端證書應被允許使用kubelet API

要細分對kubelet API的訪問,請將授權委託給apiserver:
- 確保authentication.k8s.io/v1beta1 API組在apiserver中被啓用
- 以--authenticatioin-token-webhook, --kubeconfig以及--require-kubeconfig參數啓動kubelet
- Kubelet在配置的APIserver上調用SubjectAccessReview API來確定每個請求是否被授權

kubelet使用與apiserver相同的請求屬性方法來授權API請求。
請求動作由http的請求方法確定:

HTTP verb request verb
POST create
GET,HEAD get
PUT update
PATCH patch
DELETE delete

資源和子資源是根據傳入請求的路徑確定的:

Kubelet API resource subresource
/stats/* nodes stats
/metrics/* nodes metrics
/logs/* nodes log
/spec/* nodes spec
all others nodes proxy

namespace和API組屬性始終是一個空字符串,資源名稱始終是kubelet的Node API對象的名稱。

在此模式下運行時,請確保傳遞給apiserver的--kubelet-client-certificate--kubelet-client-key標誌所標識的用戶具有以下屬性的權限:

  • verb=*, resource=nodes, subresource=proxy
  • verb=*, resource=nodes, subresource=stats
  • verb=*, resource=nodes, subresource=log
  • verb=*, resource=nodes, subresource=spec
  • verb=*, resource=nodes, subresource=metrics
發佈了31 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章