带你读《云原生机密计算最佳实践白皮书》——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


相关文章
|
8月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
704 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
10月前
|
存储 缓存 分布式计算
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
本文将深入探讨基于 StarRocks 和 Iceberg 构建的云原生湖仓分析技术,详细解析两者结合如何实现高效的查询性能优化。内容涵盖 StarRocks Lakehouse 架构、与 Iceberg 的性能协同、最佳实践应用以及未来的发展规划,为您提供全面的技术解读。 作者:杨关锁,北京镜舟科技研发工程师
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
|
10月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
326 0
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
671 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。
|
7月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1112 108

热门文章

最新文章