簡體   English   中英

kubectl 如何比 SSH Daemon/訪問容器更安全?

[英]How kubectl is more secure than SSH Daemon / access into containers?

各種 Kubernetes 安全建議告訴您避免 SSH 進入容器並要求改用 kubectl。 引用的主要原因是通過 SSH 轉義到底層主機資源到容器中的可能性。 所以,我有以下具體查詢:

  1. kubectl 的哪些特性會阻止您訪問主機資源,為什么與 kubectl 相比,ssh 訪問主機資源的風險更大? kubectl 如何更安全?

  2. SSH 可以跳過 Pod 安全策略限制的底層主機上的 Pod 安全策略和訪問/掛載路徑嗎?

  3. 如果 SSH 進入容器是不可避免的,那么如何以最好的方式保護它?

如果原因是“你可以通過一個而不是另一個逃脫”,那么我認為它來自不了解所涉及的安全機制的人。 還有其他原因更喜歡kubectl exec不是 SSH,例如與 Kubernetes 的其他所有內容集成的審計日志記錄,以及輕松的訪問撤銷,但它們也可以通過 SSH 獲得。 這只是更多的工作

  1. kubectl 在客戶端運行。 如果其中有阻止您逃脫的功能,您可以修補它們。

  2. 不,那些在 pod 上並由底層內核處理。 SSH 只會讓你在容器中獲得一個 shell,就像kubectl exec一樣。

  3. 使用公鑰身份驗證,確保有一個策略來確保容器中的軟件是最新的。 想一想您將如何管理authorized_keys文件並在那里撤銷受損的SSH 密鑰。 考慮是否應該使用防火牆規則鎖定對 SSH 正在運行的端口的訪問。

只是因為您必須在容器中運行ssh服務器; 因此,在您的容器中運行一個額外的進程,並且必須管理密鑰,這足以成為不想通過 SSH 進入容器的理由。

所以,這是一個缺點。 另一個將與用例一起使用,這是一種風險。 為什么要通過 SSH 連接到容器? 我看到的一個原因是因為您想從外部主機執行此操作(未安裝kubectl並針對api-server身份驗證)。 所以你必須向外界公開一個端點,或者至少向你的網絡公開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM