互相传输层安全 (mTLS) 是一种允许两方进行互相认证的协议。它是某些协议(如 IKE、SSH)的默认认证模式,而在其他协议(如 TLS)中则为可选模式。您可以在不更改应用程序或服务代码的情况下使用 mTLS。TLS 完全通过服务网格基础设施处理,并在两个 sidecar 代理之间进行处理。
默认情况下,mTLS 在服务网格中启用并设置为宽松模式。在此模式下,服务网格中的 sidecar 接受明文流量和使用 mTLS 加密的连接。如果网格中的服务被配置为使用严格的 mTLS 与网格外部的服务进行通信,则通信可能会受到干扰,因为严格的 mTLS 需要客户端和服务器之间的相互认证。在将工作负载迁移到服务网格时,请使用宽松模式。然后,您可以在网格、命名空间或应用程序之间启用严格的 mTLS。
在左侧导航栏中,点击 服务列表。
点击您要创建安全规则的 服务名称。
在 策略 标签下,点击集群右侧的 创建策略 > 安全。
在 规则 部分,选择 宽松模式 或 严格模式。
宽松模式:允许服务同时接受明文流量和互 TLS 流量。
严格模式:只允许服务接受互 TLS 流量。服务将仅处理由 sidecar 加密的流量,未加密的流量将被拒绝。
注意:启用 宽松模式 允许服务同时接受明文和互 TLS 流量,大大增强了采用互 TLS 的便利性。
例如:当运维人员希望将服务迁移到启用互 TLS 的 Istio 时,非 Istio 客户端和服务器之间的通信可能会出现许多问题。通常,运维人员无法在所有客户端上同时安装 Istio sidecar,也没有权限这样做。即使在服务器上安装了 Istio sidecar,若不干扰现有连接,也无法启用互 TLS。
宽松模式 灵活地解决了这一场景。安装在服务中的 Istio sidecar 会立即接受互 TLS 流量,而不会干扰现有的明文流量。因此,运维人员可以逐步安装和配置客户端 Istio sidecar 以发送互 TLS 流量。一旦客户端配置完成,服务器可以配置为 严格模式(仅 TLS 模式)。
点击 创建。 创建安全策略时,系统将自动创建客户端规则并默认启用 TLS。