You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kyverno镜像签名验证策略未生效问题排查求助

Kyverno拦截未签名镜像失效的排查与解决

问题现象

在k3s集群测试Kyverno的未签名镜像拦截功能时遇到两个异常:

  • 已经注释GitHub Action里的cosign签名步骤,生成了无有效签名的镜像,但部署Pod时完全没被拦截,成功运行
  • 修正ClusterPolicy里的镜像引用标签后,用Kyverno CLI验证能检测到问题,但kubectl apply部署Pod还是正常跑

问题根因

核心原因是ClusterPolicy未配置background: false。Kyverno默认会启用后台验证,对集群中已存在的资源进行扫描,但对于准入控制场景(拦截新部署的Pod),必须禁用后台验证,确保策略仅在资源创建/更新的实时阶段生效,否则会出现CLI验证正常但实际部署不拦截的情况。

修复方案

编辑你的ClusterPolicy,添加background: false配置项,示例如下:

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: verify-image
spec:
  background: false  # 关键配置:禁用后台验证
  validationFailureAction: Enforce
  rules:
    - name: block-unsigned-images
      match:
        resources:
          kinds:
            - Pod
      verifyImages:
        - imageReferences:
            - "your-image-registry/*"  # 替换为你的镜像仓库前缀
          attestors:
            - count: 1
              entries:
                - keyless:
                    url: "https://fulcio.sigstore.dev"
                    identities:
                      - issuer: "https://token.actions.githubusercontent.com"
                        subject: "https://github.com/your-org/your-repo/.github/workflows/your-ci.yml@refs/heads/main"

然后重新应用策略:

kubectl apply -f your-clusterpolicy.yaml

完成后再部署无签名镜像,Kyverno就会正确拦截Pod的创建请求了。

内容的提问来源于stack exchange,提问作者sqr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 05:53:13