1. 课程导论:容器安全挑战、镜像安全基线概念、OPA Gatekeeper 简介、课程目标与学习路径

1.1 容器化环境下的安全挑战

容器技术通过共享宿主机内核、分层镜像与快速编排,显著提升了应用交付效率,但也引入了传统虚拟机时代不突出的安全风险。以下表格归纳了容器生命周期中四个主要阶段的安全挑战:

阶段 典型风险 影响面
镜像构建 基础镜像含已知 CVE、未清理的构建缓存、硬编码密钥 漏洞向下游传递,攻击面扩大
镜像仓库 镜像签名缺失、仓库访问控制薄弱、镜像被篡改 供应链投毒、非预期镜像上线
容器运行时 特权容器、非只读根文件系统、容器逃逸 宿主机沦陷、横向移动
编排管理 RBAC 配置不当、Pod 安全策略缺失、网络策略未隔离 权限滥用、数据泄露
关键洞察: 镜像安全是容器安全链的“上游关口”。一个包含高危漏洞或恶意文件的基础镜像,会在 CI/CD 流水线中自动传播到数百个运行实例,修复成本呈指数级上升。

1.2 镜像安全基线概念

镜像安全基线是一组可量化、可验证的合规要求,用于定义“一个可接受的容器镜像”必须满足的最低安全条件。它覆盖镜像内容、配置与构建过程三个维度:

  • 内容基线: 无已知严重/高危 CVE、无恶意软件、无明文密钥或证书。
  • 配置基线: 禁止 root 用户运行、禁止特权提升、只读根文件系统、非必需端口不暴露。
  • 构建基线: 使用官方或受信基础镜像、多阶段构建、构建过程无敏感信息残留。

业界常见的基线参考包括 CIS Docker Benchmark、NSA/CISA Kubernetes Hardening Guide 以及 NIST SP 800-190。本课程将把这些标准转化为可编程的策略规则。

实践建议: 基线不是静态文档。建议团队将基线版本化(如 Git 管理),并与镜像扫描结果、运行时审计日志联动,形成持续改进的闭环。

1.3 OPA Gatekeeper 简介

OPA(Open Policy Agent)是一个开源的、通用策略引擎,将策略从具体服务中解耦。Gatekeeper 是 OPA 在 Kubernetes 上的集成实现,作为 准入控制器(Admission Controller) 运行,在资源创建或更新时拦截请求并执行策略。

Gatekeeper 的核心组件与工作流程如下:

  1. ConstraintTemplate: 定义策略逻辑(使用 Rego 语言),描述“什么样的资源是合规的”。
  2. Constraint: 实例化模板,绑定到特定资源类型或命名空间,并设置参数(如允许的镜像仓库列表)。
  3. 准入 Webhook: Kubernetes API Server 在持久化资源前调用 Gatekeeper,根据 Constraint 判定允许或拒绝。
  4. 审计(Audit): 对已有资源进行周期性扫描,标记违反策略的对象。
OPA Gatekeeper 策略执行流程 kubectl apply API Server Gatekeeper Webhook etcd 持久化 Rego 策略评估 Constraint 匹配 审计(Audit) 用户/CI 提交资源清单 (Pod、Deployment 等) Gatekeeper 返回 allow / deny 决策
为什么选择 Gatekeeper? 相比 Kubernetes 原生的 PodSecurityPolicy(已弃用)或手动脚本检查,Gatekeeper 提供声明式策略、CRD 扩展、审计能力,且策略与集群组件解耦,适合大规模多团队环境。

1.4 课程目标与学习路径

本课程旨在帮助学员掌握从镜像安全基线定义到 Gatekeeper 策略落地的完整技能链。完成课程后,学员将能够:

  • 独立制定符合 CIS/NIST 标准的容器镜像安全基线。
  • 使用 Rego 语言编写 Gatekeeper ConstraintTemplate,对镜像来源、漏洞等级、运行时配置进行准入控制。
  • 在 CI/CD 流水线中集成镜像扫描与策略校验,实现“不安全镜像不上线”。
  • 通过 Gatekeeper 审计功能持续监控集群中已有资源的合规状态。

课程分为四个模块,学习路径如下表所示:

模块 章节范围 核心产出
基础篇 第 1-5 章 理解镜像安全基线、OPA 与 Gatekeeper 架构、Rego 语法基础
策略开发篇 第 6-15 章 编写镜像来源、漏洞、配置、运行时等 10+ 条策略
集成与自动化篇 第 16-24 章 对接 Harbor/Trivy、CI/CD 流水线、审计与告警
实战与运维篇 第 25-30 章 多集群策略管理、性能调优、故障排查与案例复盘
课程知识体系与依赖关系 基础篇 镜像基线概念 OPA/Gatekeeper 架构 策略开发篇 Rego 策略编写 ConstraintTemplate 集成自动化篇 CI/CD 流水线 镜像扫描对接 实战运维篇 多集群策略 性能与排障 学习路径建议 1. 按模块顺序学习,基础篇为后续策略开发提供理论支撑。 2. 策略开发篇每章都包含可运行的 Rego 示例,建议在测试集群中动手验证。 3. 集成与实战篇依赖前两篇知识,建议完成策略开发后再进入。
前置要求: 学员需具备基本的 Kubernetes 操作经验(kubectl、Pod、Deployment 概念),了解 Dockerfile 编写。无需提前掌握 OPA 或 Rego,课程将从零开始讲解。