1. 课程导论:Sigstore与容器网络运维准入策略的关系、课程目标与学习路径

1.1 为什么需要将Sigstore引入容器网络运维准入?

在云原生环境中,容器网络运维(CNO)团队负责管理集群的网络策略、服务网格配置、CNI插件升级以及网络准入控制。传统的运维准入策略依赖静态的RBAC、网络策略YAML审批和人工审计,存在三大核心风险:

  • 身份伪造:运维人员使用的kubeconfig或ServiceAccount令牌可能被泄露,导致非授权人员执行高危网络策略变更。
  • 策略篡改:网络策略(NetworkPolicy)或服务网格Sidecar配置在CI/CD流水线中可能被中间人篡改,而传统校验仅检查语法正确性。
  • 权限漂移:运维脚本或Operator在运行时动态提升权限(如创建HostPort、修改iptables规则),但审计日志无法追溯真实签发者。

Sigstore作为开源软件签名与验证标准,通过无密钥签名(Keyless Signing)和透明日志(Rekor)为容器网络运维准入策略提供了可加密验证的信任链。本课程将系统讲解如何将Sigstore嵌入CNO准入评审流程,从签名策略设计到运行时权限变更风险检测,形成完整的DevSecOps闭环。

核心观点: Sigstore不是替代现有网络准入控制器(如OPA/Gatekeeper、Kyverno),而是为这些控制器的策略决策提供“谁在何时为何签署了此策略”的不可否认证据。

1.2 Sigstore与容器网络运维准入策略的关系

下图展示了Sigstore在容器网络运维准入策略评审中的位置与数据流:

Sigstore 与容器网络运维准入策略关系图 运维人员 / CI 流水线 网络策略 YAML / 配置 Sigstore 签名层 Cosign 签名 + 无密钥 Rekor 透明日志记录 策略评审引擎 OPA / Kyverno / 自定义准入 K8s 集群网络 NetworkPolicy / Cilium 服务网格 / CNI 签名请求 验证签名 + 策略 准入决策 关键关系说明: 1. 运维人员通过 Cosign 对网络策略 YAML 进行签名,签名记录写入 Rekor 透明日志。 2. 策略评审引擎在准入阶段验证签名有效性,并执行网络策略合规检查。 3. 只有通过签名验证和策略评审的变更才会被应用到集群网络组件。

1.3 课程目标

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

目标编号 能力描述 对应实践场景
G1 理解Sigstore签名模型(Keyless、Key Pair、Rekor、Fulcio)与容器网络策略的映射关系 为NetworkPolicy YAML设计签名策略
G2 掌握基于Cosign的网络运维准入策略签名与验证流水线搭建 在GitOps流水线中自动签名网络配置
G3 能够评审现有容器网络运维准入策略中的签名缺失、权限过度、审计盲区等风险 安全审计CNO团队的策略变更记录
G4 设计并实施基于Sigstore的权限变更风险检测规则(如HostPort创建、iptables修改、CNI升级) 拦截未签名的高危网络操作
G5 将Sigstore策略评审融入DevSecOps流程,实现网络运维变更的“签名-验证-审计”闭环 构建符合SLSA Level 2+的网络交付管线

1.4 学习路径与章节结构

本课程共30章,按知识递进关系分为五个阶段:

课程学习路径(五阶段递进) 阶段1 基础概念 Sigstore & CNO (第1-5章) 阶段2 签名实践 Cosign + Rekor (第6-12章) 阶段3 策略评审 准入规则设计 (第13-20章) 阶段4 风险检测 权限变更分析 (第21-26章) 阶段5 DevSecOps集成 闭环与自动化 (第27-30章) 学习建议: • 阶段1-2为基础操作,建议在实验环境中跟随每章示例完成签名与验证。 • 阶段3-4为核心评审内容,需结合真实网络策略YAML进行风险分析练习。 • 阶段5为综合实战,建议使用GitLab CI / GitHub Actions + Cosign + OPA 搭建完整流水线。

1.5 前置知识与工具准备

为获得最佳学习效果,建议学员具备以下基础:

  • Kubernetes 基础:理解Pod、Service、NetworkPolicy、RBAC等核心资源。
  • 容器网络概念:了解CNI插件(Calico、Cilium)、服务网格(Istio)的基本工作原理。
  • CI/CD 流水线经验:熟悉GitOps或传统CI/CD流程(Jenkins、GitLab CI、GitHub Actions)。
  • 命令行工具:安装 cosign、kubectl、opa 或 kyverno CLI。
快速环境检查: 在终端执行 cosign version 确认版本 ≥ 2.0.0;执行 kubectl version --short 确认集群版本 ≥ 1.24。

1.6 本章小结