在ACK异构机密计算集群中安全部署vLLM推理服务

大语言模型(LLM)推理涉及敏感数据和核心模型资产,在非可信环境中运行时会面临数据和模型泄露风险。ACK提供的机密AI解决方案(ACK Confidential AI,简称ACK-CAI),通过整合Intel TDXGPU TEE等硬件机密计算技术,为模型推理提供端到端的安全保障。

基于ACK-CAI,可在ACK异构机密计算集群中部署vLLM模型推理服务,实现模型和数据的安全隔离与加密保护。优势如下。

  • 硬件级安全隔离:利用Intel® TDXNVIDIA GPU TEE技术构建硬件级可信执行环境(TEE),保障计算中模型与数据的机密性和完整性。

  • 可信的密钥分发:通过远程证明机制严格校验运行环境。验证通过后,独立的Trustee服务才向可信环境分发模型解密密钥。

  • 端到端数据加密:通过可信网关(TNG)建立客户端到服务端的加密信道,保护推理请求与响应数据在传输过程中的安全。

  • 对应用无侵入:基于Kubernetes Webhook自动为Pod注入安全组件,仅需通过Annotation即可为应用开启安全能力,无需修改业务代码或镜像。

工作原理

ACK-CAI通过动态注入一组名为TrustifluxSidecar容器,为业务Pod提供透明的机密计算能力。其核心安全机制基于远程证明,确保模型和数据仅在可信的环境中被访问。

image

展开查看核心组件说明

  1. ACK异构机密计算集群:基于TDX机密实例和GPU机密计算能力构建的Kubernetes集群。

  2. Trustee远程证明服务:提供运行环境可信性验证,并在验证通过后分发模型解密密钥。

  3. Runtime Trustiflux:以Sidecar形式提供的机密计算运行时组件,包含以下核心模块:

    • Attestation Agent(AA):执行远程证明与密钥获取。

    • Confidential Data Hub(CDH):处理密文数据解密。

    • Trusted Network Gateway Server(TNG Server):建立安全通信通道。

    • Cachefs:提供模型解密支持。

  4. 推理服务:承载实际的大语言模型推理任务的容器。

  5. 推理程序:客户侧访问模型推理服务的程序。

  6. Trusted Network Gateway Client(TNG Client):与集群建立安全通信通道,确保通信安全。

展开查看核心安全机制

方案主要包括两个安全机制:

  • 基于远程证明的模型密态分发:

    1. Pod启动时,Sidecar中的Attestation Agent (AA) 向Trustee远程证明服务发起请求。

    2. Trustee服务对CPU (TDX)和GPU的机密环境进行可信性验证。

    3. 验证通过后,Trustee服务将模型解密密钥安全地分发给Pod。

    4. Sidecar中的Confidential Data Hub (CDH) 与Cachefs使用该密钥解密加密的模型文件,并将其挂载到推理服务容器中。

  • 基于远程证明的端到端加密推理:

    1. 终端用户的推理程序通过本地的Trusted Network Gateway Client (TNG Client)发送请求。

    2. 请求在传输过程中全程保持加密,防止中间人攻击。

    3. 请求到达服务端后,由Sidecar中的Trusted Network Gateway (TNG) 模块解密,再交由推理服务处理。

    4. 推理结果同样由TNG加密后,安全地返回给客户端。

流程与环境指引

部署并访问一个安全的vLLM推理服务,主要分为以下阶段。

步骤

目的

环境

步骤一:准备加密模型

将推理模型加密,并上传至OSS,确保静态存储安全。

一台独立的数据准备服务器

步骤二:部署Trustee远程证明服务

部署独立的Trustee验证服务,作为信任根来校验环境并分发密钥。

一台独立的Trustee服务器

步骤三:配置ACK机密计算集群

创建并配置运行机密计算任务的Kubernetes节点。

  • 阿里云控制台(ACK、ECS)

  • ecs.gn8v-tee实例的Shell环境

步骤四:部署ACK-CAI组件

在集群中安装CAI组件,为应用动态注入安全能力。

ACK控制台

步骤五:部署vLLM模型推理服务

通过HelmvLLM服务部署到集群,通过Annotation开启机密计算保护。

已配置kubectlhelm,连接API Server的机器

步骤六:安全访问推理服务

启动客户端安全代理,通过加密通道访问已部署的模型服务。

客户端环境

步骤一:准备加密模型

