[英]How kubectl is more secure than SSH Daemon / access into containers?
各種 Kubernetes 安全建議告訴您避免 SSH 進入容器並要求改用 kubectl。 引用的主要原因是通過 SSH 轉義到底層主機資源到容器中的可能性。 所以,我有以下具體查詢:
kubectl 的哪些特性會阻止您訪問主機資源,為什么與 kubectl 相比,ssh 訪問主機資源的風險更大? kubectl 如何更安全?
SSH 可以跳過 Pod 安全策略限制的底層主機上的 Pod 安全策略和訪問/掛載路徑嗎?
如果 SSH 進入容器是不可避免的,那么如何以最好的方式保護它?
如果原因是“你可以通過一個而不是另一個逃脫”,那么我認為它來自不了解所涉及的安全機制的人。 還有其他原因更喜歡kubectl exec
不是 SSH,例如與 Kubernetes 的其他所有內容集成的審計日志記錄,以及輕松的訪問撤銷,但它們也可以通過 SSH 獲得。 這只是更多的工作
kubectl 在客戶端運行。 如果其中有阻止您逃脫的功能,您可以修補它們。
不,那些在 pod 上並由底層內核處理。 SSH 只會讓你在容器中獲得一個 shell,就像kubectl exec
一樣。
使用公鑰身份驗證,確保有一個策略來確保容器中的軟件是最新的。 想一想您將如何管理authorized_keys
文件並在那里撤銷受損的SSH 密鑰。 考慮是否應該使用防火牆規則鎖定對 SSH 正在運行的端口的訪問。
只是因為您必須在容器中運行ssh
服務器; 因此,在您的容器中運行一個額外的進程,並且必須管理密鑰,這足以成為不想通過 SSH 進入容器的理由。
所以,這是一個缺點。 另一個將與用例一起使用,這是一種風險。 為什么要通過 SSH 連接到容器? 我看到的一個原因是因為您想從外部主機執行此操作(未安裝kubectl
並針對api-server
身份驗證)。 所以你必須向外界公開一個端點,或者至少向你的網絡公開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.