操作场景
电商网站业务团队希望限制访问生产环境(base namespace)下所有服务间的访问必须开启双向认证 mTLS,以防御中间人攻击。
操作步骤
服务间通信的 mTLS 模式默认为 PERMISSIVE 宽容模式,即服务间的通信既可以使用 mTLS 加密,也可以使用 plaintext 明文连接。
此时在 TKE 控制台登录 client 的 istio-proxy 容器,使用明文连接对生产环境(base namespace)product 服务发起请求:curl http://product.base.svc.cluster.local:7000/product
,此时明文连接也可正常访问 product 服务。如下图所示:
明文连接访问成功如下图所示:
限制 base namespace 下的服务间通信必须采用 mTLS 模式可以通过 PeerAuthentication 策略设置 mTLS 模式为 STRICT 完成。如下图所示:
也可以通过 kubectl 提交 YAML 文件至主集群完成配置:
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: base-strict
namespace: base
spec:
mtls:
mode: STRICT
配置完成后,在 TKE 控制台登录 client 的 istio-proxy 容器,使用明文连接对生产环境(base namespace)product 服务发起请求:curl http://product.base.svc.cluster.local:7000/product
,此时明文连接访问失败。如下图所示:
本页内容是否解决了您的问题?