Inclavare Containers是工业界首个面向机密计算场景的开源容器运行时,它在基于硬件的可信执行环境中启动受保护的容器,以防止不受信任的实体(例如:云服务商)访问您的敏感数据。在基于SGX的机密计算环境中,您可以基于Inclavare Containers灵活、便捷地部署机密容器。本文主要为您介绍如何在Docker中基于Inclavare Containers部署和使用机密容器(简称Inclavare Containers机密容器)。
前提条件
- 已创建一台使用Alibaba Cloud Linux镜像的安全增强型实例。
创建安全增强型实例时,您需要选择特定的镜像以生效安全特性。更多信息,请参见创建安全增强型实例。例如,创建ECS实例时,实例规格选择安全增强型ecs.g7t、公共镜像选择Alibaba Cloud Linux 3.2104 64位 UEFI版进行创建。
- 在已创建的安全增强型实例中构建SGX加密计算环境。具体操作,请参见构建SGX加密计算环境。
背景信息
在Docker中虽然可以使用常规技术部署和使用机密容器,但需要您掌握机密计算领域的专业知识,并按照SGX SDK应用开发规范开发和构建镜像。而Inclavare Containers能帮您省去这些复杂过程,降低机密计算的使用门槛,灵活对接不同类型的Enclave运行时形态,同时保持和普通容器一样的使用体验。更多信息,请参见inclavare-containers。
操作导航
在Alibaba Cloud Linux操作系统中基于Docker使用Inclavare Containers机密容器的操作步骤如下:
步骤一:搭建Inclavare Containers机密容器运行环境
步骤二:为Docker配置OCI运行时rune
步骤三:构建Inclavare Containers机密容器镜像
步骤四:使用Inclavare Containers机密容器
运行以下命令,运行Inclavare Containers机密容器,并查看容器运行日志。
docker run -it --rm --runtime=rune \
-e ENCLAVE_TYPE=intelSgx \
-e ENCLAVE_RUNTIME_PATH=/opt/occlum/build/lib/libocclum-pal.so.0.21.0 \
-e ENCLAVE_RUNTIME_ARGS=occlum_instance \
-e ENCLAVE_RUNTIME_LOGLEVEL="off" \
-e OCCLUM_RELEASE_ENCLAVE=1 \
occlum-app
以上命令中相关参数说明如下:- ENCLAVE_TYPE:指定要使用的Enclave硬件类型,当前验证环境请选择类型为intelSgx。
- ENCLAVE_PATH:指定要启动的Enclave运行时PAL的路径。
- ENCLAVE_ARGS:指定Enclave运行时PAL的特定参数。如果有多个参数,需用半角逗号(,)分隔。
- ENCLAVE_RUNTIME_LOGLEVEL:指定Enclave运行时的日志等级。
- OCCLUM_RELEASE_ENCLAVE:指定Enclave类型。设置为0表示为Debug Enclave,设置为1表示为Production Enclave。
输出结果如下所示,如果容器日志每隔5s打印一行
Hello World!
,则表示Inclavare Containers环境安装成功且机密容器也被正常运行。Hello World!
Hello World!
Hello World!