安全概览

Envoy 作为服务网格和 API 网关的流量枢纽,内置了丰富的安全能力,帮助企业实现零信任架构、细粒度访问控制和全链路加密。

核心安全能力

  • TLS/mTLS 加密:支持下游(客户端到 Envoy)和上游(Envoy 到服务)双向 TLS,保障数据传输安全。
  • JWT 认证:内置 JWT 令牌校验,支持多种签名算法,常用于 API 认证和微服务间身份验证。
  • 外部授权(ext_authz):支持与外部授权服务(如 OPA、Auth0)集成,实现灵活的访问控制策略。
  • RBAC(基于角色的访问控制):可配置细粒度的访问权限,限制不同用户/服务的操作范围。
  • WAF(Web 应用防火墙):可集成 Coraza、ModSecurity 等 WAF,防护常见 Web 攻击。

典型配置片段

下游 TLS 配置:

transport_socket:
  name: envoy.transport_sockets.tls
  typed_config:
    "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
    common_tls_context:
      tls_certificates:
        - certificate_chain: { filename: "/etc/envoy/certs/server.crt" }
          private_key: { filename: "/etc/envoy/certs/server.key" }

上游 TLS 配置:

transport_socket:
  name: envoy.transport_sockets.tls
  typed_config:
    "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
    common_tls_context:
      validation_context:
        trusted_ca: { filename: "/etc/envoy/certs/ca.crt" }

JWT 认证配置:

http_filters:
  - name: envoy.filters.http.jwt_authn
    typed_config:
      "@type": type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication
      providers:
        my_jwt_provider:
          issuer: "https://issuer.example.com"
          audiences: ["api"]
          remote_jwks:
            http_uri:
              uri: "https://issuer.example.com/.well-known/jwks.json"
              cluster: jwt_cluster
              timeout: 5s

外部授权配置:

http_filters:
  - name: envoy.filters.http.ext_authz
    typed_config:
      "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
      grpc_service:
        envoy_grpc:
          cluster_name: ext-authz
        timeout: 0.5s

工程实践建议

  • 强制开启 mTLS,保障服务间通信安全。
  • 结合 JWT、RBAC、ext_authz,实现多层次、细粒度的访问控制。
  • 配合 WAF 防护常见 Web 攻击,提升整体安全性。

安全是微服务架构的基石,建议在设计之初就纳入全链路加密与访问控制策略。

文章导航

章节内容

这是章节的内容页面。

章节概览