日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kubernetes安全之认证

發(fā)布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes安全之认证 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

機制說明

Kubernetes作為一個分布式集群的管理工具,保證集群的安全性是其一個重要的任務(wù)。API Server是集群內(nèi)部各個組件通信的中介,也是外部控制的入口。所以Kubernetes的安全機制基本就是圍繞保護API Server來設(shè)計的。Kubernetes使用了認證(Authentication)、鑒權(quán)(Authorization)、準入控制(AdmissionControl)三步來保證API Server的安全

Authentication

  • HTTP Token認證:通過一個Token來識別合法用戶

    • HTTP Token的認證是用一個很長的特殊編碼方式的并且難以被模仿的字符串- Token來表達客戶的一種方式。Token是一個很長的很復(fù)雜的字符串,每一個Token對應(yīng)一個用戶名存儲在API Server能訪問的文件中。當(dāng)客戶端發(fā)起API調(diào)用請求時,需要在HTTP Header里放入Token
  • HTTP Base認證:通過用戶名+密碼的方式認證

    • 用戶名+:+密碼用BASE64算法進行編碼后的字符串放在HTTP Request中的HeatherAuthorization域里發(fā)送給服務(wù)端,服務(wù)端收到后進行編碼,獲取用戶名及密碼
  • 最嚴格的HTTPS證書認證:基于CA根證書簽名的客戶端身份認證方式

Ⅰ、HTTPS證書認證:

Ⅱ、需要認證的節(jié)點

兩種類型

  • Kubenetes組件對API Server的訪問:kubectl、Controller Manager、Scheduler、kubelet、kube-proxy
  • Kubernetes管理的Pod對容器的訪問:Pod(dashborad也是以Pod形式運行)

安全性說明

  • Controller Manager、Scheduler與API Server在同一臺機器,所以直接使用API Server的非安全端口訪問,–insecure-bind-address=127.0.0.1
  • kubectl、kubelet、kube-proxy訪問API Server就都需要證書進行HTTPS雙向認證

證書頒發(fā)

  • 手動簽發(fā):通過k8s集群的跟ca進行簽發(fā)HTTPS證書
  • 自動簽發(fā):kubelet首次訪問API Server時,使用token做認證,通過后,Controller Manager會為kubelet生成一個證書,以后的訪問都是用證書做認證了

Ⅲ、kubeconfig

kubeconfig文件包含集群參數(shù)(CA證書、API Server地址),客戶端參數(shù)(上面生成的證書和私鑰),集群context信息(集群名稱、用戶名)。Kubenetes組件通過啟動時指定不同的kubeconfig文件可以切換到不同的集群

Ⅳ、ServiceAccount

Pod中的容器訪問API Server。因為Pod的創(chuàng)建、銷毀是動態(tài)的,所以要為它手動生成證書就不可行了。Kubenetes使用了Service Account解決Pod訪問API Server的認證問題

Ⅴ、Secret與SA的關(guān)系

Kubernetes設(shè)計了一種資源對象叫做Secret,分為兩類,一種是用于ServiceAccount的service-accounttoken,另一種是用于保存用戶自定義保密信息的Opaque。ServiceAccount中用到包含三個部分:Token、ca.crt、namespace

  • token是使用API Server私鑰簽名的JWT。用于訪問API Server時,Server端認證
  • ca.crt,根證書。用于Client端驗證API Server發(fā)送的證書
  • namespace,標識這個service-account-token的作用域名空間
kubectl get secret --all-namespaces kubectl describe secret default-token-5gm9r --namespace=kube-system

默認情況下,每個namespace都會有一個ServiceAccount,如果Pod在創(chuàng)建時沒有指定ServiceAccount,就會使用Pod所屬的namespace的ServiceAccount

總結(jié)

總結(jié)

以上是生活随笔為你收集整理的Kubernetes安全之认证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。