0

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

4

2 回答 2

0

Kubernetes仅为您的容器化应用程序提供编排。它可以帮助您运行更新扩展您的服务,并提供一种在集群内向它们提供流量的方式。大多数 Kubernetes 安全性与集群的流量管理基于角色的管理有关。

一些额外的工具,如Istio,可以为您提供 pod 之间的安全通信以及其他一些流量管理功能。

pod 中的应用程序应该有自己的能力,基于本地文件/数据库或网络服务(如 LDAP 或OpenID等)提供身份验证和授权。

于 2018-08-20T15:19:53.600 回答
0

它完全取决于您如何设计、架构师以及如何为您的系统创建 SDD。在设计时,必须考虑并优先考虑安全加固。软件和工具带来了它们的功能,但是,你如何采用很重要。Kubernetes 也不例外。

您正在使用 HTTP 和在生产系统中运行微服务,即使它在 Kubernetes 集群中运行,您也无法相信您的系统是安全的。Kubernetes 从安全角度带来了很酷的功能,如 RBAC、CRD 等,您可以在此处找到Kubernetes 1.8 安全性、工作负载和功能深度。但是,仍然仅利用这些功能是不够的。内部服务应该和外部一样安全。以下是在将工作负载运行到 Kubernetes 集群后应该注意的几件事,

  1. 扫描所有 docker 镜像以进行漏洞测试。
  2. 使用 RBAC 而不是 ABAC,并为各个团队分配最佳权限。
  3. 为运行您的服务的 pod 配置安全上下文。
  4. 避免未经授权的内部访问服务数据并保护所有微服务端点。
  5. 加密密钥应在一段时间内轮换。
  6. Kubernetes 集群的 etcd 等数据存储必须受到保护。
  7. 只有管​​理员应该有权访问kubectl.
  8. 使用基于令牌的验证并在所有 REST api 调用上启用身份验证。
  9. 持续监控所有服务、分析日志、健康检查、容器内运行的所有进程。

希望这可以帮助。

于 2018-08-19T20:55:13.340 回答