有奖:语音产品征文挑战赛火热进行中> HOT

操作场景

电商网站业务团队希望限制访问生产环境(base namespace)下所有服务间的访问必须开启双向认证 mTLS,以防御中间人攻击。

操作步骤

服务间通信的 mTLS 模式默认为 PERMISSIVE 宽容模式,即服务间的通信既可以使用 mTLS 加密,也可以使用 plaintext 明文连接。
此时在容器服务控制台登录 client 的 istio-proxy 容器,使用明文连接对生产环境(base namespace)product 服务发起请求:curl http://product.base.svc.cluster.local:7000/product,此时明文连接也可正常访问 product 服务。如下图所示:
?
?
明文连接访问成功如下图所示:
明文连接访问成功
?
?
限制 base namespace 下的服务间通信必须采用 mTLS 模式可以通过 PeerAuthentication 策略设置 mTLS 模式为 STRICT。如下图所示:
配置 mTLS 模式为 strict
?
?
也可以通过 kubectl 提交 YAML 文件至主集群完成配置:
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: base-strict
namespace: base
spec:
mtls:
mode: STRICT
配置完成后,在容器服务控制台登录 client 的 istio-proxy 容器,使用明文连接对生产环境(base namespace)product 服务发起请求:curl http://product.base.svc.cluster.local:7000/product,此时明文连接访问失败。如下图所示:
明文连接访问失败
?
?


http://www.vxiaotou.com