本小节使用加密工具处理模型数据,并将其上传到对象存储OSS中,为后续的密态分发做准备。

执行环境:为实现安全隔离,需准备一台临时ECS实例用于下载、加密和上传模型。建议与OSS Bucket处于相同地域,以便通过内网高速上传加密后的模型数据。
模型文件较大,过程耗时较长。如需快速体验方案,跳过本小节,可选择加密模型示例文件进行试用,直接进入步骤二:部署Trustee远程证明服务

1.下载模型

在模型正式上云部署之前,您需要先对模型进行加密,然后将其上传到云存储。解密模型的密钥将由远程证明服务控制的KMS(密钥管理服务)负责托管。请在本地或可信环境中执行模型的加密操作。以部署Qwen2.5-3B-Instruct大模型为例,提供如下指导。

说明

如果您已经拥有自己的模型,请跳过本章节,直接进入2.加密模型章节。

以使用modelscope工具下载Qwen2.5-3B-Instruct模型为例(需要 Python 3.9 或更高版本),在终端中执行如下命令下载模型。

pip3 install modelscope importlib-metadata
modelscope download --model Qwen/Qwen2.5-3B-Instruct

成功执行命令后,模型将被下载到~/.cache/modelscope/hub/models/Qwen/Qwen2.5-3B-Instruct/目录下。

2.加密模型

目前支持使用Gocryptfs加密模式(基于AES256-GCM开源标准)对模型进行加密。

  1. 安装用于加密模型的工具Gocryptfs (目前只支持使用默认参数进行加密的Gocryptfs v2.4.0 版本)。您可以选择以下任意一种方式进行安装:

    方式一:(推荐)从yum源安装

    如果您使用Alinux3或者AnolisOS 23操作系统,可以直接利用yum源安装gocryptfs。

    Alinux 3
    sudo yum install gocryptfs -y
    AnolisOS 23
    sudo yum install anolis-epao-release -y
    sudo yum install gocryptfs -y

    方式二:直接下载预编译binary

    # 下载预编译Gocryptfs压缩包
    wget https://github.jobcher.com/gh/https://github.com/rfjakob/gocryptfs/releases/download/v2.4.0/gocryptfs_v2.4.0_linux-static_amd64.tar.gz
    
    # 解压并安装
    tar xf gocryptfs_v2.4.0_linux-static_amd64.tar.gz
    sudo install -m 0755 ./gocryptfs /usr/local/bin
  2. 创建Gocryptfs密钥文件,作为模型加密的密钥。在后续步骤中,您需要将该密钥上传到远程证明服务(Trustee)进行托管。

    在本方案中,使用alibaba@1688作为加密模型使用的密钥,密钥内容将存储在cachefs-password文件中。您也可以自定义密钥。在实际中,建议使用随机生成的强密钥。

    cat << EOF > ~/cachefs-password
    alibaba@1688
    EOF
  3. 使用已创建的密钥对模型进行加密。

    1. 配置明文模型的路径。

      说明

      在此处配置您刚才下载的明文模型所在路径,如果您有其他模型,请将其替换为目标模型的实际路径。

      PLAINTEXT_MODEL_PATH=~/.cache/modelscope/hub/models/Qwen/Qwen2.5-3B-Instruct/
    2. 使用Gocryptfs对模型目录树进行加密。

      加密完成后,模型将以密文形式存储在./cipher目录中。

      mkdir -p ~/mount
      cd ~/mount
      mkdir -p cipher plain
      
      # 安装Gocryptfs运行时依赖
      sudo yum install -y fuse
      
      # initialize gocryptfs
      cat ~/cachefs-password | gocryptfs -init cipher
      
      # mount to plain
      cat ~/cachefs-password | gocryptfs cipher plain
      
      # move AI model to ~/mount/plain
      cp -r ${PLAINTEXT_MODEL_PATH} ~/mount/plain

3.上传模型

您需要准备一个与即将部署的异构实例相同地域的OSS Bucket,并将加密模型上传到阿里云OSS对象存储,以便后续从异构实例拉取并部署。

