RESTful服务在Kubernetes群集上相互交互时是否需要身份验证?

时间:2018-08-19 16:57:24

标签: kubernetes kubernetes-security

我们有一个微服务架构,并且有REST服务通过HTTP相互交互。所有这些服务都托管在Kubernetes集群上。我们是否需要针对此类服务交互进行显式身份验证,或者Kubernetes是否为此提供了足够的安全性?

2 个答案:

答案 0 :(得分:0)

它完全基于您的设计,架构师,如何为系统创建SDD。在设计一个安全网关时,必须考虑安全加固并给予优先考虑。软件和工具具有其功能,但是,采用方法很重要。 Kubernetes也不例外。

您正在使用HTTP运行微服务,并且在生产系统中运行,即使您的系统在Kubernetes集群中运行,也无法相信您的系统是安全的。从安全性的角度来看,Kubernetes具有RBAC,CRD等很酷的功能,如您在Kubernetes 1.8 Security, Workloads and Feature Depth中所见。但是,仅利用这些功能是不够的。内部服务应与外部服务一样安全。在将工作负载运行到kubernetes集群中之后,应注意以下几点

  1. 扫描所有docker映像以进行漏洞测试。
  2. 在ABAC上使用RBAC,并为各个团队分配最佳特权。
  3. Configure a security context for a pod运行您的服务。
  4. 避免未经授权对服务数据进行内部访问,并保护所有微服务端点。
  5. 加密密钥应旋转一段时间。
  6. 您的kubernetes集群的etcd之类的数据存储必须受到保护。
  7. 只有管理员应有权访问kubectl
  8. 使用基于令牌的验证并在所有REST api调用上启用身份验证。
  9. 连续监视所有服务,分析日志,运行状况检查以及容器中运行的所有进程。

希望这会有所帮助。

答案 1 :(得分:0)

Kubernetes仅为您的受限应用程序提供编排。它可以帮助您runupdatescale您的服务,并为群集内的服务提供delivering traffic的方式。 Kubernetes的大多数安全性都与集群的traffic managementrole based administration有关。

Istio之类的一些其他工具可以为您提供Pod和其他流量管理功能之间的安全通信。

pod中的应用程序应具有基于本地文件/数据库或LDAP或OpenID等网络服务的身份验证和授权功能。