You need to enable JavaScript to run this app.
导航
机密容器服务
最近更新时间:2025.02.08 15:28:47首次发布时间:2025.01.10 20:58:29

概述

机密容器服务(Jeddak Confidential Kubernetes,JCK)是一套基于可信执行环境(TEE)实现的容器管理服务,旨在保证用户容器服务在云上的安全性。

Image

准备工作

  • 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中。

加密镜像

  • 对加密密钥编码为Hex格式
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格式的密钥
}

Image

  • 准备镜像加密配置文件
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

上传镜像

  • 获取火山镜像仓库用户名和密钥,将加密镜像上传至火山镜像仓库。

Image

Image

Image

./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...

上传成功后的镜像可通过基线管理服务托管镜像基线,并点击「镜像发布」创建机密容器服务。

创建机密容器

  1. 进入机密容器服务管理页面点击「创建机密容器」;
  2. 合法输入创建容器所需必填参数点「确定」提交执行,可在机密容器列表查看到创建成功的机密容器数据。

创建成功后可在列表查看机密容器运行状态、服务IP等信息;也可点击容器名称,进入容器详情,可查看更多信息。

Image