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

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

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



步骤六: 安装并启动Verdictd

Verdictd是一种远程认证实现,由一组构建块组成,这些构建块利用Intel/AMD的安全特性来发现、验证和支持关键的基础安全和机密计算用例。它依靠RATS-TLS应用远程认证基础和标准规范来维护平台数据收集服务和高效的验证引擎来执行全面的信任评估。这些信任评估可用于管理应用于任何给定工作负载的不同信任和安全策略。 更多信息请参考verdictd项目文档。

1. 安装verdicted

yum remove verdictd -y
rm -rf /usr/share/rats-tls /usr/local/lib/rats-tls/ /usr/local/bin/verdict*
yum install -y verdictd

2. 配置verdicted

2.1 将步骤二中的pubring.gpg复制到 /opt/verdictd/gpg/

cp /root/.gnupg/pubring.gpg /opt/verdictd/gpg/keyring.gpg

2.2 将policy.json写入到 /opt/verdictd/image/

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

cat>/opt/verdictd/image/policy.json <<EOF
{
 "default": [
 {
 "type": "reject"
 }
 ],
 "transports": {
 "docker": {
 "docker.io/test": [
 {
 "type": "signedBy",
 "keyType": "GPGKeys",
 "keyPath": "/run/image-security/simple_signing/pubkey.gpg"
 }
 ]
 }
 }
}
EOF

2.3 将sigstore.yaml写入到 /opt/verdictd/image/

cat>/opt/verdictd/image/sigstore.yaml <<EOF
default-docker:
 sigstore: fifile:///var/lib/containers/sigstore
docker:
docker.io/test:
 sigstore: fifile:///var/lib/containers/sigstore
EOF

2.4 配置CSV OPA文件

使用/opt/csv/calculate_hash.py计算measure:

yum install -y gop
/opt/csv/calculate_hash.py --ovmf /opt/csv/ccv0-guest/OVMF.fd --kernel /opt/csv/ccv0
guest/vmlinuz-5.15.0-rc5+ --initrd /opt/csv/ccv0-guest/initrd.run.img --cmdlin/opt/csv/
ccv0-guest/cmdlinee

输出结果类似如下:

Calculating hash of kernel at /opt/csv/ccv0-guest/vmlinuz-5.15.0-rc5+
Calculating hash of initrd at /opt/csv/ccv0-guest/initrd.run.img
Calculating hash of kernel params (/opt/csv/ccv0-guest/cmdline)
Firmware Digest: OJXIhq3PHbknNmpAIy8YpUHOpY0wvGRXULOW8djVAZA=

配置csvData,需确保csvData中的measure与前一步计算的Firmware Digest一致。

mkdir -p /opt/verdictd/opa/ && cat <<EOF | sudo tee /opt/verdictd/opa/csvData
{
 "measure": ["OJXIhq3PHbknNmpAIy8YpUHOpY0wvGRXULOW8djVAZA="]
}
EOF

配置csvPolicy.rego:

cat <<EOF | sudo tee /opt/verdictd/opa/csvPolicy.rego
package policy
# By default, deny requests.
default allow = false
allow {
 measure_is_grant
}
measure_is_grant {
 count(data.measure) == 0
}
measure_is_grant {
 count(data.measure) > 0
 input.measure == data.measure[_]
}
EOF

3. 启动verdictd

使用以下命令启动verdictd,从而于Attestation-Agent建立基于CSV的安全信道。

verdictd --listen 0.0.0.0:20002 --verififier csv --attester nullattester --client-api 127.0.0.1:20001 
--mutual

注意:verdictd 启动的时候有一个报错。原因是在注册SGX相关的 instance时出错,在CSV平台上可以忽略。

[ERROR] failed on dlopen(): libsgx_dcap_quoteverify.so.1: cannot open shared object fifile: No such fifile or directory