以对象存储OSS为例,参考控制台快速入门创建一个存储空间(Bucket)和一个名为qwen-encrypted的目录(例如oss://examplebucket/qwen-encrypted/)。因模型文件较大,推荐使用ossbrowser将加密模型上传到该目录。

步骤二:部署Trustee远程证明服务

遵循零信任原则,任何机密计算环境在获得访问敏感数据(如模型解密密钥)的权限前,都必须通过验证。此步骤将部署独立的Trustee服务,以对模型及推理服务的运行环境进行验证,确保仅在确认环境可信时才会注入模型解密密钥,以及在客户端侧发起推理请求时验证确认环境可信。

执行环境:一台专用的、部署在ACK集群之外的独立服务器,如ECS实例或云下自有服务器。

1. 选择部署方案

基于安全隔离和信任独立原则,Trustee必须部署在ACK异构机密计算集群之外的独立服务器上。根据对信任等级的不同要求,有两种推荐方案:

信任等级:云服务提供商对Trustee部署环境的软硬件控制程度越高,则信任等级越低。这是因为Trustee服务作为远程证明和分发云上机密计算/可信计算资源的信任根,严格的信任模型下,其部署所在环境的全部软硬件需要由Trustee拥有者全权控制,保证其运行在客户可控受信任的环境中。
  • ECS实例

    可在与ACK集群相同的VPC内,额外创建一台的ECS实例来专门运行Trustee服务。既能通过阿里云内网进行高效、安全的通信,又能保证Trustee服务与机密计算环境在逻辑和物理上的完全隔离。

  • 云下自有服务器

    在对于安全要求极高的场景下,可将Trustee部署在自有的数据中心或本地服务器上,通过专线或VPN与云上VPC网络打通。可确保信任根的软硬件环境完全由您掌握,不受云厂商的影响。

使用前,请确保服务器已开通公网, 且已放行8081端口。

2. 部署Trustee服务

Trustee 已被打包为 RPM 格式,并收录于 Alibaba Cloud Linux 3.x 及 Anolis(8.x及以上) 的官方 YUM 源中。可使用系统包管理工具进行安装,其服务在安装后将由 systemd 自动托管与启动。

  1. 在准备好的服务器上执行以下命令,使用YUM源安装并启动Trustee。

    yum install trustee-1.5.2

    Trustee会自动启动并默认监听端口8081。以部署环境IP加上服务端口号,即http://<trustee-ip>:8081/api,可作为URL直接进行网络访问。

    其中,<trustee-ip>为部署了Trustee服务器IP。
    如需在生产环境中使用,建议额外为Trustee配置HTTPS访问,以增强安全性。
  2. 运行如下命令,检查服务组件健康状态。

    可执行sudo yum install -y jq安装jq工具。
    # 将<trustee-ip>替换为Trustee服务器IP
    curl http://<trustee-ip>:8081/api/services-health | jq

    预期输出中,若所有服务状态均为ok,则表示服务正常。

    {
      "gateway": {
        "status": "ok",
        "timestamp": "2025-08-26T13:46:13+08:00"
      },
      "kbs": {
        "status": "ok",
        "timestamp": "2025-08-26T13:46:13+08:00"
      },
      "as": {
        "status": "ok",
        "timestamp": "2025-08-26T13:46:13+08:00"
      },
      "rvps": {
        "status": "ok",
        "timestamp": "2025-08-26T13:46:13+08:00"
      }
    }

展开查看Trustee 服务常用管理命令

Trustee 服务由 systemd 托管,可使用 systemctl 命令进行生命周期管理。常用操作包括:

  • 启动服务:systemctl start trustee

  • 停止服务:systemctl stop trustee

  • 重启服务:systemctl restart trustee

  • 查看状态:systemctl status trustee

3. 导入模型解密密钥到Trustee实例

Trustee服务部署后,必须为其提供模型解密密钥。此密钥是后续进行远程证明和向推理服务安全分发密钥的基础。

Trustee通过将本地文件路径映射为资源ID来管理密钥。以下操作将在默认的密钥存储目录下创建并导入一个模型解密密钥。

  1. 执行以下命令,创建密钥目录(在本地目录/opt/trustee/kbs/repository/default/创建名为aliyun的子目录)并写入密钥内容。

    将 <模型解密密钥> 替换为真实的密钥字符串,本示例为alibaba@1688
    sudo mkdir -p /opt/trustee/kbs/repository/default/aliyun/
    sudo sh -c 'echo -n "<模型解密密钥>" > /opt/trustee/kbs/repository/default/aliyun/model-decryption-key'
  2. 验证密钥ID。

    完成上述操作后,存储在文件路径 .../aliyun/model-decryption-key 的密钥,其在Trustee系统中的密钥ID将对应为:kbs:///default/aliyun/model-decryption-key

步骤三:配置ACK机密计算集群

本小节为运行机密计算任务搭建一个具备硬件级安全隔离能力的底层基础设施:创建一个ACK集群,并为其添加具备Intel TDXNVIDIA TEE能力的ecs.gn8v-tee实例作为工作节点。

执行环境:ECS、ACK控制台(用于创建集群、节点池和ECS实例)以及创建好的 ecs.gn8v-tee实例的Shell环境(用于安装驱动)。
  1. 已在华北2(北京)地域创建一个ACK托管集群Pro,请参见创建ACK托管集群

  2. 为集群创建一个节点池,用于管理机密计算实例,请参见创建和管理节点池

    • 交换机:选择华北2(北京)可用区L下的虚拟交换机。

    • 扩缩容模式:保持默认配置,不开启自动弹性伸缩。

    • 实例规格:ecs.gn8v-tee.4xlarge及以上规格。

    • 操作系统:Alibaba Cloud Linux 3.2104 LTS 64位。

    • 系统盘:100GiB以上。

    • 期望节点数:节点池初始节点数量,保持默认配置,为0。

    • 节点标签(Labels):添加标签(键:ack.aliyun.com/nvidia-driver-version,值:550.144.03),指定NVIDIA驱动版本。

  3. 创建EGS机密计算实例作为集群节点,请参见自定义购买实例

    • 地域:华北2(北京)。

    • 网络和可用区:VPC与集群VPC保持一致,可用区L。

    • 实例规格:ecs.gn8v-tee.4xlarge及以上规格。

      gn8v-tee规格已默认开启CPUGPU机密计算特性,无需额外选中机密虚拟机。
    • 镜像:Alibaba Cloud Linux 3.2104 LTS 64位。

  4. 登录已创建的EGS实例,安装NVIDIA驱动和CUDA工具包,请参见步骤一:安装NVIDIA驱动和CUDA工具包

  5. EGS实例添加到此前创建的节点池中,选择添加方式为手动添加,请参见添加已有节点

步骤四:部署ACK-CAI组件

基于ACK-CAI组件,可在集群中启用对应用无侵入的机密计算能力。该组件包含一个Webhook控制器,能够根据PodAnnotation,自动为其注入实现远程证明、模型解密和安全通信所需的Sidecar容器。

执行环境:ACK控制台。
  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm

  3. 单击创建,按照页面提示安装最新版本的ACK-CAI。

    请在Helm Chart YAML中修改tag1.1.1

    安装完成后,可在Helm Chart列表查看部署状态。

步骤五:部署vLLM模型推理服务

在基础环境和安全组件就绪后,本小节使用Helm部署vLLM服务,并通过添加特定Annotation来声明该应用需要由ACK-CAI进行安全增强。

执行环境:一台已配置好kubectlhelm且能访问集群的机器。可直接使用WorkbenchCloudShell
  1. 创建一个空的Helm Chart目录。

    mkdir -p ack-cai-vllm-demo
    cd ack-cai-vllm-demo
  2. 初始化一个部署vLLM服务的Helm Chart。

    Helm ChartvLLM推理服务强制调度到机密计算GPU节点上,通过CSI插件将OSS作为模型存储。

    展开查看Helm Chart初始化脚本

    # 创建模板文件
    mkdir -p ./templates
    cat <<EOF >templates/vllm.yaml
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-oss
      namespace: {{ .Release.Namespace }}
      labels:
        alicloud-pvname: pv-oss
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadOnlyMany
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: ossplugin.csi.alibabacloud.com
        volumeHandle: pv-oss
        volumeAttributes:
          bucket: {{ .Values.oss.bucket }}
          path: {{ .Values.oss.path }}
          url: {{ .Values.oss.url }}
          otherOpts: "-o umask=022 -o max_stat_cache_size=0 -o allow_other"
        nodePublishSecretRef:
          name: oss-secret
          namespace: {{ .Release.Namespace }}
    
    ---
    
    apiVersion: v1
    kind: Secret
    metadata:
      name: oss-secret
      namespace: {{ .Release.Namespace }}
    stringData:
      akId: {{ .Values.oss.akId }}
      akSecret: {{ .Values.oss.akSecret }}
    
    ---
    
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-oss
      namespace: {{ .Release.Namespace }}
    spec:
      accessModes:
        - ReadOnlyMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-oss
    
    ---
    
    apiVersion: v1
    kind: Service
    metadata:
      name: cai-vllm-svc
      namespace: {{ .Release.Namespace }}
      {{- if .Values.loadbalancer}}
      {{- if .Values.loadbalancer.aclId }}
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status: "on"
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id: {{ .Values.loadbalancer.aclId }}
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type: "white"
      {{- end }}
      {{- end }}
      labels:
        app: cai-vllm
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
      selector:
        app: cai-vllm
      type: LoadBalancer
    
    ---
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: cai-vllm
      namespace: {{ .Release.Namespace }}
      labels:
        app: cai-vllm
        trustiflux.alibaba.com/confidential-computing-mode: "ACK-CAI"
      annotations:
        trustiflux.alibaba.com/ack-cai-options: |
    {{ .Values.caiOptions | indent 6 }}
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: node.kubernetes.io/instance-type
                operator: In
                values:
                  - ecs.gn8v-tee.4xlarge
                  - ecs.gn8v-tee.6xlarge
                  - ecs.gn8v-tee-8x.16xlarge
                  - ecs.gn8v-tee-8x.48xlarge
      containers:
        - name: inference-service
          image: egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/llm-inference:vllm0.5.4-deepgpu-llm24.7-pytorch2.4.0-cuda12.4-ubuntu22.04
          command:
            - bash
          args: ["-c", "vllm serve /tmp/model --port 8080 --host 0.0.0.0 --served-model-name qwen2.5-3b-instruct --device cuda --dtype auto"]
          ports:
            - containerPort: 8080
          resources:
            limits:
              nvidia.com/gpu: 1  # 为该容器申请1GPU卡
          volumeMounts:
            - name: pvc-oss
              mountPath: "/tmp/model"
    
      volumes:
        - name: pvc-oss
          persistentVolumeClaim:
            claimName: pvc-oss
    
    EOF
    
    # 创建Helm Chart描述文件
    cat <<EOF > ./Chart.yaml
    apiVersion: v2
    name: vllm
    description: A test based on vllm for ack-cai
    type: application
    version: 0.1.0
    appVersion: "0.1.0"
    EOF
    
    # 创建空的Helm Chart变量文件values.yaml
    touch values.yaml
    
    
    
  3. 编辑values.yaml文件,填入环境信息。

    请将<trustee-ip>替换为Trustee地址,并替换实际的OSS参数信息。
    caiOptions: |
      {
          "cipher-text-volume": "pvc-oss",
          "model-decryption-key-id" : "kbs:///default/aliyun/model-decryption-key",
          "trustee-address": "http://<trustee-ip>:8081/api"
      }
    oss:
      bucket: "conf-ai"                          # 替换为存放模型密文的OSS Bucket名称
      path: "/qwen2.5-3b-gocryptfs/"             # 替换为模型密文文件在OSS Bucket内的路径
      url: "https://oss-cn-beijing-internal.aliyuncs.com"   # 替换为OSS Endpoint
      akId: "xxxxx"                              # 替换为阿里云AK ID
      akSecret: "xxxxx"                          # 替换为阿里云AK Secret
  4. 部署vLLM服务。

    helm install vllm . -n default
  5. 检查Pod中是否成功注入了CAI组件的Sidecar容器。

    kubectl get pod cai-vllm -n default -o jsonpath='{range .status.initContainerStatuses[*]}{.name}{"\t"}{range .state.running}Running{end}{.state.*.reason}{"\n"}{end}{range .status.containerStatuses[*]}{.name}{"\t"}{range .state.running}Running{end}{.state.*.reason}{"\n"}{end}'

    预期输出中,展示如下5个容器,表明注入成功。等待容器均由PodInitializing变为Running时表明服务启动完成。

    cai-sidecar-attestation-agent   Running
    cai-sidecar-confidential-data-hub       Running
    cai-sidecar-tng Running
    cai-sidecar-cachefs     Running
    inference-service       Running
  6. 获取并记录vLLM服务的访问地址。

    kubectl get service cai-vllm-svc -o jsonpath='http://{.status.loadBalancer.ingress[0].ip}:{.spec.ports[0].port}{"\n"}'

    预期输出中将返回一个类似格式的URL(<vllm-ip>:<port>):

    http://182.XX.XX.225:8080

步骤六:安全访问推理服务

除服务端安全防护外,还需建立从客户端到服务端的端到端加密通信链路,保障推理数据在传输过程中的安全。此小节在客户端启动一个TNG安全网关,创建一个本地代理,自动加密所有发往vLLM服务的请求,并解密收到的响应。

执行环境:客户端环境,即任何需要调用vLLM推理服务的机器。
  1. 在客户端中启动TNG网关,建立安全通信通道。

    TNG网关会在客户端创建一个本地代理,用于加密发往服务端的请求。
    请将<IP>替换为Trustee地址。
    docker run -d \
        --network=host \
        confidential-ai-registry.cn-shanghai.cr.aliyuncs.com/product/tng:2.2.4 \
        tng launch --config-content '
          {
            "add_ingress": [
              {
                "http_proxy": {
                  "proxy_listen": {
                    "host": "0.0.0.0",
                    "port": 41000
                  }
                },
                "encap_in_http": {},
                "verify": {
     "as_addr": "http://<trustee-ip>:8081/api/attestation-service/",
                  "policy_ids": [
                    "default"
                  ]
                }
              }
            ]
          }
    '
  2. 通过TNG代理访问vLLM服务。

    <vllm-ip>:<port>替换为此前获取的vLLM服务的访问地址。
    # 设置http_proxy环境变量
    export http_proxy=http://127.0.0.1:41000
    
    # 发送curl请求
    curl http://<vllm-ip>:<port>/v1/completions \
      -H "Content-type: application/json" \
      -d '{
        "model": "qwen2.5-3b-instruct",
        "prompt": "San Francisco is a",
        "max_tokens": 7,
        "temperature": 0
        }'

