istio 中有两种不同的身份认证方式:
- 基于 mTLS 的对等身份认证 PeerAuthentication
- 基于 JWT(JSON Web Token)令牌的服务请求认证 RequestAuthentication
对等身份认证 PeerAuthentication
概念
- 提供服务到服务的认证
- 服务网格的主要场景就是服务到服务的认证
- 基于双向 TLS 实现对等身份认证
证书获取流程
- Envoy 向 pilot-agent 发起一个 SDS (Secret Discovery Service) 请求,要求获取自己的证书和私钥
- Pilot-agent 生成私钥和 CSR(Certificates Signing Request,证书签名请求),向 Istiod 发送证书签发请求,请求中包含 CSR 和该 pod 中服务的身份信息
- Istiod 根据请求中服务的身份信息(Service Account)为其签发证书,将证书返回给 Pilot-agent
- Pilot-agent 将证书和私钥通过 SDS 接口返回给 Envoy
配置定义
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
meta