本文目录导读:

- 核心安全架构:零信任 + mTLS
- 细粒度访问控制:基于身份的策略
- 流量加密与完整性保护
- 身份与密钥管理(SPIFFE)
- 观察与审计
- 关键实施步骤(针对关基环境)
- 关基特定场景的注意点
- 总结:关基使用Service Mesh的典型安全栈
针对关基(关键信息基础设施)的安全需求,Service Mesh(服务网格)的核心价值在于将安全能力从应用代码中剥离,下沉到基础设施层,实现零信任架构、全面加密和细粒度访问控制,以下是具体的应用方法和技术要点:
核心安全架构:零信任 + mTLS
关基环境默认不信任任何网络流量,Service Mesh通过双向TLS(mTLS) 实现服务间通信的加密与身份认证。
- 怎么用:
- 开启全局mTLS:在控制平面(如Istio的PeerAuthentication)中配置
STRICT模式,拒绝所有非TLS流量。 - 自动证书轮换:Sidecar代理(Envoy)自动从控制平面获取短期证书(通常24小时过期),无需人工管理。
- 身份绑定:每个服务实例基于其Kubernetes ServiceAccount或VM标识获得唯一SPIFFE ID,通信时强制校验身份。
- 开启全局mTLS:在控制平面(如Istio的PeerAuthentication)中配置
细粒度访问控制:基于身份的策略
传统的网络防火墙基于IP/端口,在动态环境中脆弱且维护成本高,Service Mesh基于服务身份和请求属性进行控制。
- 怎么用:
- 授权策略(AuthorizationPolicy):定义谁可以访问什么API。
# 示例:仅允许特定服务访问敏感数据库 apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy metadata: name: db-protect namespace: critical spec: selector: matchLabels: app: mysql action: ALLOW rules: - from: - source: principals: ["cluster.local/ns/backend/sa/biz-sa"] to: - operation: methods: ["GET", "POST"] paths: ["/v1/query"] when: - key: request.headers[User-Agent] values: ["known-client"] - 拒绝白名单之外的任何流量:默认策略是
DENY,仅允许明确授权的请求。
- 授权策略(AuthorizationPolicy):定义谁可以访问什么API。
流量加密与完整性保护
关基环境中,数据在传输过程中的泄露是重大风险。
- 怎么用:
- 全链路加密:所有服务间流量(东西向)默认通过mTLS加密,无需修改应用代码。
- 入口/出口加密:通过Gateway配置TLS终止或透传,确保南北向流量也加密。
- 混淆与防重放:Envoy代理自动处理TLS握手和重放攻击防护。
身份与密钥管理(SPIFFE)
在关基场景下,身份是安全的根。
- 怎么用:
- 集成KMS:将Service Mesh的CA(证书颁发机构)与硬件安全模块(HSM)或云厂商KMS集成,确保证书私钥不可导出。
- 短期证书:默认证书有效期极短(如1小时),减少密钥泄露窗口。
- 集群间联邦:多集群关基场景下,通过SPIFFE Federation统一跨集群的服务身份。
观察与审计
关基合规要求全量审计。
- 怎么用:
- 全量TLS握手日志:记录每一次服务间通信的源身份、目标身份、时间戳。
- 分布式追踪:关联请求链路上的每一次安全决策(允许/拒绝),便于事故溯源。
- 异常检测:监控sidecar代理的拒绝请求数、证书过期事件、mTLS握手失败率,触发告警。
关键实施步骤(针对关基环境)
- 网络隔离先行:在Kubernetes网络层面(如NetworkPolicy)先做一层隔离,Service Mesh作为精细化第二层。
- 渐进式启用mTLS:
- 阶段1:
PERMISSIVE模式(允许明文和TLS共存),观测兼容性。 - 阶段2:
STRICT模式,强制加密。
- 阶段1:
- 最小权限策略:为每个服务创建独立的ServiceAccount,并绑定最窄的AuthorizationPolicy。
- 强制公开密钥基础设施(PKI)加固:禁用弱密码套件(如TLS 1.0/1.1),强制使用TLS 1.3或ECDSA证书。
关基特定场景的注意点
- 物理机/虚拟机(VM)集成:关基可能包含遗留VM,需使用Service Mesh(如Istio的VM扩展)将VM纳入网格,同样施加mTLS和策略。
- 合规审计点:确保证书轮换有日志、访问控制策略版本可追溯、密钥生成过程有合规证明。
- 性能开销:关基系统对延迟敏感,需评估sidecar代理的开销(通常增加1-3ms),必要时启用Ambient Mesh(无Sidecar模式) 或调整tls握手缓存。
- 灾难恢复:控制平面要跨可用区部署,避免单点故障导致全网服务无法建立新连接。
关基使用Service Mesh的典型安全栈
| 层级 | 技术 | 作用 |
|---|---|---|
| 身份 | SPIFFE + ServiceAccount | 唯一标识每个服务实例 |
| 传输 | mTLS(双向TLS) | 加密 + 认证 |
| 策略 | AuthorizationPolicy + OPA/Gatekeeper | 细粒度访问控制 |
| 可信 | 短期证书 + KMS集成 | 最小化密钥泄露风险 |
| 审计 | 全量访问日志 + 分布式追踪 | 满足等保、关基合规要求 |
一句话建议:在关基环境中,不要将Service Mesh仅当“流量管理”工具,而应将其作为“零信任安全网格”来规划,从身份、加密、策略、审计四个维度同步落地。