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

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

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



步骤六:制作加密镜像

1. 制作加密镜像

可参考Generate encrypted container image制作加密镜像。 在本例中以 docker.io/zhouliang121/alpine-84688df7-2c0c-40fa-956b-29d8e74d16c1-gcm:latest 为例进行测试。

注意事项:在机密计算场景中,加密镜像是在guest VM中由imgae-rs 组件负责拉取,而不是在host进行拉取。 如果您出于研究的目的,想查看加密镜像的内容。请注意由于镜像是加密的,用常规的 docker ,ctr 和 crictl 都无法正常拉取。请使用skopeo工具进行镜像的拉取。参考命令如下:

skopeo --insecure-policy copy docker://docker.io/zhouliang121/alpine-84688df7-2c0c-40
fa-956b-29d8e74d16c1-gcm:latest oci:test

2. 部署镜像密钥

mkdir -p /opt/verdictd/keys/ && echo 1111111111111111111111111111111 > /opt/
verdictd/keys/84688df7-2c0c-40fa-956b-29d8e74d16c1

3. 修改镜像policy

以docker.io/zhouliang121/alpine-84688df7-2c0c-40fa-956b-29d8e74d16c1-gcm:latest 为例:

cat <<EOF | sudo tee /opt/verdictd/image/policy.json
{
 "default": [{"type": "insecureAcceptAnything"}],
 "transports": {
 "docker": {
 "docker.io/zhouliang121/":
 [{"type": "insecureAcceptAnything"}]
 }
 }
}
EOF

4. 启动verdictd

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

当Verdictd启动后,Verdictd在端口监听地址0.0.0.0:20002监听来自attestation agent的远程证明请求。

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

略。

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


步骤七:部署加密镜像

1. 创建RuntimeClass对象kata

用户可以使用RuntimeClass为pod指定不同的运行时,这里使用kata作为验证时使用的运行时。

在集群中执行以下命令,创建RuntimeClass对象kata。

cat <<-EOF | kubectl apply -f -
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
 name: kata
handler: kata
EOF

2. 部署pod

如果 pod 的 runtimeClassName 设置为 kata,CRI 插件会使用 Kata Containers 运行时运行 pod。 执行

以下命令,部署名称为alpine的pod。

cat <<-EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
 name: nginx-sandbox
spec:
 runtimeClassName: kata
 containers:
 - image: docker.io/zhouliang121/alpine-84688df7-2c0c-40fa-956b-29d8e74d16c1-gcm:latest
 command:
 - top
imagePullPolicy: IfNotPresent
name: alpine
restartPolicy: Never
EOF

3. 测试加密镜像是否部署成功

执行以下命令,查看加密镜像是否部署成功:

kubectl get pods

预期输出:

NAME READY STATUS RESTARTS AGE
nginx-sandbox 1/1 Running 0 30s


相关实践学习
CentOS 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
相关文章
|
2月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
370 181
|
1月前
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
ACK One注册集群已正式支持ACS(容器计算服务)算力,为企业的容器化工作负载提供更多选择和更强大的计算能力。
|
24天前
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
28 10
|
25天前
|
人工智能 安全 API
容器化AI模型的安全防护实战:代码示例与最佳实践
本文基于前文探讨的容器化AI模型安全威胁,通过代码示例展示如何在实际项目中实现多层次的安全防护措施。以一个基于TensorFlow的图像分类模型为例,介绍了输入验证、模型加密、API认证和日志记录的具体实现方法,并结合最佳实践,如使用安全容器镜像、限制权限、网络隔离等,帮助构建更安全的AI服务。
|
25天前
|
人工智能 Prometheus 监控
容器化AI模型的监控与治理:确保模型持续稳定运行
在前几篇文章中,我们探讨了AI模型的容器化部署及构建容器化机器学习流水线。然而,将模型部署到生产环境只是第一步,更重要的是确保其持续稳定运行并保持性能。为此,必须关注容器化AI模型的监控与治理。 监控和治理至关重要,因为AI模型在生产环境中面临数据漂移、概念漂移、模型退化和安全风险等挑战。全面的监控涵盖模型性能、数据质量、解释性、安全性和版本管理等方面。使用Prometheus和Grafana可有效监控性能指标,而遵循模型治理最佳实践(如建立治理框架、定期评估、持续改进和加强安全)则能进一步提升模型的可信度和可靠性。总之,容器化AI模型的监控与治理是确保其长期稳定运行的关键。
|
22天前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
24天前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
1月前
|
PHP Docker 容器
如何在宿主主机运行容器中的php守护进程
在Docker容器中同时运行多个程序(如Nginx+PHP+Ftp)时,需用`docker exec`命令启动额外服务。首先通过`php -v`查看PHP版本,再用`which php-fpm7.4`确认PHP安装路径,通常返回`/usr/sbin/php-fpm7.4`。最后直接运行该路径启动PHP-FPM服务,确保其正常工作。
56 14
|
2月前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
3月前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
221 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档

热门文章

最新文章