《云原生机密计算最佳实践白皮书》——06运行时底座——海光CSV机密容器——基于runtime-attestation使用签名容器(3) https://developer.aliyun.com/article/1231237?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的迁移。
相关文章
|
6天前
|
Cloud Native 云计算 Docker
云原生之旅:从容器化到微服务架构
【9月更文挑战第27天】本文将引领读者进入云原生的世界,探索如何通过容器化技术实现应用的快速部署与扩展,并深入理解微服务架构的设计哲学。我们将一起见证代码如何转化为可在云端无缝运行的服务,同时讨论云原生生态中的最佳实践和面临的挑战。
|
3天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker与Kubernetes入门
【9月更文挑战第30天】在云计算的浪潮中,云原生技术正以前所未有的速度重塑着软件开发和运维领域。本文将通过深入浅出的方式,带你了解云原生的核心组件——Docker容器和Kubernetes集群,并探索它们如何助力现代应用的构建、部署和管理。从Docker的基本命令到Kubernetes的资源调度,我们将一起开启云原生技术的奇妙之旅。
|
2天前
|
Cloud Native 持续交付 Docker
云原生之旅:从容器到微服务的演变之路
【9月更文挑战第31天】在数字化转型的浪潮中,云原生技术如星辰般熠熠生辉。本文将带你探索云原生的核心——容器化与微服务架构,揭示它们如何共同推动现代软件开发的革命。通过深入浅出的语言和生动的比喻,我们将一起走进云原生的世界,理解它的魅力所在,并见证代码示例如何将理论转化为实践。
12 4
|
7天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
针对软件供应链的攻击事件在以每年三位数的速度激增,其中三方或开源软件已经成为攻击者关注的重要目标,其攻击方式和技术也在不断演进。通过供应链的传播,一个底层软件包的漏洞的影响范围可以波及世界。企业亟需更加标准和完善的供应链风险洞察和防护机制。本文将结合最佳实践的形式,面向容器应用完整的生命周期展示如何基于容器服务ACK/ACR/ASM助力企业构建云原生软件供应链安全。
|
1天前
|
负载均衡 Cloud Native 安全
云原生时代的开发者指南:从容器到服务网格
【9月更文挑战第32天】在云原生技术日益成为企业数字化转型的核心力量之际,了解其背后的理念与实践对于开发者而言至关重要。本文旨在通过浅显易懂的语言,为读者揭开云原生技术的神秘面纱,从容器化的基础谈起,逐步深入到服务网格的高级应用,带领开发者们在云原生的海洋中航行。
7 1
|
12天前
|
运维 Cloud Native 开发者
云原生时代的容器化之旅
【9月更文挑战第21天】在数字化浪潮中,云原生技术如同一股清泉,为软件开发带来了前所未有的灵活性和效率。本文将深入浅出地探讨云原生的核心概念——容器化技术,通过实际代码示例,引领读者开启一段探索云原生世界的奇妙旅程。
|
8天前
|
Cloud Native 持续交付 Docker
云原生技术入门与实践:Docker容器化部署示例
【9月更文挑战第25天】在数字化转型的浪潮下,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,为初学者揭示云原生技术的核心概念及其应用价值。我们将以Docker容器为例,逐步引导读者了解如何将应用程序容器化,并在云端高效运行。这不仅是对技术趋势的跟随,更是对资源利用和开发效率提升的探索。
27 4
|
7天前
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
今年是Kubernetes十周年,在这10年间。我们已经看到其成长为云原生操作系统,向下高效调度多种算力资源,屏蔽基础设施差异,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务产品已经覆盖了从公共云、边缘云、到本地数据中心的各个场景。让所有需要云能力的地方,都有统一的容器基础设施。
阿里云容器服务,智算时代云原生操作系统
|
4天前
|
Kubernetes Cloud Native Docker
云原生之旅:深入理解容器化与Kubernetes
【9月更文挑战第29天】在云计算的海洋中,云原生技术如同一艘航船带领着企业乘风破浪。本文将作为你的航海图,带你探索云原生的核心——容器化和Kubernetes。我们将从容器的基本概念出发,逐步深入到如何在Kubernetes集群中部署应用,最后探讨这些技术如何助力现代软件开发。文章旨在为读者提供清晰的云原生入门知识,并展示实际操作的步骤,让你能够自信地启航。
|
6天前
|
Shell Docker 容器
10-19|使用date命令: 你可以在容器内使用date命令来设置时间,但为了防止这个更改影响宿主机,你不能以特权模式运行容器。我没有加特权模式的时候,使用此命令告诉我没权限啊
10-19|使用date命令: 你可以在容器内使用date命令来设置时间,但为了防止这个更改影响宿主机,你不能以特权模式运行容器。我没有加特权模式的时候,使用此命令告诉我没权限啊
下一篇
无影云桌面