在微服务网络内部,你不能仅仅因为网络是“内部的”就信任它。零信任假设网络是敌对的,因此每一次调用都要经过身份验证和授权,并使用 mTLS 对流量进行加密。
双向 TLS(mTLS)
与普通 TLS 不同,双方都需出示证书。每个服务都要证明自己的身份,并且传输中的流量都被加密。
text
Service A ──cert──▶ Service B
Service A ◀─cert── Service B (both verify each other's identity)
→ caller is authenticated AND data is encrypted
服务网格(service mesh)可以自动提供 mTLS,而无需改动任何应用代码。
服务间授权
身份(谁在调用)加上策略(他们被允许做什么)。令牌(JWT)或 SPIFFE 身份承载调用方的身份信息。
yaml
{ }
{ , }