参考信息

caiOptions配置说明

caiOptions 会接收一个JSON格式的配置对象,ACK CAIAdmission Webhook会解析这些参数,并据此向Pod中动态注入和配置必要的安全组件(如AA、CDH等),从而实现透明加解密、远程证明和可信网络等功能。

以下是一个完整的 caiOptions 配置示例。

{
  "cipher-text-volume": "pvc-oss",
  "model-decryption-key-id": "kbs:///default/aliyun/model-decryption-key",
  "trustee-address": "http://<trustee-ip>:8081/api",
  "aa-version": "1.3.1",
  "cdh-version": "1.3.1",
  "tng-version": "2.2.4",
  "cachefs-version": "1.0.7-2.6.1",
  "tdx-ra-enable": true,
  "gpu-ra-enable": true,
  "tng-http-secure-ports": [
    {
      "port": 8080
    }
  ]
}

配置项详细说明:

配置项

是否可选

说明

cipher-text-volume

必选

指定存储模型密文的PVC名称。ACK-CAI将自动在可信环境中解密此PVC挂载的数据。

model-decryption-key-id

必选

模型解密密钥的KBS URI,格式为kbs:///<repository>/<group>/<key>

trustee-address

必选

Trustee服务的地址,用于远程证明和密钥获取。

aa-version

