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 配置预热与连接池初始化
Istio 与 Serverless 控制面安全架构总览 Serverless 控制面 Knative / OpenFunction 函数生命周期管理 函数实例(Pod) 动态扩缩容 / 冷启动 Ingress / 网关 外部流量入口 安全盲区 东西向流量无认证 Istio 控制面 istiod 证书签发 + 策略下发 Citadel SPIFFE 身份 / mTLS Pilot AuthorizationPolicy 下发 Galley 配置校验与 CRD 管理 数据面(Envoy) Sidecar Proxy 函数 Pod 内代理 Ingress Gateway 南北向流量代理 mTLS 加密 函数间通信加密 RBAC 执行 请求身份校验 安全策略注入

1.3 课程核心目标

完成本课程后,你将能够:

  1. 理解 Serverless 控制面(Knative、OpenFunction)与 Istio 控制面的集成原理与安全边界。
  2. 配置 基于 SPIFFE 的身份认证(PeerAuthentication)与请求级授权(AuthorizationPolicy)。
  3. 实现 函数间 mTLS 加密通信,覆盖冷启动与动态扩缩容场景。
  4. 调试 使用 Istio 可观测性工具(Kiali、Grafana)验证安全策略生效状态。
  5. 规避 常见陷阱:证书轮换延迟、xDS 推送风暴、Sidecar 注入冲突。

1.4 学习路径与章节地图

课程分为四个阶段,从基础概念到生产级配置,逐步深入:

阶段 章节范围 核心产出
基础篇 第 1-5 章 理解 Istio 安全模型与 Serverless 控制面架构
策略配置篇 第 6-15 章 动手配置 PeerAuthentication、AuthorizationPolicy、RequestAuthentication
进阶实战篇 第 16-25 章 多集群、混合部署、金丝雀发布下的安全策略管理
运维与排错篇 第 26-30 章 证书管理、性能调优、常见故障排查
课程学习路径与知识图谱 基础篇 第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)工具链。

1.6 本章小结