详解istio mtls双向身份认证

Istio 中网格内 Pod 间通信流量的默认加密状态

在 Istio 服务网格中,如果两个 Pod 都已注入 Sidecar 代理(即都在网格内),它们之间的通信流量默认会加密。这是通过互信 TLS(mTLS,Mutual TLS)实现的,Istio 会自动将网格内部流量升级为 mTLS,确保服务间加密传输和身份验证。

详细说明

  • 默认配置(PERMISSIVE 模式) :Istio 的默认 PeerAuthentication 策略是 PERMISSIVE 模式,这允许 Sidecar 同时接受明文(plaintext)和 mTLS 流量。 然而,Istio 的 Envoy 代理会智能检测:当源和目标 Pod 都有代理时,它会自动优先使用 mTLS 发送加密流量,而非明文。
  • 自动升级机制:流量在两个代理(Proxy Enforcement Points, PEPs)之间会自动升级为 mTLS,无需手动干预。这确保了网格内服务的安全通信。
  • 严格模式(STRICT):如果需要强制仅允许 mTLS(拒绝明文),可以通过配置 PeerAuthentication 切换到 STRICT 模式。

示例配置(可选,切换到 STRICT)

yaml 复制代码
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: default
spec:
  mtls:
    mode: STRICT

注意事项

  • 适用范围:仅限于网格内(mesh-internal)流量;外部流量需额外配置 Gateway 或 DestinationRule。
  • 验证方法 :使用 istioctl authn tls-check 命令检查 Pod 间的 mTLS 状态,或通过 Kiali 仪表盘可视化流量。

如果你的 Istio 版本或环境有自定义配置(如 Ambient 模式),行为可能略有差异;提供更多细节可进一步确认!

相关推荐
Zfox_3 小时前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
农民工老王4 小时前
K8s 1.31 私有化部署实战:从 Calico 崩溃到 NFS 挂载失败的排坑全记录
云原生·kubernetes
灰子学技术4 小时前
istio从0到1:如何解决分布式配置同步问题
分布式·云原生·istio
小马爱打代码4 小时前
ZooKeeper:入门实战
分布式·zookeeper·云原生
logocode_li6 小时前
OCI/CRI 双标准下:从 dockerd 到 containerd 的 K8s 运行时迭代史
docker·云原生·容器·k8s
天才奇男子15 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
人间打气筒(Ada)21 小时前
k8s:CNI网络插件flannel与calico
linux·云原生·容器·kubernetes·云计算·k8s
老百姓懂点AI21 小时前
[微服务] Istio流量治理:智能体来了(西南总部)AI调度官的熔断策略与AI agent指挥官的混沌工程
人工智能·微服务·istio
江畔何人初1 天前
pod的内部结构
linux·运维·云原生·容器·kubernetes
腾讯云开发者1 天前
言出法随 -- Chaterm如何通过ASR精准操作K8S
云原生·容器·kubernetes