可选

Attestation Agent(AA)组件的版本。

cdh-version

可选

Confidential Data Hub(CDH)组件的版本。

tng-version

可选

Trusted Network Gateway(TNG)组件的版本。

cachefs-version

可选

Cachefs组件的版本。

tdx-ra-enable

可选

是否开启对CPU(TDX机密实例)的远程证明支持,默认为true

gpu-ra-enable

可选

是否开启对GPU的远程证明支持,默认为true

tng-http-secure-ports

可选

配置TNG对特定HTTP端口的流量进行TLS加密。接收一个对象数组,每个对象代表一条端口加密规则。

"tng-http-secure-ports": [
  {
    "port": 8080,
    "allow-insecure-request-regexes": [
      "/api/builtin/.*"
    ]
  }
]

其中:

  • port:需要TNG进行TLS加密保护的HTTP服务端口号。

  • allow-insecure-request-regexes:一个正则表达式数组。任何发往指定PortHTTP请求,如果其路径(Path)匹配此数组中的任意一个正则表达式,TNG将不对此请求进行加密。

加密模型示例文件

以下提供了可用于测试的加密模型及其相关配置信息。这些模型存储在公共读的OSS Bucket中,并已使用指定方式加密。

点此获取加密模型文件信息

模型名称

加密方式

加密密码

公共读OSS地域

OSS Endpoint

模型存储位置

Qwen2.5-3B-Instruct

Gocryptfs

alibaba@1688

cn-beijing

oss-cn-beijing-internal.aliyuncs.com

conf-ai:/qwen2.5-3b-gocryptfs/

Sam

conf-ai:/qwen2.5-3b-sam/