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