机密容器服务(Jeddak Confidential Kubernetes,JCK)是一套基于可信执行环境(TEE)实现的容器管理服务,旨在保证用户容器服务在云上的安全性。
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
),需通过外部导入方式托管到TKS中。cat secret-key.bin | xxd -p -c 10000 > image-encrypt-key.txt
# 示例:ed362e88bf94f2746f60d40fe34ef2ad892e4381d1c11d4e00f8bde9d7af8750
wrap-key.json
,格式如下。{
"AppID": "test-accont", #火山引擎账户ID
"RingID": "8a5b796d-f594-4d68-ae7a-c1c1f41a1a88", #密钥环ID
"KeyID": "b257e194-439b-49a3-bff8-3f7258e87ef1", #密钥ID
"Key": "ed362e88bf94f2746f60d40fe34ef2ad892e4381d1c11d4e00f8bde9d7af8750" #Hex格式的密钥
}
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
./skopeo.sh copy docker://<镜像地址> oci:image-plaintext
# 参考示例:
# ./skopeo.sh copy docker://quay.io/skopeo/stable:latest oci:image-plaintext
./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...
上传成功后的镜像可通过基线管理服务托管镜像基线,并点击「镜像发布」创建机密容器服务。
创建成功后可在列表查看机密容器运行状态、服务IP等信息;也可点击容器名称,进入容器详情,可查看更多信息。