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


相关文章
|
22天前
|
Kubernetes 搜索推荐 Docker
K8S容器运行时弃用Docker转型Containerd
K8S容器运行时弃用Docker转型Containerd
117 0
|
22天前
|
Oracle 关系型数据库 数据库
|
22天前
|
Docker 容器
Docker学习笔记三:如何运行一个容器?
Docker学习笔记三:如何运行一个容器?
Docker学习笔记三:如何运行一个容器?
|
22天前
|
运维 Kubernetes Cloud Native
构建高效云原生运维体系:Kubernetes最佳实践
【5月更文挑战第9天】 在动态和快速演变的云计算环境中,高效的运维是确保应用稳定性与性能的关键。本文将深入探讨在Kubernetes环境下,如何通过一系列最佳实践来构建一个高效且响应灵敏的云原生运维体系。文章不仅涵盖了容器化技术的选择与优化、自动化部署、持续集成/持续交付(CI/CD)流程的整合,还讨论了监控、日志管理以及灾难恢复策略的重要性。这些实践旨在帮助运维团队有效应对微服务架构下的复杂性,确保系统可靠性及业务的连续性。
|
6天前
|
Docker 容器
docker: 如何不新建容器 修改运行容器的端口
docker: 如何不新建容器 修改运行容器的端口
|
22天前
|
Linux 开发者 Docker
如何构建在 Docker 容器中运行命令?
【1月更文挑战第6天】
67 0
|
14天前
|
Kubernetes Cloud Native Devops
【阿里云云原生专栏】DevOps与云原生的融合:阿里云CI/CD流水线最佳实践
【5月更文挑战第23天】阿里云融合DevOps与云原生技术,提供高效CI/CD解决方案,助力企业提升研发效能。通过云效平台,集成代码管理、构建服务、容器服务、持续部署及监控日志组件,实现自动化研发流程。案例中,应用从GitHub构建到Kubernetes部署,全程无缝衔接。借助阿里云,企业能快速构建适应云原生的DevOps体系,以应对复杂需求和提升市场竞争力。
66 1
|
22天前
|
NoSQL Redis Docker
Mac上轻松几步搞定Docker与Redis安装:从下载安装到容器运行实测全程指南
Mac上轻松几步搞定Docker与Redis安装:从下载安装到容器运行实测全程指南
49 0
|
22天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里云函数计算中,容器运行过程中的最大内存使用量获取如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
22天前
|
运维 监控 Linux
【专栏】Docker命令`docker ps`的使用,包括列出运行中的容器、筛选特定容器、组合使用与其他命令配合以及在故障排查中的应用
【4月更文挑战第28天】本文介绍了Docker命令`docker ps`的使用,包括列出运行中的容器、筛选特定容器、组合使用与其他命令配合以及在故障排查中的应用。通过基础和高级用法示例,如列出所有容器、搜索特定镜像、监控资源使用等,帮助读者理解和提升容器管理效率。对于Linux运维工程师,掌握`docker ps`是必备技能。