cosign签名 + SLSA溯源介绍(SLSA Provenance溯源声明、Keyless模式、OIDC联合身份、Sigstore)
维度企业做法我们评价部署凭据OIDC 联合身份无长期密钥长期 ed25519 forced command⚠️ 落后但裸 VPS 无 IAM 可联合镜像引用digest 钉死digest 钉死✅ 很多团队还在部署 :latest镜像可信cosign 签名 SLSA 溯源 准入控制拒绝未签名仅 Trivy 扫描❌ 最值得补的一项密钥管理Vault / Secrets Manager可轮换可审计服务器上一个 600 的明文文件❌ 最弱环节审批变更管理 职责分离作者不能批自己的必需审批人同一人单人项目的固有限制发布策略金丝雀/蓝绿 SLO 自动回滚up -d 硬切换单节点单用户金丝雀无意义版本可追溯部署标记打进 APM构建→标签→healthz→metrics→部署后核验✅ 比多数小团队做得好数据库迁移独立步骤 expand-contract容器启动时 alembic upgrade head❌ 公认反模式cosign 签名 SLSA 溯源是什么文章目录cosign签名 SLSA 溯源介绍Cosign 签名核心概念给镜像盖一个数字印章工作原理它防什么Keyless 模式企业常用SLSA 溯源SLSA 是什么SLSA Provenance溯源声明它和 Cosign 怎么配合对我们来说意味着什么当前状态最小改进投入产出比最高cosign签名 SLSA 溯源介绍好问题。这两个概念经常一起出现解决的是同一个核心问题的两个层面这个镜像是谁造的有没有被篡改过Cosign 签名核心概念给镜像盖一个数字印章注Cosign 是一个命令行工具CLI它是 Sigstore 项目下的一个可执行程序用 Go 语言编写就像你签一份合同——你的签名证明这份内容是我确认的没被改过。Cosign 对容器镜像做同样的事。工作原理构建阶段 1. CI 构建出镜像得到一个 digest比如 sha256:abc123... 2. CI 用私钥对这个 digest 签名 3. 签名被存到 registry 里和镜像关联在一起 部署阶段 1. 服务器拉镜像前先拿到镜像的 digest 2. 用公钥验证这个 digest 上的签名是否合法 3. 验证通过 → 拉取并部署 4. 验证失败 → 拒绝报警它防什么我们当前的攻击面当前流程无签名 1. CI 构建镜像标签是 abc1234 2. Trivy 扫描这个镜像 → 通过 3. 部署时服务器去 GHCR 解析 abc1234 标签 → 拿到 digest → 拉取部署 攻击 - 在步骤 2 和 3 之间有人或有权限的 CI job往 GHCR 推了一个恶意镜像也打标签 abc1234 - 服务器解析到的 digest 变了拉到的是恶意镜像 - Trivy 扫的是原来的镜像但部署的是新的恶意镜像 - 我们毫无察觉有签名后 1. CI 构建镜像 → cosign sign → 签名存入 registry 2. 部署时 → cosign verify → 验证签名 3. 如果有人推了恶意镜像覆盖标签 - 新镜像没有合法签名攻击者没有私钥 - cosign verify 失败 → 部署中止Keyless 模式企业常用传统的签名需要管理一对密钥私钥保密、公钥分发很麻烦。Keyless 模式用 OIDC 联合身份来签名签名时 - CI 从 GitHub 拿到一个 OIDC token证明我是 repo X 的 workflow Y - 这个 token 被用来向 Sigstore一个公共的、透明的签名日志服务请求一个短期签名证书 - 用这个证书签名 - 签名记录被写入透明日志rekor不可篡改 验签时 - cosign verify 检查 - 签名证书是否由可信的 OIDC 发行方签发 - OIDC token 里的身份repo、workflow是否符合预期 - 透明日志里是否有这条记录好处不需要管理密钥签名自带我是谁在哪里构建的信息。SLSA 溯源SLSA 是什么注SLSA读作 “salsa”全称是 Supply-chain Levels for Software Artifacts。它是一个安全框架和标准由 Linux 基金会下的 OpenSSF 维护。Supply-chain Levels for Software Artifacts软件制品供应链安全等级。Google 发起的一套框架回答一个问题这个软件制品是从哪来的经过了哪些步骤我能信任这条生产线吗分四个等级越高越严格等级要求类比L1有构建记录知道是谁构建的食品包装上写了生产厂家L2构建过程有签名可验证厂家有资质认证包装有防伪标L3构建环境隔离源码到制品的路径可审计生产线有监控录像原料来源可追溯L4构建过程完全可重现双人审批全程有独立第三方监督SLSA Provenance溯源声明一个 JSON 文件记录{builder:{id:GitHub Actions},buildType:https://github.com/actions/runner,invocation:{configSource:{uri:githttps://github.com/myrepo/app,digest:{sha1:commit_hash},entryPoint:.github/workflows/build.yml}},metadata:{buildStartedOn:2026-01-15T10:00:00Z,completeness:true},materials:[{uri:githttps://github.com/myrepo/app,digest:{sha1:...}}]}翻译成人话这个镜像是由 GitHub Actions 在某个时间、从某个 commit、用某个 workflow 构建的。它和 Cosign 怎么配合1. CI 构建镜像 2. SLSA generator 生成溯源声明provenance 3. Cosign 把溯源声明和镜像签名绑在一起存入 registry 4. 部署时 - cosign verify → 签名合法 - 检查溯源声明 → 是预期的 repo、branch、workflow 构建的 - 全部通过 → 部署Cosign 回答这个镜像没被改过SLSA 回答这个镜像是从正确的地方造出来的。对我们来说意味着什么当前状态我们现在做的 构建镜像 → Trivy 扫描漏洞检查→ 推到 GHCR → 部署时解析标签拉取 我们没做的 ❌ 没有签名 → 无法验证镜像是否被替换 ❌ 没有溯源 → 无法验证镜像是否来自正确的构建流程最小改进投入产出比最高CI 里加一行 cosign sign ghcr.io/myrepo/appsha256:abc123 部署脚本里加一行 cosign verify ghcr.io/myrepo/appsha256:abc123 效果 即使有人能写 GHCR推了恶意镜像覆盖标签 没有合法签名的镜像会被拒绝部署。SLSA 溯源是锦上添花——在单人项目里你知道镜像是自己造的溯源的价值不大。但 Cosign 签名验证是实打实堵住了一个当前存在的攻击面。

相关新闻

2026朝阳危房鉴定检测怎么选?老旧房危房鉴定靠谱机构 TOP 结构安全检测+ 报告可查 电话汇总

2026朝阳危房鉴定检测怎么选?老旧房危房鉴定靠谱机构 TOP 结构安全检测+ 报告可查 电话汇总

朝阳区老旧房屋密集,危房鉴定机构虽多却鱼龙混杂,老旧小区业主、乡镇自建房住户、商铺经营者、园区厂房及学校医院都亟需权威安全评估。市面上不少无资质机构出具的报告无法通过住建审核,小编实地走访筛选本地正规第三方危房鉴定实验室&#…

2026/10/13 20:42:02 阅读更多 →
降AI率工具怎么挑才不会踩坑?付款前问清这四条退款条款再下单。

降AI率工具怎么挑才不会踩坑?付款前问清这四条退款条款再下单。

降AI率工具怎么挑才不会踩坑?付款前问清这四条退款条款再下单。 你现在的状态大概是这样:手机里存了七八个链接,小红书刷到的、同学发的、搜索出来的,每一个页面都写着效果显著。评论区一半人说真好用,一半人说骗钱&am…

2026/10/8 21:10:46 阅读更多 →
Scilab信号处理入门:从正弦波生成到FFT频谱分析与滤波实战

Scilab信号处理入门:从正弦波生成到FFT频谱分析与滤波实战

1. 从零开始:为什么选择Scilab处理正弦信号?如果你正在信号处理、通信或者生物医学工程领域摸索,大概率会频繁遇到一个老朋友:正弦信号。无论是模拟一个纯净的音频,分析一个振动传感器的输出,还是处理心电图…

2026/10/7 0:04:52 阅读更多 →

最新新闻

第2章:Linux 基础,pwd 命令

第2章:Linux 基础,pwd 命令

专栏导航 上一篇:第2章:Linux 基础,date 命令 回到目录 下一篇:第2章:Linux 基础,whoami 命令 本节前言 对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏的其它文章。真…

2026/10/14 11:05:15 阅读更多 →
UE4 C++静态加载SkeletalMesh与动画蓝图完整实操

UE4 C++静态加载SkeletalMesh与动画蓝图完整实操

我们接着往下写。这是“基于C代码的UE4学习”系列第三十八篇,这次主题很聚焦:用C代码把 SkeletalMesh 加载到角色身上,并且静态加载一个动画蓝图。很多人在这个阶段会开始纠结——明明蓝图里拖个引用、拉个变量就行,为什么偏要用代…

2026/10/14 11:05:15 阅读更多 →
Kotlin泛型深度解析:类型擦除、型变与reified实战

Kotlin泛型深度解析:类型擦除、型变与reified实战

1. 从类型擦除说起:为什么Kotlin泛型值得单独开一个专题很多人学Kotlin泛型的时候,第一反应是"这不就是Java那套吗"。我一开始也这么想,直到在一个数据解析模块里踩了个坑——写了一个看似完美的泛型转换函数,编译通过&…

2026/10/14 11:05:15 阅读更多 →
重积分建模本质:从物理直觉到高维应用

重积分建模本质:从物理直觉到高维应用

1. 为什么重积分的应用远不止“算体积”——从物理建模到几何直觉的跃迁很多人学完二重积分,脑子里只留下一个公式:∬_D f(x,y) dσ。考试时套用极坐标换元、画个积分区域、算个数值,就以为掌握了。但我在带某高校数学分析实验课时发现&#…

2026/10/14 11:05:15 阅读更多 →
libxl 4.1.1带注册信息:C++离线生成Excel报表实践

libxl 4.1.1带注册信息:C++离线生成Excel报表实践

简介:libxl4.1.1 带注册信息资源包,聚焦高效轻量级 Excel 读写库的跨平台集成,面向需要将 Excel 处理能力嵌入应用的 C/C、C# 开发者,重点梳理 API 调用、依赖库、编译选项以及注册授权验证在 Windows 与 Linux 环境下的差异&…

2026/10/14 11:05:15 阅读更多 →
航空订票系统UML建模:用例图、时序图与类图实战指南

航空订票系统UML建模:用例图、时序图与类图实战指南

简介:航空订票系统是典型的信息管理系统设计案例,适合软件工程、系统分析与设计课程的学生,以及正在学习UML建模的开发者参考。资源以UML可视化建模为主线,覆盖用例图、类图、包图、顺序图、协作图、状态图、活动图、组件图与部署…

2026/10/14 11:04:13 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →