启用双向传输层安全(mTLS)
Alauda Service Mesh 支持使用双向传输层安全(mTLS)协议配置服务间的安全通信,该协议确保服务客户端和服务器之间的相互认证。
关于双向传输层安全(mTLS)
在 Alauda Service Mesh 中,可以通过 Istio 资源配置 mTLS 设置。
STRICT mTLS 模式可以通过 PeerAuthentication 和 DestinationRule 资源进行配置。
请参考以下 Istio 资源和概念,以正确配置 mTLS 设置:
-
PeerAuthentication
定义 sidecar 代理接受的 mTLS 模式。PERMISSIVE:接受明文和 mTLS 流量。STRICT:仅接受 mTLS 流量。
-
DestinationRule
定义 sidecar 代理发送流量时使用的 TLS 模式。DISABLE:发送明文流量。SIMPLE、MUTUAL、ISTIO_MUTUAL:使用 TLS 发送流量。
-
自动 mTLS
自动为网格间通信启用 mTLS,无论PeerAuthentication模式如何。该功能由网格配置中的enableAutoMtls字段控制,默认启用。
自动 mTLS 在代理层面运行,无需修改应用代码。
默认情况下,PeerAuthentication 设置为 PERMISSIVE 模式,允许 Service Mesh 中的 sidecar 同时接受明文和 mTLS 加密流量。
通过命名空间启用严格 mTLS 模式
您可以通过应用 PeerAuthentication 策略,强制指定命名空间内所有工作负载启用严格 mTLS 模式。
命名空间的 PeerAuthentication 策略示例
- 应用
STRICTmTLS 模式的<namespace>。
当禁用 auto mTLS 且 PeerAuthentication 设置为 STRICT 模式时,您可以通过创建 DestinationRule 资源并设置为 MUTUAL 或 ISTIO_MUTUAL 模式,为 <namespace> 中所有目标主机启用 mTLS。
命名空间的 DestinationRule 策略示例
在整个服务网格中启用严格 mTLS
您可以通过在控制平面命名空间(例如 istio-system)中应用 PeerAuthentication 策略,强制在整个集群范围内启用严格 mTLS。该命名空间必须与 Istio 资源中 spec.namespace 字段的值一致。
整个网格的 PeerAuthentication 策略示例
此外,需创建 DestinationRule 资源以禁用与 API 服务器的 mTLS 通信,因为 API 服务器没有 sidecar。对其他无 sidecar 的服务也应应用类似的 DestinationRule 配置。
整个网格的 DestinationRule 策略示例
使用 Kiali 验证加密状态
Kiali 控制台提供多种方式验证您的应用、服务和工作负载是否启用了 mTLS 加密。
- 进入 Services Detail Overview 页面。
- 在图形边缘显示锁形图标,表示 mTLS 已启用。
- 在 UI 的 Network 部分,启用 mTLS 的端口也会标记锁形图标。