带你读《云原生机密计算最佳实践白皮书》——AMD SEV机密容器(6)

简介: 带你读《云原生机密计算最佳实践白皮书》——AMD SEV机密容器(6)

《云原生机密计算最佳实践白皮书》——06运行时底座——AMD SEV机密容器(5) https://developer.aliyun.com/article/1231024?groupCode=aliyun_linux



附录

制作一个新的加密镜像并部署

请参考指南制作一个新的加密镜像并部署。

自定义simpel KBS 的policy

• sev-snp-measure是一个实用程序,用于使用提供的 ovmf、initrd、kernel、cmdline等作为参数来计算SEV guest固件测量值。下载sev-snp-measure:

git clone https://github.com/IBM/sev-snp-measure.git
cd sev-snp-measure

• 根据ovmf、kernel和initrd_path的地址设置参数。

ovmf、kernel和initrd_path的地址请参考kata 的配置文件

kata 的配置文件路径:/opt/confifidential-containers/share/defaults/kata-containers/confifiguration-qemu-sev.toml。

ovmf_path="/opt/confifidential-containers/share/ovmf/OVMF.fd"
kernel_path="/opt/confifidential-containers/share/kata-containers/vmlinuz-sev.container"
initrd_path="/opt/confifidential-containers/share/kata-containers/kata-containers-initrd.img"

• 计算内核的append值

duration=$((SECONDS+30))
set append
while [ $SECONDS -lt $duration ]; do
 qemu_process=$(ps aux | grep qemu | grep append || true)
 if [ -n "${qemu_process}" ]; then
 append=$(echo ${qemu_process} \
 | sed "s|.*-append \(.*$\)|\1|g" \
 | sed "s| -.*$||")
 break
 fifi
 sleep 1
done
echo "${append}"

• 使用 sev-snp-measure 来计算 SEV guest 的Launch digest。

measurement=$(./sev-snp-measure.py --mode=sev --output-format=base64 \
--ovmf "${ovmf_path}" \
 --kernel "${kernel_path}" \
 --initrd "${initrd_path}" \
 --append "${append}" \
)

• 设置simple kbs 数据库参数

KBS_DB_USER="kbsuser"
KBS_DB_PW="kbspassword"
KBS_DB="simple_kbs"
KBS_DB_TYPE="mysql"
KBS_DB_HOST=$(docker network inspect simple-kbs_default \
 | jq -r '.[].Containers[] | select(.Name | test("simple-kbs[_-]db.*")).IPv4Address' \
 | sed "s|/.*$||g")

• 由于本文使用的加密镜像( docker.io/haosanzi/busybox-v1:encrypted ),是采用 simple kbs 已经存在的密钥来解密,该镜像的 enc_key 值如下。用户需要根据加密镜像按需设置enc_key。

enc_key=RcHGava52DPvj1uoIk/NVDYlwxi0A6yyIZ8ilhEX3X4=

• 将 自定义policy 注入 mysql 中。

policy的组成包括:digests、policies、api_major、api_minor、build_ids等信息。详情请参考链接。我们以digests为例子,向用户展示如何注入自定义policy 。用户可以根据需求自定义Policy。

mysql -u${KBS_DB_USER} -p${KBS_DB_PW} -h ${KBS_DB_HOST} -D ${KBS_DB} <<EOF
 REPLACE INTO secrets VALUES (10, 'key_id1', '${enc_key}', 10);
 REPLACE INTO keysets VALUES (10, 'KEYSET-1', '["key_id1"]', 10);
 REPLACE INTO policy VALUES (10, '["${measurement}"]', '[]', 0, 0, '[]', now(), NULL, 1);
EOF


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
1月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
95 2
|
1月前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
15天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
1月前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
10天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
10天前
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
2024云栖大会,阿里巴巴研究员易立分享了阿里云容器服务的最新进展。容器技术已成为云原生操作系统的基石,支持多样化的应用场景,如自动驾驶、AI训练等。阿里云容器服务覆盖公共云、边缘云、IDC,提供统一的基础设施,助力客户实现数字化转型和技术创新。今年,阿里云在弹性计算、网络优化、存储解决方案等方面进行了多项重要升级,进一步提升了性能和可靠性。
|
16天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器化到微服务
本文将带领读者踏上云原生的旅程,深入探讨容器化和微服务架构的概念、优势以及它们如何共同推动现代软件的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务应用,并解释相关的配置和操作。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供有价值的见解和实操指南。
|
27天前
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
22天前
|
Kubernetes Cloud Native 开发者
云原生入门:从容器到微服务
本文将带你走进云原生的世界,从容器技术开始,逐步深入到微服务架构。我们将通过实际代码示例,展示如何利用云原生技术构建和部署应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
28天前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
下一篇
DataWorks