首页 > 其他分享 >cosign 镜像签名工具

cosign 镜像签名工具

时间:2024-01-24 16:01:00浏览次数:29  
标签:cosign 签名 key 镜像 docker v0.2

起因

我最近在搞 ACS (ADVANCED CLUSTER SECURITY FOR KUBERNETES),其中有一个功能是验证镜像签名。

cosign 镜像签名工具_cosign

它是个什么?

Cosign 是一个用于签名和验证容器镜像的工具,它允许用户对镜像进行数字签名,并验证签名以确保镜像的完整性和来源。通过使用 Cosign,你可以创建和管理镜像的签名,并在部署时验证这些签名,以确保镜像的安全性。

如何使用?

一、安装程序

github 地址:https://github.com/sigstore/cosign

下载地址:https://github.com/sigstore/cosign/releases/tag/v2.2.2

  • 我使用的是下载 rpm 包(自行找合适自己的安装方式)
wget https://github.com/sigstore/cosign/releases/download/v2.2.2/cosign-2.2.2-1.x86_64.rpm
  • 安装
rpm -ivh cosign-2.2.2-1.x86_64.rpm

cosign 镜像签名工具_镜像签名_02

二、验证程序

查看版本

cosign 镜像签名工具_镜像工具_03

三、生成 key

cosign generate-key-pair

cosign 镜像签名工具_acs_04

其中的

  • cosign.key 是私钥
  • cosign.pub 是公钥

注意:输入保护key 密码时,我直接回车了,这里如果有需要的话可以设置。后续上镜像前面时会用到。

四、使用 cosign 登录镜像注册中心(docker.io 或者私有仓库)

cosign sign --key cosign.key docker.io/ljtian/http-server-gen:v0.2

cosign 镜像签名工具_镜像工具_05

注意1:上面有个告警,有需要的人可以仔细看一下,演示可以跳过

注意2:下面报错为未授权登录,我看网上其他文章都没有对这个描述,也没有介绍。我以为是常见podman login、 docker login。 重新进行了 podman login 登录,发现并没有解决。执行 cosign help 发现 cosign 是一自己上传的,并不是通过 podman 或者 docker 这类工具上传。所以需要执行登录操作。登录成功之后再执行上面的命令

cosign login domain.com -u **** -p ****

目前做的很粗糙只能通过 -u -p 执行,不能交互方式执行。

cosign 镜像签名工具_镜像签名_06

五、生成签名文件并进行上传

cosign sign --key cosign.key docker.io/ljtian/http-server-gen:v0.2

cosign 镜像签名工具_cosign_07

去镜像注册中心查看

cosign 镜像签名工具_cosign_08

可以看到上传了一个 .sig 签名镜像

注意:红框对应的值与进行签名的镜像sha256值是一致的,所以,签名跟这个值一一对应,并不是标签 v0.2。 如果我现在再推送一个新的v0.2标签。新的 v0.2 将是未签名的镜像。这也是前面警告所描述的信息。

六、验证签名

cosign verify --key cosign.pub index.docker.io/ljtian/http-server-gen:v0.2 | jq .

cosign 镜像签名工具_镜像签名_09

签名没有问题。

资料来源

cosign 官网: https://github.com/sigstore/cosign


标签:cosign,签名,key,镜像,docker,v0.2
From: https://blog.51cto.com/ljtian/9399343

相关文章

  • k8s 镜像
    目录k8s镜像镜像名称更新镜像镜像拉取策略默认镜像拉取策略ImagePullBackOff使用私有仓库配置节点向私有仓库进行身份验证config.json说明提前拉取镜像在Pod上指定ImagePullSecrets使用DockerConfig创建Secret使用案例k8s镜像镜像名称容器镜像通常会被赋予pause、ex......
  • containerd 像Docker一样丝滑操作镜像【转】
    containerd像Docker一样丝滑操作镜像• 我们知道DockerCLI工具提供了需要增强用户体验的功能,containerd同样也提供一个对应的CLI工具:ctr,不过ctr的功能没有docker完善,但是关于镜像和容器的基本功能都是有的。接下来我们就先简单介绍下ctr的使用。➜  ~ ctrN......
  • PNET上传镜像
    PNET上传镜像--------##记得修复镜像不然镜像启动不了QEMU的镜像,官方对于该镜像的上传和识别有着相应的标准。就是QEMU的镜像需要放在符合命名规则的目录下面,这样才能够被识别和使用。QEMU镜像格式一般以.qcow2为后缀的,QEMU镜像需要上传至pnet的/opt/unetlab/addons/q......
  • app免费签名分发平台应用cdn分发平台为什么会免费?虾分发分析报告
    近年来,随着移动应用的迅速发展,免费app签名分发平台和应用CDN分发平台日益受到开发者和用户的关注。本报告旨在分析这些平台的商业模式,探讨其利润点、营销点以及所采取的优势。 一、商业模式分析:广告收入:免费app签名分发平台和应用CDN分发平台主要通过展示广告来获取收入。广......
  • 华为eNSP中防火墙web登录方法附带USG6000V镜像安装包(超级详细附步骤图)
    华为eNSP中防火墙web登录方法(超级详细附步骤图)在ensp中使用防火墙,我们选择USG6000V在启动防火墙时,会提示导入镜像文件,选中镜像文件打开即可(镜像安装包链接:https://pan.baidu.com/s/15Szr2za9apdQfQ7Tremzeg?pwd=dmfv提取码:dmfv)搭建环境:在cloud中选择网卡,可以选择虚拟......
  • 构建fineract镜像
    我的电脑是arm为什么./gradlew:fineract-provider:jibDockerBuild-xtest命令执行出来是amd64的镜像在你的build.gradle文件中,Jib插件默认使用的基础镜像是'azul/zulu-openjdk-alpine:17',这个镜像默认是针对amd64架构的。如果你想要构建一个针对arm架构的镜像,你需要使用一个......
  • [转帖]Docker最佳实践:5个方法精简镜像
    https://juejin.cn/post/6844903880526921741  精简Docker镜像的好处很多,不仅可以节省存储空间和带宽,还能减少安全隐患。优化镜像大小的手段多种多样,因服务所使用的基础开发语言不同而有差异。本文将介绍精简Docker镜像的几种通用方法。精简Docker镜像大小的必要性Doc......
  • macOS Monterey 12.7.3 (21H1015) Boot ISO 原版可引导镜像下载
    macOSMonterey12.7.3(21H1015)BootISO原版可引导镜像下载1月22日,北京时间今日凌晨,macOSSonoma14.3发布,同时带来了macOSMonterey12.7.3和macOSVentru13.6.4安全更新。本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘......
  • macOS Ventura 13.6.4 (22G513) Boot ISO 原版可引导镜像下载
    macOSVentura13.6.4(22G513)BootISO原版可引导镜像下载1月22日,北京时间今日凌晨,macOSSonoma14.3发布,同时带来了macOSMonterey12.7.3和macOSVentru13.6.4安全更新。macOSVentura13.6及更新版本,如无特殊说明皆为安全更新,不再赘述。本站下载的macOS软件包......
  • macOS Sonoma 14.3 (23D56) 正式版 Boot ISO 原版可引导镜像下载 (重大更新)
    macOSSonoma14.3(23D56)正式版BootISO原版可引导镜像下载(重大更新)本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。作者主页:sysin.org更新摘......