已采纳
回答正文
回复
讨论正文
该问题的正文与回答。
【背景】 我负责一套 K8s 1.28(containerd 1.7,自建集群)上约 45 个微服务的镜像供应链加固。现状:镜像统一推内网 Harbor 2.9,CI 已接 Trivy 扫描(无 CRITICAL 才放行),基础镜像 eclipse-temurin:17-jre。环境是离线内网——节点和 CI 都出不去公网。安全基线新增一条:「所有上线镜像必须可验证来源与完整性,禁止未签名镜像进入集群」。
我评估下来,落地卡在四个环,一个比一个具体,想请各位给可复现的做法,别只给方向:
【现象 / 卡点】
cosign generate-key-pair),但私钥放哪、谁能签、密钥如何不落 CI 磁盘、如何防「拿到私钥的人随便签」,我还没定方案。cosign verify 校验,还是放 CI 流水线里签完就挡?admission 里每来一个 Pod 都触发一次验签,对 apiserver 的延迟和 cosign 拉取公钥的性能影响我拿不准。--cdn / registry 拉取会不会漏验其中一个子镜像?【已尝试的排查与结果】
cosign sign 给单个单架构镜像签名、本地 cosign verify 成功,说明工具链本身 OK;--disallow-insecure-local-sigstore 相关参数没调明白,报错 failed to fetch rekor entry。【期望得到的答案形态】
--disallow-insecure-local-sigstore、--ct 透明日志在离线下的处理)、以及「observe → enforce」灰度开关的具体 YAML;我引用的几条是我读到的相关上下文(镜像再验证机制、镜像密钥泄露链、Secret 存放之争),供对齐语境,具体签名准入落地我还没找到可直接照抄的方案。