带你读《云原生机密计算最佳实践白皮书》——基于runtime-attestation使用签名容器(1)

简介: 带你读《云原生机密计算最佳实践白皮书》——基于runtime-attestation使用签名容器(1)

基于runtime-attestation使用签名容器


本文主要为您介绍如何在kata环境中基于海光安全加密虚拟化功能CSV(China Secure Virtualization)技术,启动一个租户的签名容器镜像。


前提条件

请参考《基于runtime-attestation使用机密容器》指南的前提条件一节,完成对系统环境的检查和配置。


背景信息

1685090515946.png

相较于Confifidential Container v0,Confifidential Container v1增加支持镜像签名和验签,并使用image-rs取代umoci和skopeo来完成镜像的相关管理功能。更多相关信息,请参考ccv1_image_security_design 。

①②③:containerd 调用 kata-runtime 启动 CSV VM;kata-runtime调用 image-rs 下载加密镜像;

④:attestation-agent 通过 vm-attestation hypercall 获取包括 attestation-report 、chip-id 等内容的 CSV VM evidence;

⑤:attestation-agent 发送 CSV VM evidence 给 verdictd server;verdictd 验证 CSV VM evidence 的证书链、签名、digest 等内容;与 attestation-agent 建立基于 rats-tls 的可信硬件环境的安全通道;

⑥⑦:attestation-agent 向verdictd server 请求验签 key和image policy,verdictd 作为 KBS 通过安全通道发送 policy 文件和验签key发送给 attestation-agent;

⑧:image-rs 使用 key 验签镜像;

⑨:启动镜像运行 workload


步骤一:配置权限

请参考《基于runtime-attestation使用机密容器》指南的步骤一,完成配置权限。


步骤二:制作签名的应用容器镜像

1.生成GPG密钥对

GPG:GNU Privacy Guard , 用于加密、签名通信内容及管理非对称密钥等。 这里假设用户名为 testing,邮箱为test@higon.cn,请按gpg2提示输入用户名、邮箱、密码等信息。

gpg2 --gen-key

上述执行完成后,执行 gpg2 --list-keys 列举生成的密钥: 可看见类似如下内容:

[root@localhost test]# gpg2 --list-keys
/root/.gnupg/pubring.kbx
------------------------
pub rsa2048 2022-05-11 [SC] [expires: 2024-05-10]
 B0801A210472A10CC22090C8B27A004C4E80D3E5
uid [ultimate] testing <test@hygon.cn>
sub rsa2048 2022-05-11 [E] [expires: 2024-05-10]

由于verdictd不支持kbx格式pubkey,还需执行如下操作生成pubring.gpg

cd /root/.gnupg/
gpg2 --armor --export --output pubring.gpg test@hygon.cn

2. 制作签名的应用容器镜像

以docker.io/library/busybox:latest这个镜像为例,假设用户名为test,则远端的个人仓库为docker.io/test/busybox。

注意:在实际操作中,应将docker.io/test更名为实际操作的用户名,docker.io/xxxx。

首先配置 /etc/containers/registries.d/default.yaml 文件内容如下:

default-docker:
 sigstore-staging: fifile:///var/lib/containers/sigstore

然后用skopeo copy --sign-by进行签名, 以用户test为例:执行成功后在https://hub.docker.com/r/test/busybox/tags 上可观察到sig-test的tag。

skopeo login docker.io --username <$username> --password <$password>
skopeo copy --remove-signatures --sign-by test@hygon.cn \
 docker://docker.io/library/busybox:latest \
 docker://docker.io/test/busybox:sig-test
skopeo logout docker.io/test

以用户test为例:在本地可观察到 /var/lib/containers/sigstore 目录下多出了test目录(这样就完成了签名的准备工作):

tree /var/lib/containers/sigstore
/var/lib/containers/sigstore
└── test
 └── busybox@
sha256=52f431d980baa76878329b68ddb69cb124c25efa6e206d8b0bd797a828f0528e
 └── signature-1


步骤三:安装kata 环境

请参考《基于runtime-attestation使用机密容器》指南的步骤二来安装kata环境,并参考以下步骤更新initrd文件和kata 配置文件。

更新initrd文件

解压initrd image

