我创建了一个服务,该服务在带有k8 ClusterIP的端口上公开了一个http服务器。由于我所需要的只是让同一集群中的另一个pod向该服务发出请求,所以我不会在外部或互联网上公开该服务。目前,对该服务的请求类似于集群中的http://{service_name}.{namespace}.svc.cluster.local:8000
——它足够安全吗?请求是否需要是https才能完全安全(例如,避免嗅探流量漏洞(
这确实取决于您的组织对风险的态度。我相信这里有两种普遍的观点:
-
由于这是一个内部服务,因此不需要使用HTTPS来加密传输中的流量。所有可以访问流量的系统都被认为是可信的。
-
最好提供一个分层的安全模型,虽然这是一个内部网络,但使用HTTPS加密传输中的流量将确保对内部网络的破坏(或错误配置(将产生有限的影响。
正如我在回答开始时所说,这取决于你的组织对风险的态度,因此社区不能给你一个是/否的答案。以下是一些你可以思考/讨论的事情,以获得针对特定部署的正确答案:
-
在服务之间移动的数据有多敏感。这将帮助您了解这些数据被不当披露的影响。考虑到这些天数据保护越来越受到关注,我建议,如果你在这项服务中有PII(个人身份信息(,那么你应该考虑其影响很大。
-
如果网络/环境遭到破坏,服务之间的流量会给攻击者提供有用的信息吗。从本质上讲,我在这里考虑的是,如果攻击者获得了访问权限,他们是否值得花时间查看流量。显然,如果攻击者能够以未加密的形式访问静止的数据,那么嗅探传输中的流量就没有任何好处。
-
什么是攻击向量?攻击者必须妥协哪些系统才能访问流量?从本质上讲,我们正在研究系统被破坏的可能性。这在很大程度上取决于架构等。
-
成本——这通常是一个组织的关键点——如果出现问题,成本是多少?这取决于所涉及的数据和要求您遵守的法规。添加此安全层的成本是多少?
最后,我将总结我的2c价值,对于通过HTTP在内部系统之间进行通信,我强烈建议使用HTTPS。我的主要观点是,从工程角度来看,从一开始就使用HTTPS代替HTTP是很便宜的,但当你意识到需要时,重新安装会更贵。使用HTTPS提供了额外的安全性,并表明您正在谨慎地处理用户数据。最后,我们看到很多公司因为不遵循常见的安全方法而失去了数据丢失的声誉——想想在发生漏洞时,你将如何为决策辩护?