繁体   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