说明
将本地加密【容器镜像】上传并发布到PCC机密容器后,完成服务部署,并提供密文接口供端云互信服务联调测试。
创建可信密钥环:进入【可信密钥服务】模块,点击「创建可信密钥环」按钮;
<king_id>
创建可信密钥:点击【密钥环名称】,进入密钥列表页面,点击「创建密钥」按钮;
参数详细说明

<key_id>
和【导入参数】<tks-import-material.txt>
依赖环境
依赖程序
python3.7+
cryptography
(安装pip install cryptography~=38.0.4
)导入密钥
secret-key.bin
# 作为示例,以下命令将会生成一个长度为16 Bytes (128bits) 的随机密钥到secret-key.bin文件中 openssl rand -out secret-key.bin 16 # 作为示例,以下命令将会生成一个长度为32 Bytes (256 bits) 的随机密钥到secret-key.bin文件中 openssl rand -out secret-key.bin 32
tks-import-material.txt
,具体获取位置如下:获取密钥导入脚本,并执行脚本
### 获取密钥导入脚本 wget https://jeddak-cc-infra.tos-cn-beijing.volces.com/tks/tks-client-script.py ### 执行密钥导入脚本 python3 tks-client-script.py -s=secret-key.bin -m=tks-import-material.txt ##### 输出结果 ## 导入参数 client-import-param.txt ## 加密密钥 client-encrypted-key.txt
上面将会产生密钥导入参数client-import-param.txt
以及加密密钥client-encrypted-key.txt
,通过PCC-可信密钥服务页面找到对应的密钥名称,分别填写如上素材,完成密钥导入。
环境准备
skopeo
软件
quay.io/skopeo/stable:latest
keyprovider
软件
wget https://jck-components.tos-cn-beijing.volces.com/runc/keyprovider/tks-keyprovider chmod +x tks-keyprovider
secret-key.bin
),加密容器镜像
cat secret-key.bin | xxd -p -c 10000 > image-encrypt-key.txt # 示例:ed362e88bf94f2746f60d40fe34ef2ad892e4381d1c11d4e00f8bde9d7af8750
第2步:创建密钥说明文件wrap-key.json
,在其中填入如下的内容
{ "AppID": "test-accont", ## PCC登陆用户名 "RingID": "8a5b796d-f594-4d68-ae7a-c1c1f41a1a88",##密钥环ID "KeyID": "b257e194-439b-49a3-bff8-3f7258e87ef1",##密钥ID "Key": "ed362e88bf94f2746f60d40fe34ef2ad892e4381d1c11d4e00f8bde9d7af8750"##Hex格式的密钥 }
第3步:【**构建镜像加密脚本和配置文件】,**在本地linux系统下执行以下两个命令脚本:
cat << EOF > ocicrypt.conf { "key-providers": { "tks-keyprovider": { "cmd": { "path": "/workspace$(pwd)/tks-keyprovider", "args": ["--wrap", "/workspace$(pwd)/wrap-key.json"] } } } } EOF
cat << EOF > skopeo.sh #!/bin/bash docker run --rm -it --net=host \\ -e OCICRYPT_KEYPROVIDER_CONFIG=/workspace/`pwd`/ocicrypt.conf \\ -v `pwd`:/workspace/`pwd` \\ -w /workspace/`pwd` \\ quay.io/skopeo/stable \\ "\$@" EOF chmod +x skopeo.sh
第4步:拷贝私有镜像到本地
./skopeo.sh copy docker://<镜像地址> oci:image-plaintext # 参考示例: # ./skopeo.sh copy docker://quay.io/skopeo/stable:latest oci:image-plaintext
第5步:加密镜像
./skopeo.sh copy \ oci:image-plaintext \ oci:image-encrypted \ --encryption-key provider:tks-keyprovider
<仓库用户名>
、<临时密钥>
和<火山镜像仓库>
**网络地址**<火山镜像仓库>
**网络地址
上传火山镜像仓库
./skopeo.sh copy \ oci:image-encrypted \ docker://<火山镜像仓库>:<自定义版本号> \ --dest-username=<仓库用户名> \ --dest-password=<临时密钥> # 参考示例 # ./skopeo.sh copy \ # oci:image-encrypted \ # docker://test-repo-cn-beijing.cr.volces.com/test-namespace/test-oci/dmeo:v1 \ # --dest-username=test-account \ # --dest-password=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik5IRjc6NktBSzpDV...
**<镜像地址>
**如下:
选择已注册完成镜像基线,点击操作列对应的「镜像发布」按钮,进行镜像容器发布部署,
填写参数说明如下:
提交后,在【机密容器服务】模块下的【机密容器】列表页面可以查看已创建的机密容器;
进入【远程证明服务】模块,选择刚刚创建的机密容器证明策略,点击【远程证明测试】按钮
进行远程证明测试
查看远程证明状态和下载远程证明报告
说明
按照客户实际业务进行业务服务与端侧调试;