Mulai cepat: Menyebarkan kluster AKS dengan simpul agen Intel SGX komputasi rahasia dengan menggunakan Azure CLI
Pada mulai cepat ini, Anda akan menggunakan Azure CLI untuk menyebarkan kluster Azure Kubernetes Service (AKS) dengan simpul mesin virtual enclave-aware (DCsv2/DCSv3). Anda kemudian akan menjalankan aplikasi Halo Dunia sederhana di enklave. Anda juga dapat memprovisikan kluster dan menambahkan simpul komputasi rahasia dari portal Microsoft Azure, tetapi mulai cepat ini berfokus pada Azure CLI.
AKS adalah layanan Kubernetes terkelola yang memungkinkan pengembang atau operator kluster untuk dengan cepat menyebarkan dan mengelola kluster. Untuk mempelajari lebih lanjut, baca pengantar AKS dan ringkasan simpul rahasia AKS.
Fitur simpul komputasi rahasia meliputi:
- Simpul pekerja Linux yang mendukung kontainer Linux.
- Komputer virtual generasi 2 (VM) dengan simpul komputer virtual Ubuntu 18.04.
- CPU berkemampuan Intel SGX untuk membantu menjalankan kontainer Anda dalam enklave rahasia terlindungi yang memanfaatkan Memori Cache Halaman Terenkripsi (EPC). Untuk mengetahui informasi selengkapnya, lihat Tanya jawab umum untuk komputasi rahasia Azure.
- Driver Intel SGX DCAP yang telah dipasang sebelumnya pada simpul komputasi rahasia. Untuk mengetahui informasi selengkapnya, lihat Tanya jawab umum untuk komputasi rahasia Azure.
Catatan
VM DCsv2/DCsv3 menggunakan perangkat keras khusus yang menjadi ketersediaan wilayah subjek. Untuk mengetahui informasi selengkapnya, lihat SKU yang tersedia dan wilayah yang didukung.
Prasyarat
Mulai cepat ini membutuhkan:
Minimal delapan inti DCsv2/DCSv3/DCdsv3 tersedia dalam langganan Anda.
Secara default, tidak ada kuota yang telah ditetapkan sebelumnya untuk ukuran VM Intel SGX untuk langganan Azure Anda. Anda harus mengikuti instruksi ini untuk meminta kuota inti VM untuk langganan Anda.
Membuat kluster AKS dengan simpul komputasi rahasia yang sadar enklave dan add-on Intel SGX
Gunakan instruksi berikut untuk membuat kluster AKS dengan add-on Intel SGX diaktifkan, menambahkan kumpulan simpul ke kluster, dan memverifikasi apa yang Anda buat dengan aplikasi hello world enclave.
Membuat kluster AKS dengan kumpulan simpul sistem dan Addon AKS Intel SGX
Catatan
Jika Anda sudah memiliki kluster AKS yang memenuhi kriteria prasyarat yang tercantum sebelumnya, lompat ke bagian berikutnya untuk menambahkan kumpulan simpul komputasi rahasia.
Intel SGX AKS Addon "confcom" mengekspos driver perangkat Intel SGX ke kontainer Anda untuk menghindari perubahan tambahan pada yaml pod Anda.
Pertama, buat grup sumber daya untuk kluster dengan perintah az group create. Contoh berikut membuat grup sumber daya bernama myResourceGroup di wilayah eastus2 :
az group create --name myResourceGroup --location eastus2
Sekarang buat kluster AKS, dengan add-on komputasi rahasia yang diaktifkan, dengan menggunakan perintah az aks create:
az aks create -g myResourceGroup --name myAKSCluster --generate-ssh-keys --enable-addons confcom
Perintah di atas akan menyebarkan kluster AKS baru dengan kumpulan simpul sistem dari simpul komputasi non-rahasia. Simpul Intel SGX komputasi rahasia tidak disarankan untuk kumpulan simpul sistem.
Menambahkan kumpulan simpul pengguna dengan kemampuan komputasi rahasia ke kluster AKS
Jalankan perintah berikut untuk menambahkan kumpulan simpul pengguna berukuran Standard_DC4s_v3
dengan tiga simpul ke kluster AKS. Anda dapat memilih SKU berukuran lebih besar lainnya dari daftar SKU dan wilayah DCsv2/DCsv3 yang didukung.
az aks nodepool add --cluster-name myAKSCluster --name confcompool1 --resource-group myResourceGroup --node-vm-size Standard_DC4s_v3 --node-count 2
Setelah Anda menjalankan perintah, kumpulan simpul baru dengan DCsv3 harus terlihat dengan add-on komputasi rahasia DaemonSets (plug-in perangkat SGX).
Memverifikasi kumpulan simpul dan add-on
Dapatkan kredensial untuk kluster AKS Anda dengan perintah az aks get-credentials:
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Gunakan perintah kubectl get pods
untuk memverifikasi bahwa simpul dibuat dengan benar dan DaemonSets yang terkait SGX berjalan pada kumpulan simpul DCsv2:
kubectl get pods --all-namespaces
kube-system sgx-device-plugin-xxxx 1/1 Running
Jika output cocok dengan kode sebelumnya, kluster AKS Anda sekarang siap untuk menjalankan aplikasi rahasia.
Anda dapat menuju ke bagian Menyebarkan Halo Dunia dari aplikasi enklave terisolasi di mulai cepat ini untuk menguji aplikasi di enklave. Atau gunakan instruksi berikut untuk menambahkan lebih banyak kumpulan simpul pada AKS. (AKS mendukung pencampuran kumpulan simpul SGX dan kumpulan simpul non-SGX.)
Menambahkan kumpulan simpul komputasi rahasia ke kluster AKS yang ada
Bagian ini mengasumsikan Anda sudah menjalankan kluster AKS yang memenuhi kriteria prasyarat yang tercantum sebelumnya dalam mulai cepat ini.
Mengaktifkan add-on komputasi rahasia AKS pada kluster yang ada
Jalankan perintah berikut untuk mengaktifkan add-on komputasi rahasia:
az aks enable-addons --addons confcom --name MyManagedCluster --resource-group MyResourceGroup
Menambahkan kumpulan simpul pengguna DCsv3 ke kluster
Catatan
Untuk menggunakan kemampuan komputasi rahasia, kluster AKS Anda yang sudah ada harus memiliki minimal satu kumpulan simpul yang didasarkan pada SKU VM DCsv2/DCsv3. Untuk mempelajari selengkapnya tentang SKU VM DCs-v2/Dcs-v3 untuk komputasi rahasia, lihat SKU yang tersedia dan wilayah yang didukung.
Jalankan perintah berikut untuk membuat kumpulan simpul:
az aks nodepool add --cluster-name myAKSCluster --name confcompool1 --resource-group myResourceGroup --node-count 2 --node-vm-size Standard_DC4s_v3
Verifikasi bahwa kumpulan simpul baru dengan nama confcompool1 telah dibuat:
az aks nodepool list --cluster-name myAKSCluster --resource-group myResourceGroup
Verifikasi bahwa DaemonSets berjalan pada kumpulan simpul rahasia
Masuk ke kluster AKS yang sudah ada untuk melakukan verifikasi berikut:
kubectl get nodes
Output harus menampilkan kumpulan confcompool1 yang baru ditambahkan pada kluster AKS. Anda juga dapat melihat DaemonSets lainnya.
kubectl get pods --all-namespaces
kube-system sgx-device-plugin-xxxx 1/1 Running
Jika output cocok dengan kode sebelumnya, kluster AKS Anda sekarang siap untuk menjalankan aplikasi rahasia.
Menyebarkan Halo Dunia dari aplikasi enklave terisolasi
Anda sekarang siap untuk menyebarkan aplikasi pengujian.
Buat file bernama hello-world-enclave.yaml dan tempelkan dalam manifes YAML berikut. Anda dapat menemukan contoh kode aplikasi ini di proyek Enklave Terbuka. Penyebaran ini mengasumsikan bahwa Anda telah menyebarkan add-on confcom.
Catatan
Contoh berikut menarik gambar kontainer publik dari Docker Hub. Sebaiknya Anda menyiapkan rahasia penarikan untuk diautentikasi menggunakan akun Docker Hub alih-alih membuat permintaan penarikan anonim. Untuk meningkatkan keandalan saat bekerja dengan konten publik, impor dan kelola gambar di registri kontainer Azure privat. Pelajari lebih lanjut bekerja dengan gambar publik.
apiVersion: batch/v1
kind: Job
metadata:
name: oe-helloworld
namespace: default
spec:
template:
metadata:
labels:
app: oe-helloworld
spec:
containers:
- name: oe-helloworld
image: mcr.microsoft.com/acc/samples/oe-helloworld:latest
resources:
limits:
sgx.intel.com/epc: "10Mi"
requests:
sgx.intel.com/epc: "10Mi"
volumeMounts:
- name: var-run-aesmd
mountPath: /var/run/aesmd
restartPolicy: "Never"
volumes:
- name: var-run-aesmd
hostPath:
path: /var/run/aesmd
backoffLimit: 0
Atau Anda juga dapat melakukan penyebaran pemilihan kumpulan simpul untuk penyebaran kontainer Anda seperti yang ditunjukkan di bawah ini
apiVersion: batch/v1
kind: Job
metadata:
name: oe-helloworld
namespace: default
spec:
template:
metadata:
labels:
app: oe-helloworld
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: agentpool
operator: In
values:
- acc # this is the name of your confidential computing nodel pool
- acc_second # this is the name of your confidential computing nodel pool
containers:
- name: oe-helloworld
image: mcr.microsoft.com/acc/samples/oe-helloworld:latest
resources:
limits:
sgx.intel.com/epc: "10Mi"
requests:
sgx.intel.com/epc: "10Mi"
volumeMounts:
- name: var-run-aesmd
mountPath: /var/run/aesmd
restartPolicy: "Never"
volumes:
- name: var-run-aesmd
hostPath:
path: /var/run/aesmd
backoffLimit: 0
Sekarang gunakan perintah kubectl apply
untuk membuat contoh pekerjaan yang akan terbuka di enklave yang aman, seperti yang ditunjukkan dalam contoh output berikut:
kubectl apply -f hello-world-enclave.yaml
job "oe-helloworld" created
Anda dapat mengonfirmasi bahwa beban kerja berhasil membuat Trusted Execution Environment (enklave) dengan menjalankan perintah berikut:
kubectl get jobs -l app=oe-helloworld
NAME COMPLETIONS DURATION AGE
oe-helloworld 1/1 1s 23s
kubectl get pods -l app=oe-helloworld
NAME READY STATUS RESTARTS AGE
oe-helloworld-rchvg 0/1 Completed 0 25s
kubectl logs -l app=oe-helloworld
Hello world from the enclave
Enclave called into host to print: Hello World!
Membersihkan sumber daya
Untuk menghapus kumpulan simpul komputasi rahasia yang Anda buat dalam mulai cepat ini, gunakan perintah berikut:
az aks nodepool delete --cluster-name myAKSCluster --name confcompool1 --resource-group myResourceGroup
Untuk menghapus kluster AKS, gunakan perintah berikut:
az aks delete --resource-group myResourceGroup --cluster-name myAKSCluster
Langkah berikutnya
Jalankan Python, Node, atau aplikasi lain melalui kontainer rahasia menggunakan perangkat lunak pembungkus ISV/OSS SGX. Tinjau sampel kontainer rahasia di GitHub.
Menjalankan aplikasi yang sadar enklave dengan menggunakan sampel kontainer Azure yang sadar enklave di GitHub.