cp initrd.run.img ./initrd.img.gz
gunzip initrd.img.gz
mkdir initrd
cd initrd/
cpio -ivmd < ../initrd.img

配置待验证镜像签名文件

将 /var/lib/containers/sigstore 目录下的所有内容 复制到initrd/var/lib/containers/sigstore:

sudo cp -rf /var/lib/containers/sigstore/* initrd/var/lib/containers/sigstore

重新打包initrd

cd initrd/
fifind . | cpio -o -H newc > ../initrd.new.img
gzip ../initrd.new.img
cd ../ && mv initrd.new.img.gz initrd.new.img
cp initrd.new.img initrd.run.img


步骤四:安装containerd

请参考《基于runtime-attestation使用机密容器》指南的步骤三来安装containerd。


步骤五:搭建kubenetes运行环境

请参考《基于runtime-attestation使用机密容器》指南的步骤四来搭建kubenetes运行环境。



《云原生机密计算最佳实践白皮书》——06运行时底座——海光CSV机密容器——基于runtime-attestation使用签名容器(2) https://developer.aliyun.com/article/1231239?groupCode=aliyun_linux

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
2月前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
3月前
|
运维 Cloud Native 云计算
云原生技术:探索未来计算的无限可能
【10月更文挑战第8天】 云原生技术,作为云计算领域的一次革新性突破,正引领着企业数字化转型的新浪潮。它不仅重塑了应用的构建、部署和运行方式,还通过极致的弹性、敏捷性和可扩展性,解锁了未来计算的无限潜力。本文将深入浅出地解析云原生技术的核心理念、关键技术组件及其在不同行业中的实际应用案例,展现其如何赋能业务创新,加速企业的云化之旅。
71 7
|
4天前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
1月前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
19天前
|
运维 Cloud Native Serverless
Serverless Argo Workflows大规模计算工作流平台荣获信通院“云原生技术创新标杆案例”
2024年12月24日,阿里云Serverless Argo Workflows大规模计算工作流平台荣获由中国信息通信研究院颁发的「云原生技术创新案例」奖。
|
17天前
|
人工智能 运维 监控
容器服务Kubernetes场景下可观测体系生产级最佳实践
阿里云容器服务团队在2024年继续蝉联Gartner亚洲唯一全球领导者象限,其可观测体系是运维的核心能力之一。该体系涵盖重保运维、大规模集群稳定性、业务异常诊断等场景,特别是在AI和GPU场景下提供了全面的观测解决方案。通过Tracing、Metric和Log等技术,阿里云增强了对容器网络、存储及多集群架构的监控能力,帮助客户实现高效运维和成本优化。未来,结合AI助手,将进一步提升问题定位和解决效率,缩短MTTR,助力构建智能运维体系。
|
23天前
|
Kubernetes 安全 数据安全/隐私保护
云卓越架构:容器安全最佳实践
本次分享由阿里云智能集团解决方案架构师张玉峰主讲,主题为“云卓越架构:容器安全最佳实践”。内容涵盖容器安全的挑战、云原生容器安全架构及典型场景。首先分析了容器安全面临的问题,如镜像漏洞和权限管理。接着介绍了容器安全架构的五个维度:身份权限管理、配置安全检查、运行时防护、镜像安全检测及发布的安全管控。最后通过具体场景展示了容器身份与权限管理、密钥管理、运行时防入侵等最佳实践,强调了安全左移的重要性,确保从开发到运行的全生命周期安全覆盖。
|
2天前
|
人工智能 编解码 自然语言处理
AI运用爆发时代, 视频服务云原生底座“视频云”架构的全智能再进化
本文介绍了AI运用爆发时代下,视频服务云原生底座“视频云”架构的全智能再进化。随着AI技术的发展,视频内容和交互方式正经历深刻变革。文章从背景、视频AI应用挑战、视频云网端底座、AIGC时代的全智能化及未来展望五个方面展开讨论。重点阐述了云、网、端三者如何深度融合,通过AI赋能视频采集、生产、分发和消费全流程,实现视频处理的智能化和高效化。同时,展望了未来AI在视频领域的创新应用和潜在的杀手级应用。
|
1月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
63 5
|
1月前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
75 4