Inferensi Large Language Model (LLM) melibatkan data sensitif dan aset model inti yang berisiko terpapar saat dijalankan di lingkungan tidak tepercaya. Container Service for Kubernetes (ACK) Confidential AI (ACK-CAI) menyediakan keamanan ujung ke ujung untuk inferensi model dengan mengintegrasikan teknologi komputasi rahasia berbasis perangkat keras seperti Intel Trust Domain Extensions (TDX) dan Lingkungan Eksekusi Tepercaya GPU (TEE).
ACK-CAI memungkinkan Anda menerapkan layanan inferensi vLLM dalam kluster komputasi rahasia heterogen ACK, memberikan isolasi aman dan perlindungan terenkripsi untuk model dan data Anda. Keuntungan utama:
Isolasi keamanan tingkat perangkat keras: Membangun TEE berbasis perangkat keras menggunakan Intel® TDX dan NVIDIA GPU TEE, memastikan kerahasiaan dan integritas model serta data selama komputasi.
Distribusi kunci tepercaya: Menggunakan mekanisme verifikasi jarak jauh untuk secara ketat memverifikasi integritas lingkungan eksekusi. Hanya setelah verifikasi berhasil, layanan trustee terpisah akan melepaskan kunci dekripsi model ke lingkungan tepercaya.
Enkripsi data ujung ke ujung: Membangun saluran terenkripsi dari klien ke server melalui Gateway Jaringan Tepercaya (TNG), melindungi permintaan dan tanggapan inferensi selama transmisi.
Tidak mengganggu aplikasi: Secara otomatis menyuntikkan komponen keamanan ke dalam pod menggunakan webhook Kubernetes. Anda dapat mengaktifkan kemampuan komputasi rahasia untuk aplikasi Anda dengan anotasi sederhana tanpa memerlukan perubahan pada kode bisnis atau gambar kontainer.
Cara kerjanya
ACK-CAI memungkinkan kemampuan komputasi rahasia transparan dengan menyuntikkan secara dinamis serangkaian kontainer sidecar bernama Trustiflux ke dalam pod aplikasi Anda. Mekanisme keamanan inti didasarkan pada verifikasi jarak jauh, yang memastikan bahwa model dan data hanya diakses dalam lingkungan tepercaya yang diverifikasi.
Proses dan panduan lingkungan
Menerapkan dan mengakses layanan inferensi vLLM yang aman melibatkan tahapan berikut:
Langkah | Tujuan | Lingkungan |
Enkripsi model inferensi dan unggah ke Layanan Penyimpanan Objek (OSS) untuk memastikan kerahasiaannya saat diam. | Server terpisah untuk persiapan data. | |
Terapkan layanan trustee mandiri untuk bertindak sebagai akar kepercayaan untuk memverifikasi lingkungan dan mendistribusikan kunci. | Server trustee terpisah. | |
Buat dan konfigurasikan node Kubernetes untuk menjalankan tugas komputasi rahasia. |
| |
Instal komponen CAI di kluster untuk mengaktifkan penyuntikan dinamis kemampuan keamanan. | Konsol ACK | |
Terapkan layanan vLLM ke kluster menggunakan Helm dan aktifkan perlindungan komputasi rahasia dengan anotasi. | Mesin dengan kubectl dan Helm yang dikonfigurasi, serta terhubung ke server API. | |
Mulai proxy keamanan sisi klien untuk mengakses layanan model yang diterapkan melalui saluran terenkripsi. | Lingkungan klien |
Langkah 1: Persiapkan model terenkripsi
Langkah ini mencakup cara mengenkripsi data model Anda dan mengunggahnya ke OSS sebagai persiapan untuk distribusi yang aman.
Lingkungan eksekusi: Untuk memastikan keamanan, lakukan langkah-langkah ini pada instans ECS sementara dan terisolasi. Untuk performa optimal, instans ini harus berada di wilayah yang sama dengan bucket OSS Anda untuk memanfaatkan unggahan jaringan internal berkecepatan tinggi.
File model besar, dan proses ini bisa memakan waktu lama. Untuk menguji solusi dengan cepat, Anda dapat melewati langkah ini. Gunakan file model terenkripsi contoh dan lanjutkan ke Langkah 2: Terapkan layanan verifikasi jarak jauh trustee.
1. Unduh model
Sebelum menerapkan model, Anda harus terlebih dahulu mengenkripsinya, lalu mengunggahnya ke penyimpanan cloud. Kunci untuk mendekripsi model akan dihosting oleh KMS, dikendalikan oleh layanan verifikasi jarak jauh. Lakukan operasi enkripsi model di lingkungan lokal atau tepercaya. Solusi ini menunjukkan cara menerapkan Qwen2.5-3B-Instruct sebagai contoh.
Jika Anda sudah memiliki model, Anda tidak perlu mengunduh satu lagi. Lewati ke 2. Enkripsi model.
Jalankan perintah berikut di terminal gunakan alat ModelScope untuk mengunduh Qwen2.5-3B-Instruct(memerlukan Python 3.9 atau lebih tinggi).
pip3 install modelscope importlib-metadata
modelscope download --model Qwen/Qwen2.5-3B-InstructPerintah ini akan mengunduh model ke ~/.cache/modelscope/hub/models/Qwen/Qwen2.5-3B-Instruct/.
2. Enkripsi model
Solusi ini mendukung enkripsi model menggunakan mode enkripsi gocryptfs, yang didasarkan pada standar AES-256-GCM open-source.
Instal alat Gocryptfs; saat ini hanya Gocryptfs V2.4.0 dengan parameter default yang didukung. Pilih salah satu metode instalasi berikut:
Metode 1: (Direkomendasikan) Instal dari sumber yum
Jika Anda menggunakan Alinux3 atau AnolisOS 23 sistem operasi, Anda dapat menginstal gocryptfs menggunakan sumber yum.
Alinux 3
sudo yum install gocryptfs -yAnolisOS 23
sudo yum install anolis-epao-release -y sudo yum install gocryptfs -yMetode 2: Unduh binari pra-kompilasi langsung
# Unduh paket Gocryptfs pra-kompilasi 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 # Ekstrak dan instal tar xf gocryptfs_v2.4.0_linux-static_amd64.tar.gz sudo install -m 0755 ./gocryptfs /usr/local/binBuat file kunci Gocryptfs sebagai kunci untuk enkripsi model. Di langkah selanjutnya, Anda perlu mengunggah kunci ini ke Trustee.
Dalam solusi ini,
alibaba@1688adalah kunci untuk enkripsi, dan akan disimpan dalam filecachefs-password. Anda juga dapat menyesuaikan kunci. Namun, dalam praktiknya, sebaiknya gunakan kunci kuat yang dihasilkan secara acak.cat << EOF > ~/cachefs-password alibaba@1688 EOFGunakan kunci untuk mengenkripsi model.
Konfigurasikan jalur model teks biasa.
CatatanKonfigurasikan jalur model teks biasa yang baru saja Anda unduh, atau ganti dengan jalur model Anda sendiri.
PLAINTEXT_MODEL_PATH=~/.cache/modelscope/hub/models/Qwen/Qwen2.5-3B-Instruct/Gunakan Gocryptfs untuk mengenkripsi struktur direktori model.
Setelah enkripsi, model akan disimpan dalam bentuk terenkripsi di direktori
./cipher.mkdir -p ~/mount cd ~/mount mkdir -p cipher plain # Instal dependensi runtime Gocryptfs sudo yum install -y fuse # inisialisasi gocryptfs cat ~/cachefs-password | gocryptfs -init cipher # mount ke plain cat ~/cachefs-password | gocryptfs cipher plain # pindahkan model AI ke ~/mount/plain cp -r ${PLAINTEXT_MODEL_PATH} ~/mount/plain
3. Unggah model
Siapkan bucket OSS yang berada di wilayah yang sama dengan instans heterogen yang akan digunakan. Unggah model terenkripsi ke bucket OSS tersebut. Dengan langkah ini, Anda dapat menarik dan menerapkan data model dari instans heterogen untuk operasi berikutnya.
Lihat panduan Mulai menggunakan konsol OSS untuk membuat ruang penyimpanan (bucket) dan direktori bernama
Lihat panduan Mulai menggunakan konsol OSS untuk membuat ruang penyimpanan (bucket) dan direktori bernama qwen-encrypted (misalnya, oss://examplebucket/qwen-encrypted/). Karena ukuran file model yang besar, disarankan menggunakan ossbrowser untuk mengunggah model terenkripsi ke direktori ini.
Langkah 2: Terapkan layanan verifikasi jarak jauh trustee
Mengikuti prinsip Zero Trust, lingkungan komputasi rahasia apa pun harus diverifikasi sebelum dapat mengakses data sensitif, seperti kunci dekripsi model.
Layanan trustee mandiri, yang akan Anda terapkan dalam langkah ini, bertindak sebagai otoritas pusat untuk proses verifikasi ini. Ini bertanggung jawab untuk:
Memverifikasi lingkungan eksekusi model dan layanan inferensi.
Memastikan bahwa kunci dekripsi model dirilis hanya ke lingkungan tepercaya yang diverifikasi.
Mengizinkan klien untuk mengonfirmasi keandalan layanan saat memulai permintaan inferensi.
Lingkungan eksekusi: Server khusus yang diterapkan di luar kluster ACK, seperti instans ECS atau server lokal.
1. Pilih solusi penerapan
Berdasarkan tingkat kepercayaan yang Anda butuhkan, pilih di antara solusi berikut:
Instans ECS
Menerapkan layanan trustee pada instans ECS terpisah dalam VPC yang sama memberikan isolasi logis dan komunikasi jaringan internal yang cepat dan aman dengan kluster ACK Anda.
Server lokal
Untuk keamanan maksimal, terapkan layanan trustee di pusat data Anda dan hubungkan ke virtual private cloud (VPC) Anda melalui jalur sewa atau VPN. Ini memastikan bahwa Anda memiliki kontrol penuh atas lingkungan perangkat keras dan perangkat lunak akar kepercayaan, independen dari penyedia cloud.
Sebelum Anda mulai, pastikan server memiliki akses Internet yang diaktifkan, dan port 8081 terbuka.
2. Terapkan layanan trustee
Instal paket RPM trustee dari repositori YUM resmi (tersedia di Alibaba Cloud Linux 3.x dan Anolis 8.x+).
yum install trustee-1.5.2Layanan akan mulai secara otomatis dan mendengarkan di port 8081. Anda dapat mengaksesnya langsung melalui jaringan menggunakan URL
http://<trustee-ip>:8081/api.Ganti
<trustee-ip>dengan alamat IP server tempat trustee diterapkan.Untuk lingkungan produksi, konfigurasikan akses HTTPS untuk trustee untuk meningkatkan keamanan.
Verifikasi kesehatan layanan.
Jalankan
sudo yum install -y jquntuk menginstal alat jq.# Ganti <trustee-ip> dengan alamat IP server trustee curl http://<trustee-ip>:8081/api/services-health | jqTanggapan sukses akan menampilkan status semua komponen sebagai
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" } }
3. Impor kunci dekripsi model ke instans trustee
Setelah layanan Trustee diterapkan, Anda harus menyediakannya dengan kunci dekripsi model. Kunci ini diperlukan untuk proses verifikasi jarak jauh dan distribusi kunci aman.
Trustee mengelola kunci dengan memetakan jalur file lokal ke ID sumber daya. Langkah-langkah berikut membuat dan mengimpor kunci dekripsi model di folder penyimpanan default.
Buat direktori dan file untuk menyimpan kunci dekripsi di server trustee. Ini membuat subdirektori bernama
aliyundi folder lokal/opt/trustee/kbs/repository/default/.Ganti
<model-decryption-key>dengan kunci yang Anda gunakan di Langkah 1. Dalam contoh ini, kuncinya adalahalibaba@1688.sudo mkdir -p /opt/trustee/kbs/repository/default/aliyun/ sudo sh -c 'echo -n "<model-decryption-key>" > /opt/trustee/kbs/repository/default/aliyun/model-decryption-key'Verifikasi ID kunci.
Kunci sekarang disimpan di jalur file
.../aliyun/model-decryption-keydengan ID kuncikbs:///default/aliyun/model-decryption-keydalam sistem trustee.
Langkah 3: Konfigurasikan kluster komputasi rahasia ACK
Dalam langkah ini, Anda akan membangun infrastruktur dasar: kluster ACK dengan instans ecs.gn8v-tee yang menyediakan kemampuan komputasi rahasia Intel TDX dan NVIDIA TEE sebagai node pekerja.
Lingkungan eksekusi: Konsol ECS dan ACK (untuk membuat kluster, kelompok node, dan instans ECS), serta lingkungan shell dari instans ecs.gn8v-tee yang dibuat (untuk menginstal driver).Buat kluster ACK Pro yang dikelola di wilayah China (Beijing).
Buat kelompok node untuk kluster untuk mengelola instans komputasi rahasia.
vSwitch: Pilih vSwitch virtual di Zona L wilayah China (Beijing).
Scaling Mode: Pertahankan konfigurasi default. Jangan aktifkan penskalaan otomatis.
Instance Type:
ecs.gn8v-tee.4xlargeatau spesifikasi lebih tinggi.Operating System: Alibaba Cloud Linux 3.2104 LTS 64-bit.
System Disk: 100 GiB atau lebih besar.
Expected Nodes: Jumlah awal node dalam kelompok node. Pertahankan konfigurasi default yaitu 0.
Node Labels: Tambahkan label (Key:
ack.aliyun.com/nvidia-driver-version, Value:550.144.03) untuk menentukan versi driver NVIDIA.
Buat instans Layanan GPU Elastis (EGS) komputasi rahasia untuk berfungsi sebagai node kluster. Lihat Buat instans pada tab Peluncuran Kustom.
Region: China (Beijing).
Network and Zone: VPC harus sama dengan VPC kluster. Contoh ini menggunakan salah satu di Zona L.
Instance:
ecs.gn8v-tee.4xlargeatau spesifikasi lebih tinggi.Tipe instans
gn8v-teememiliki fitur komputasi rahasia CPU dan GPU yang diaktifkan secara default. Anda tidak perlu memilih VM rahasia.Image: Alibaba Cloud Linux 3.2104 LTS 64-bit.
Masuk ke instans EGS yang dibuat dan instal driver NVIDIA dan toolkit CUDA.
Tambahkan instans EGS ke kelompok node yang dibuat. Pilih Manual sebagai metode untuk menambahkan instans. Lihat Tambahkan node yang ada.
Langkah 4: Terapkan komponen ACK-CAI
Komponen ACK-CAI mencakup pengontrol webhook yang secara otomatis menyuntikkan kontainer sidecar yang diperlukan ke dalam pod berdasarkan anotasi mereka. Sidecar ini menangani verifikasi jarak jauh, dekripsi model, dan komunikasi aman.
Lingkungan eksekusi: Konsol ACK.
Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel navigasi di sebelah kiri, pilih .
Klik Deploy dan instal versi terbaru ack-cai.
Di langkah Parameters, ubah
tagmenjadi1.1.1di template YAML.Sekarang Anda dapat melihat status penyebaran di daftar bagan Helm.
Langkah 5: Terapkan layanan inferensi vLLM
Terapkan layanan vLLM menggunakan Helm dan tambahkan anotasi tertentu untuk mengaktifkan perlindungan komputasi rahasia.
Lingkungan eksekusi: Mesin dengan kubectl dan Helm yang dikonfigurasi dan dapat mengakses kluster. Anda dapat menggunakan Workbench atau CloudShell.
Buat folder baru untuk bagan Helm.
mkdir -p ack-cai-vllm-demo cd ack-cai-vllm-demoInisialisasi bagan Helm untuk menerapkan layanan vLLM.
Bagan Helm ini mengonfigurasi layanan inferensi vLLM dengan afinitas node untuk memastikan hanya berjalan pada node komputasi rahasia yang dipercepat GPU. Ini juga menggunakan plugin CSI untuk memasang bucket OSS untuk penyimpanan model.
Edit file
values.yamluntuk memberikan informasi spesifik lingkungan Anda.Ganti <trustee-ip> dengan alamat trustee dan ganti konfigurasi OSS dengan nilai aktual Anda.
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" # Ganti dengan nama bucket OSS yang menyimpan model terenkripsi. path: "/qwen2.5-3b-gocryptfs/" # Ganti dengan jalur ke file model terenkripsi di Bucket OSS. url: "https://oss-cn-beijing-internal.aliyuncs.com" # Ganti dengan titik akhir OSS. akId: "xxxxx" # Ganti dengan ID AccessKey Alibaba Cloud Anda. akSecret: "xxxxx" # Ganti dengan Rahasia AccessKey Alibaba Cloud Anda.Terapkan layanan vLLM menggunakan Helm.
helm install vllm . -n defaultVerifikasi bahwa kontainer sidecar komponen CAI telah berhasil disuntikkan ke dalam pod.
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}'Output yang diharapkan menunjukkan lima kontainer berikut, artinya penyuntikan berhasil. Tunggu semua kontainer berubah dari
PodInitializingmenjadiRunning. Ini menunjukkan bahwa layanan telah dimulai.cai-sidecar-attestation-agent Running cai-sidecar-confidential-data-hub Running cai-sidecar-tng Running cai-sidecar-cachefs Running inference-service RunningDapatkan dan catat titik akhir layanan vLLM.
kubectl get service cai-vllm-svc -o jsonpath='http://{.status.loadBalancer.ingress[0].ip}:{.spec.ports[0].port}{"\n"}'Output yang diharapkan adalah URL dalam format
<vllm-ip>:<port>.http://182.XX.XX.225:8080
Langkah 6: Akses layanan inferensi secara aman
Untuk memastikan keamanan ujung ke ujung, Anda harus menggunakan gateway TNG klien untuk memproksi permintaan Anda. Proxy ini secara otomatis mengenkripsi semua permintaan yang dikirim ke layanan vLLM dan mendekripsi tanggapan.
Lingkungan eksekusi: Mesin klien tempat Anda ingin memanggil layanan inferensi.
Mulai gateway TNG di klien untuk membangun saluran komunikasi aman.
Gateway TNG membuat proxy lokal di klien untuk mengenkripsi permintaan yang dikirim ke server.
Ganti <IP> dengan alamat 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" ] } } ] } 'Akses layanan vLLM melalui proxy TNG.
Ganti
<vllm-ip>:<port>dengan titik akhir layanan vLLM yang Anda peroleh sebelumnya.# Set variabel lingkungan http_proxy export http_proxy=http://127.0.0.1:41000 # Kirim permintaan 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 }'
Referensi
Mengonfigurasi caiOptions
Anotasi caiOptions menerima objek konfigurasi dalam format JSON. Webhook admission ACK CAI mengurai parameter ini dan menggunakannya untuk menyuntikkan dan mengonfigurasi komponen keamanan secara dinamis, seperti AA dan CDH, ke dalam pod. Ini mengaktifkan fitur seperti enkripsi dan dekripsi transparan, verifikasi jarak jauh, dan jaringan tepercaya.
Berikut adalah contoh lengkap konfigurasi 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
}
]
}Tabel berikut merinci konfigurasi:
Parameter | Diperlukan | Deskripsi |
| Ya | Nama klaim volume persisten (PVC) yang menyimpan model terenkripsi. ACK-CAI secara otomatis mendekripsi data yang dipasang dari PVC ini di lingkungan tepercaya. |
| Ya | URI Key Broker Service (KBS) dari kunci dekripsi model, dalam format |
| Ya | Alamat layanan trustee, digunakan untuk verifikasi jarak jauh dan pengambilan kunci. |
| Tidak | Versi komponen AA. |
| Tidak | Versi komponen CDH. |
| Tidak | Versi komponen TNG. |
| Tidak | Versi komponen Cachefs. |
| Tidak | Menentukan apakah akan mengaktifkan dukungan verifikasi jarak jauh untuk CPU (instans rahasia TDX). Default: |
| Tidak | Menentukan apakah akan mengaktifkan dukungan verifikasi jarak jauh untuk GPU. Default: |
| Tidak | Mengonfigurasi TNG untuk menggunakan TLS untuk mengenkripsi lalu lintas untuk port HTTP tertentu. Ini menerima array objek, di mana setiap objek mewakili aturan enkripsi port.
|
File model terenkripsi contoh
Untuk tujuan pengujian, Anda dapat menggunakan model terenkripsi berikut yang tersedia secara publik. Mereka disimpan di bucket OSS dan telah dienkripsi menggunakan metode yang ditentukan.