7Building Microservices(第2版)

安全

微服务安全

零信任服务网格API网关身份认证

🎯 AI 时代的学习建议:不要只读理论。理解这一章的设计动机(为什么需要这个概念?)和边界条件(什么情况下会失效?)。当 AI 生成的代码涉及这些概念时,你能判断它是否用对了场景。AI 能帮你总结内容,但无法替代你亲手阅读、思考、建立直觉的过程。

第7章:安全(Security)

一、导读

1.1 本章学习目标

第7章讲解微服务的安全实践。分布式系统的安全比单体应用更复杂。

1.2 为什么第七章如此重要

安全是微服务架构的关键考量。服务间通信、身份认证、数据保护都需要仔细设计。

1.3 核心问题引导

零信任架构是什么?

服务间通信如何保护?

API 网关如何增强安全?

身份认证和授权如何实现?


二、核心概念详解

7.1 零信任架构

零信任原则:
- 永不信任,始终验证
- 每个请求都需要认证
- 最小权限原则
- 假设网络已被攻破

7.2 服务间安全

java
// 使用 mTLS 保护服务间通信
// 每个服务有证书
// 通信双方互相验证

// 使用 JWT 传递身份
public class SecurityFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {
        String token = ((HttpServletRequest) req).getHeader("Authorization");
        Claims claims = Jwts.parser().parseClaimsJws(token).getBody();
        req.setAttribute("userId", claims.getSubject());
        chain.doFilter(req, res);
    }
}

7.3 API 网关

API 网关的安全功能:
- 认证和授权
- 限流和防刷
- 请求验证
- 日志和审计
- SSL 终止

7.4 服务网格

服务网格(如 Istio)的安全能力:
- 自动 mTLS
- 细粒度访问控制
- 身份管理
- 审计日志

三、实战案例

7.1 微服务安全架构

安全架构:
- API 网关:认证、限流、路由
- OAuth2 + JWT:身份认证和授权
- mTLS:服务间加密通信
- Vault:密钥管理
- OPA:策略引擎

四、本章小结

微服务安全需要零信任思维。使用 mTLS 保护通信,JWT 传递身份,API 网关统一入口,服务网格自动化安全策略。


五、思考与练习

零信任架构如何实施?

服务间通信如何保护?

API 网关的安全功能有哪些?

如何管理微服务的密钥?

如何实现细粒度的访问控制?


7/8安全
0%