kubernetes 安全

虛擬化容器

  • 爲了更安全地隔離容器,避免容器進程逃逸,權限升級等安全問題

  • 現有的實現有Kata ContainersgVisor

    • Kata Containers 使用傳統的虛擬化技術,通過虛擬硬件模擬出了一臺“小虛擬機”,然後在這個小虛擬機裏安裝了一個裁剪後的 Linux 內核來實現強隔離
      • 爲一個Pod對應啓動一個輕量化虛擬機,Pod中的容器,就是運行在這個輕量級虛擬機裏的進程
      • 也可以規避對宿主機內核版本的依賴
        在這裏插入圖片描述
    • gVisor 給容器進程配置一個用 Go 語言實現的、運行在用戶態的、極小的“獨立內核”, 通過這個模擬的內核來代替容器進程向宿主機發起有限的、可控的系統調用
      • 因爲是基於用戶態內核的,無法真正做到與宿主機內核不一致的請求響應,因此滿足不了對高版本內核請求的需求
        在這裏插入圖片描述
  • 兩種容器實現的本質,都是給進程分配了一個獨立的操作系統內核,從而避免了讓容器共享宿主機的內核

    • 這樣,容器進程能夠看到的攻擊面,就從整個宿主機內核變成了一個極小的、獨立的、以容器爲單位的內核,從而有效解決了容器進程發生“逃逸”或者奪取整個宿主機的控制權的問題

集羣身份驗證

  • Kubernetes各組件之間的通信都使用了TLS加密傳輸
  • Kubernetes中的用戶有兩種類型:service accountsnormal users
    • service accounts 由 Kubernetes管理,它是Pod中的進程用於訪問API服務的account,爲Pod中的進程提供了一種身份標識
    • normal users 是由外部系統管理,在Kubernetes中並沒有對應的 user 對象,它爲人類用戶使用kubectl之類的工具訪問API服務時提供身份標識
  • Kubernetes支持多種方式的身份驗證:客戶端證書,Password, Plain Tokens,JWT,HTTP basic auth等
  • 建私有Kubernetes集羣時,一般是自建root CA
    • 因爲參與認證的所有集羣節點,包括遠程訪問集羣的客戶端桌面都完全由自己控制,可以安全的將根證書分發到所有節點
  • Kubernetes中的組件比較多,所以需要的證書種類會非常多, 都放在了/etc/kubernetes/目錄下

參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章