1. 课程导论:Istio与Serverless控制面安全概述、课程目标与学习路径
1.1 为什么需要关注Serverless控制面的安全
Serverless 架构将基础设施运维责任转移给云平台,但控制面的安全边界并未消失——它从传统的网络边界迁移到了服务网格与 API 网关层。当函数(Function)与微服务混合部署时,东西向流量(函数间、函数与后端服务)的加密、认证与授权成为新的安全盲区。
核心矛盾: Serverless 平台通常提供“开箱即用”的函数调用,但缺乏细粒度的服务间 mTLS、基于身份的访问控制(RBAC/ABAC)以及可观测的安全审计。Istio 作为服务网格的事实标准,能够在不修改函数代码的前提下,为 Serverless 控制面注入零信任安全策略。
1.2 Istio 安全模型与 Serverless 的映射关系
Istio 的安全能力通过控制面组件(istiod)和数据面代理(Envoy)协同实现。在 Serverless 场景中,控制面需要适配函数实例的动态生命周期与冷启动特性。
| Istio 安全组件 | Serverless 控制面对应能力 | 关键差异点 |
|---|---|---|
| Citadel(证书签发) | 为每个函数 Pod 或 Workload Entry 签发 SPIFFE 身份证书 | 函数实例频繁创建销毁,证书轮换周期需缩短至分钟级 |
| Pilot(策略下发) | 将 AuthorizationPolicy、PeerAuthentication 动态推送到 Envoy | 需处理函数扩缩容时的 xDS 连接风暴 |
| Galley(配置验证) | 校验 Serverless 控制面 CRD(如 Knative 的 Configuration) | 需兼容 Serverless 自定义资源与 Istio CRD 的冲突 |
| Envoy(执行点) | 作为 Sidecar 或 Gateway 代理函数流量 | 冷启动时 Envoy 配置预热与连接池初始化 |
1.3 课程核心目标
完成本课程后,你将能够:
- 理解 Serverless 控制面(Knative、OpenFunction)与 Istio 控制面的集成原理与安全边界。
- 配置 基于 SPIFFE 的身份认证(PeerAuthentication)与请求级授权(AuthorizationPolicy)。
- 实现 函数间 mTLS 加密通信,覆盖冷启动与动态扩缩容场景。
- 调试 使用 Istio 可观测性工具(Kiali、Grafana)验证安全策略生效状态。
- 规避 常见陷阱:证书轮换延迟、xDS 推送风暴、Sidecar 注入冲突。
1.4 学习路径与章节地图
课程分为四个阶段,从基础概念到生产级配置,逐步深入:
| 阶段 | 章节范围 | 核心产出 |
|---|---|---|
| 基础篇 | 第 1-5 章 | 理解 Istio 安全模型与 Serverless 控制面架构 |
| 策略配置篇 | 第 6-15 章 | 动手配置 PeerAuthentication、AuthorizationPolicy、RequestAuthentication |
| 进阶实战篇 | 第 16-25 章 | 多集群、混合部署、金丝雀发布下的安全策略管理 |
| 运维与排错篇 | 第 26-30 章 | 证书管理、性能调优、常见故障排查 |
1.5 前置知识与环境要求
建议前置技能:
- 熟悉 Kubernetes 基础操作(Pod、Service、Deployment、Namespace)。
- 了解 Istio 基本概念(VirtualService、DestinationRule、Gateway)。
- 了解 Serverless 概念(函数即服务、冷启动、事件驱动)。
实验环境推荐配置:
- Kubernetes 集群 v1.27+(推荐 Kind 或 Minikube 本地集群)。
- Istio 1.20+(开启 mTLS 严格模式)。
- Knative Serving v1.12+ 或 OpenFunction v1.2+。
- kubectl、istioctl、func(Knative CLI)工具链。