1. 课程导论:什么是策略即代码(Policy as Code),为什么需要将 Rego 与 Helm 集成,课程目标与前置知识

1.1 什么是策略即代码(Policy as Code)

策略即代码(Policy as Code, PaC)是一种将组织中的安全、合规、治理规则以机器可读的代码形式进行声明、存储、测试和自动执行的实践。它打破了传统策略依赖 PDF 文档、人工审核或硬编码在应用逻辑中的模式,将策略从“静态文档”转变为“可执行代码”。

核心转变: 从“人读策略”到“机器执行策略”。策略不再只是写在 Wiki 或 Word 文档里的文字,而是可以被 CI/CD 流水线、Kubernetes 准入控制器、基础设施即代码工具直接调用的代码片段。

在云原生生态中,策略即代码通常通过专用的策略引擎实现。OPA(Open Policy Agent)是目前最流行的开源通用策略引擎,而 Rego 是 OPA 的原生声明式查询语言。Rego 允许你以 JSON 文档(如 Kubernetes 资源清单)作为输入,输出策略决策(Allow/Deny 或更复杂的结构化数据)。

1.2 为什么需要将 Rego 与 Helm 集成

Helm 是 Kubernetes 生态中最广泛使用的包管理器,通过 Chart 模板化应用部署。然而,Helm 本身不提供策略执行能力。当团队大规模使用 Helm 部署应用时,会面临以下核心痛点:

痛点 传统做法 问题
安全基线缺失 在 values.yaml 中手动注释或依赖外部文档 容易遗漏,无法在部署前自动拦截不安全配置(如 privileged: true)
合规碎片化 部署后通过外部扫描工具检查 反馈周期长,无法在 Helm install/upgrade 时即时阻断
策略与模板耦合 在 Chart 模板中写大量 if-else 逻辑 模板臃肿,难以维护,策略变更需要重新发布 Chart
多环境策略不一致 不同环境使用不同的 values 文件 策略逻辑分散,难以统一审计和版本控制

将 Rego 与 Helm 集成,意味着在 Helm 的生命周期中嵌入策略引擎。具体来说,可以在 helm template 或 helm install 阶段,通过 OPA 对渲染后的 Kubernetes 清单执行 Rego 规则,实现“部署即合规”。

集成价值: 策略与模板解耦、部署前即时阻断、策略版本化可审计、一次编写多环境复用。

1.3 集成架构概览

下图展示了 Rego 规则与 Helm Chart 集成的核心架构。策略规则作为独立层,在 Helm 渲染出 Kubernetes 清单后、实际应用到集群前,由 OPA 引擎进行校验。

Rego 与 Helm Chart 集成架构 用户 values.yaml 配置参数 Helm Chart 模板 + 默认值 helm template 渲染 Kubernetes 清单 OPA / Rego 策略执行引擎 Rego 策略库 .rego 规则文件 决策输出 (Allow/Deny) 集成点: 在 helm template 输出后、 apply 到集群前,插入 OPA 策略校验步骤。

1.4 课程目标

完成本课程后,你将具备以下能力:

  • 理解核心概念: 掌握 Rego 语言基础、OPA 架构、Helm Chart 生命周期及钩子机制。
  • 编写可复用的 Rego 规则: 针对 Kubernetes 资源(Pod、Deployment、Service、NetworkPolicy 等)编写安全与合规策略。
  • 实现 Helm 与 OPA 的深度集成: 通过 Helm 插件、Chart 钩子、CI/CD 流水线等方式,在部署时自动执行策略检查。
  • 构建策略即代码工作流: 将 Rego 规则纳入 Git 版本控制,实现策略的测试、发布和审计。
  • 实战落地: 完成一个完整的集成项目,包含自定义 Chart、Rego 规则集、测试用例和部署流水线。

1.5 前置知识要求

为了获得最佳学习体验,建议你具备以下基础:

领域 具体要求 推荐程度
Kubernetes 了解 Pod、Deployment、Service 等核心资源;熟悉 kubectl 基本操作 必须
Helm 掌握 helm install/upgrade/template 命令;理解 values.yaml 和模板语法 必须
YAML/JSON 熟练读写 YAML 和 JSON 格式 必须
基础编程概念 理解变量、条件、循环、函数等通用编程概念 建议
CI/CD 基础 了解 Git、流水线、自动化测试的基本思想 加分项
注意: 本课程不要求你已经是 Rego 或 OPA 专家。我们会从零开始讲解 Rego 语法,但如果你对 Kubernetes 和 Helm 完全陌生,建议先完成官方入门教程。

1.6 课程内容概览

本课程共分为 30 章,覆盖从基础到实战的完整路径。下图展示了课程的知识体系结构:

课程知识体系结构 基础层(第 1-8 章) Rego 语法基础 | OPA 架构 | Helm 生命周期 | 策略即代码概念 集成层(第 9-18 章) Helm 插件开发 | Chart 钩子集成 | OPA 作为准入控制器 | 策略测试框架 实战层(第 19-26 章) 安全基线策略 | 网络策略 | 资源配额 | 镜像签名验证 | 合规审计 进阶与交付层(第 27-30 章) 策略版本控制 | CI/CD 流水线集成 | 多集群策略管理 | 项目总结与最佳实践

课程从基础概念出发,逐步深入到集成实现,最终通过完整项目交付可落地的策略即代码解决方案。每一章都包含可运行的代码示例和配套练习。