AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1047254
Accepted
xpepermint
xpepermint
Asked: 2020-12-23 13:32:56 +0800 CST2020-12-23 13:32:56 +0800 CST 2020-12-23 13:32:56 +0800 CST

安全性:容器应该运行 TLS 还是依赖其 sidecar?

  • 772

我想知道安全专家如何考虑使容器流量安全。我们以一个简单的 K8S 集群为例。

我想我们都同意在每个容器中运行 HTTPS 而不是 HTTP 更安全。我通常会在 Ingress 上配置一个 TLS,然后路由到一个内部容器也会配置 TLS。

现代混搭解决方案通常安装代理 sidecar - 我们以 Linkerd2 为例。Ingress 会将所有传入流量升级到 TLS,然后它将使用 Linkerd 的 TLS 将流量转发到 sidecar 代理。直到这里传输的所有内容都是 TLS 和安全的。我想知道,既然安全流量“已经到达”pod,容器是否也应该使用 TLS,还是在没有 TLS 的情况下与 sidecar 通信是否足够安全?我想听听容器和它的边车之间的安全方面。Sidecar 是否应该被视为独立容器,因此与容器的通信也应该是 TLS 安全的?

security kubernetes containers
  • 1 1 个回答
  • 1393 Views

1 个回答

  • Voted
  1. Best Answer
    Jonas
    2020-12-23T14:20:08+08:002020-12-23T14:20:08+08:00

    在您希望 Kubernetes 集群具有高级别的安全性的环境中,现在通常应用来自零信任网络的原则。对于 Kubernetes 集群中的网络,这通常意味着:

    • 加密所有网络流量
    • 对所有网络流量使用身份验证
    • 细粒度防火墙规则 - 应用于每个应用程序的微分段
    • 使用 RBAC、服务帐户、JWT 和 OpenPolicyAgent 的最低权限访问控制

    现在通常使用 Service Mesh 产品来解决前两个问题,例如Linkerd、Istio和云提供商提供托管解决方案,例如AWS App Mesh。这些产品以 TLS 的形式在每个 Pod 之间应用加密,还使用客户端证书和相互 TLS、mTLS 以自动方式进行身份验证。服务网格通常有一个控制平面部分,负责例如自动化的证书轮换。

    第三点通常是使用Kubernetes 网络策略来获得动态的,但精细的防火墙规则应用于每个应用程序实例 (Pod),即使它可以动态地调度到集群中的不同节点。这些策略通常使用例如 Pod 标签而不是硬编码的 IP 地址在更高级别声明。

    我想知道,既然安全流量“已经到达”pod,容器是否也应该使用 TLS,还是在没有 TLS 的情况下与 sidecar 通信是否足够安全?我想听听容器和它的边车之间的安全方面。Sidecar 是否应该被视为独立容器,因此与容器的通信也应该是 TLS 安全的?

    Pod 是Kubernetes中的调度单元,它们是紧密耦合的容器——总是一起调度。Pod 中的容器共享一些资源,例如 linux 命名空间、文件系统卷和 cgroup:

    Pod 的共享上下文是一组 Linux 命名空间、cgroup 和可能的其他隔离方面。

    此外,Pod 中的容器共享网络身份、IP 地址,并使用 localhost 在 Pod 内进行通信。我会考虑 Pod 内的信任,但您应该应用精细的 Kubernetes 网络策略来锁定,例如 Pod 可以在哪些端口上接收流量,以及来自哪些 Pod。

    • 9

相关问题

  • OpenSSH 漏洞 [重复]

  • 选择什么安全套件?

  • 安全地授予对 SQL 2005 复制监视器的访问权限以创建快照

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve