TLS 安全链路
本文将向您展示 MOSN 的 TLS 安全能力。
MOSN 支持通过 Istio Citadel 的证书签发方案,基于 Istio 社区的 方案为 Sidecar 配置证书,支持证书动态发现和热更新能力。为了支持更高级的安全能力,MOSN 没有使用 Citadel 的证书自签发能力,而是通过对接内部 KMS 系统获取证书。同时提供证书缓存和证书推送更新能力。
各组件职能如下:
- Pilot:负责 Policy、SDS 配置下发,为简化复杂度,图中未标出
- Citadel:Citadel 作为 Certificate Provider ,同时作为 MCP Server 为 Citadel Agent 提供 Pod、CR等资源
- KMS:密钥管理系统负责证书签发
补充说明下图中的每一步环节:
- Citadel 与 Citadel agent(nodeagent)组件通过MCP协议(Mesh Configuration Protocol)同步Pod 和 CR 信息,避免 citadel agent 直接请求 API Server 导致 API Server 负载过高
- MOSN 通过Unix Domain Socket 方式向 Citadel Agent 发起 SDS 请求
- Citadel Agent 会进行防篡改校验,并提取appkey
- Citadel 检查证书是否已缓存,如果缓存证书未过期,Citadel 将直接响应缓存证书
- 证书不在缓存中,Citadel 会基于 appkey 构造证书签发请求,向 KMS 申请签发证书
- KMS 会将签发的证书响应回Citadel,另外 KMS 也支持证书过期轮换通知
- Citadel 收到证书后,会将证书传递给到对应的 Citadel Agent