【问题标题】:Is authentication required on RESTful services interacting with each other on Kubernetes cluster?Kubernetes 集群上相互交互的 RESTful 服务是否需要身份验证?
【发布时间】:2019-01-25 22:40:05
【问题描述】:

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

【问题讨论】:

    标签: kubernetes kubernetes-security


    【解决方案1】:

    Kubernetes 仅为您的容器化应用程序提供编排。它可以帮助您runupdatescale 您的服务,并在集群内为它们提供delivering traffic 的方式。大部分 Kubernetes 安全都与集群的traffic managementrole based administration 相关。

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多