Mulai cepat: Membuat VM rahasia dengan Azure CLI
Berlaku untuk: ✔️ VM Linux ✔️ VM Windows
Mulai cepat ini menunjukkan kepada Anda cara menggunakan Azure Command-Line Interface (Azure CLI) untuk menyebarkan komputer virtual rahasia (confidential VM) di Azure. Azure CLI digunakan untuk membuat dan mengelola sumber daya Azure melalui baris perintah atau skrip.
Prasyarat
Jika tidak memiliki langganan Azure, buat akun Azure gratis sebelum Anda memulai.
Meluncurkan Azure Cloud Shell
Azure Cloud Shell adalah shell interaktif gratis yang dapat Anda gunakan untuk menjalankan langkah dalam artikel ini. Shell ini memiliki alat Azure umum yang telah dipasang sebelumnya dan dikonfigurasi untuk digunakan dengan akun Anda.
Untuk membuka Cloud Shell, cukup pilih Cobalah dari sudut kanan atas blok kode. Anda juga dapat membuka Cloud Shell di tab browser terpisah dengan membuka https://shell.azure.com/bash. Pilih Salin untuk menyalin blok kode, tempelkan ke Cloud Shell, lalu pilih Masukkan untuk menjalankannya.
Jika Anda lebih suka menginstal dan menggunakan CLI secara lokal, mulai cepat ini memerlukan Azure CLI versi 2.38.0 atau yang lebih baru. Jalankan az--version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.
Buat grup sumber daya
Buat grup sumber daya dengan perintah az group create. Grup sumber daya Azure adalah kontainer logis tempat sumber daya Azure disebarkan dan dikelola. Contoh berikut membuat grup sumber daya bernama myResourceGroup di lokasi northeurope :
Catatan
VM rahasia tidak tersedia di semua lokasi. Untuk lokasi yang saat ini didukung, lihat produk VM mana yang tersedia oleh wilayah Azure.
az group create --name myResourceGroup --location northeurope
Membuat komputer virtual Rahasia menggunakan kunci yang dikelola platform
Buat VM dengan perintah az vm create.
Contoh berikut membuat VM bernama myVM dan menambahkan akun pengguna bernama azureuser. Parameter --generate-ssh-keys
digunakan untuk secara otomatis menghasilkan kunci SSH, dan meletakkannya di lokasi kunci default(~/.ssh). Untuk menggunakan kumpulan kunci tertentu, gunakan opsi --ssh-key-values
.
Untuk size
, pilih ukuran VM rahasia. Untuk informasi selengkapnya, lihat keluarga VM rahasia yang didukung.
Pilih VMGuestStateOnly
untuk tidak ada enkripsi rahasia disk OS. Atau, pilih DiskWithVMGuestState
untuk enkripsi rahasia disk OS dengan kunci yang dikelola platform. Boot Aman diaktifkan secara default, tetapi bersifat opsional untuk VMGuestStateOnly
. Untuk informasi selengkapnya, lihat boot aman dan vTPM. Untuk informasi selengkapnya tentang enkripsi dan enkripsi disk di host, lihat enkripsi dan enkripsi disk OS rahasia di host.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--size Standard_DC4es_v5 \
--admin-username <azure-username> \
--admin-password <azure-password> \
--enable-vtpm true \
--image "Canonical:0001-com-ubuntu-confidential-vm-jammy:22_04-lts-cvm:latest" \
--public-ip-sku Standard \
--security-type ConfidentialVM \
--os-disk-security-encryption-type VMGuestStateOnly \
--enable-secure-boot true \
--encryption-at-host \
Dibutuhkan beberapa menit untuk membuat komputer virtual dan sumber daya pendukung. Contoh output berikut menunjukkan operasi pembuatan komputer virtual berhasil.
{
"fqdns": "",
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "northeurope",
"macAddress": "<MAC-address>",
"powerState": "VM running",
"privateIpAddress": "10.20.255.255",
"publicIpAddress": "192.168.255.255",
"resourceGroup": "myResourceGroup",
"zones": ""
}
Buat catatan publicIpAddress
untuk digunakan nanti.
Membuat komputer virtual Rahasia menggunakan Kunci yang Dikelola Pelanggan
Untuk membuat set enkripsi disk rahasia, Anda memiliki dua opsi: Menggunakan Azure Key Vault atau Modul Keamanan Perangkat Keras (HSM) terkelola Azure Key Vault. Berdasarkan kebutuhan keamanan dan kepatuhan Anda, Anda dapat memilih salah satu opsi. Namun, penting untuk dicatat bahwa SKU standar tidak didukung. Contoh berikut menggunakan Azure Key Vault Premium.
- Berikan Perwakilan
Confidential VM Orchestrator
Layanan VM rahasia kepada penyewa. Untuk langkah ini, Anda harus menjadi Admin Global atau Anda harus memiliki peran RBAC Administrator Akses Pengguna. Instal Microsoft Graph SDK untuk menjalankan perintah di bawah ini.
Connect-Graph -Tenant "your tenant ID" Application.ReadWrite.All
New-MgServicePrincipal -AppId bf7b6499-ff71-4aa2-97a4-f372087be7f0 -DisplayName "Confidential VM Orchestrator"
- Buat Azure Key Vault menggunakan perintah az keyvault create . Untuk tingkat harga, pilih Premium (termasuk dukungan untuk kunci yang didukung HSM). Pastikan Anda memiliki peran pemilik dalam brankas kunci ini.
az keyvault create -n keyVaultName -g myResourceGroup --enabled-for-disk-encryption true --sku premium --enable-purge-protection true
- Berikan
Confidential VM Orchestrator
izin keget
danrelease
brankas kunci.
$cvmAgent = az ad sp show --id "bf7b6499-ff71-4aa2-97a4-f372087be7f0" | Out-String | ConvertFrom-Json
az keyvault set-policy --name keyVaultName --object-id $cvmAgent.Id --key-permissions get release
- Buat kunci di brankas kunci menggunakan az keyvault key create. Untuk jenis kunci, gunakan RSA-HSM.
az keyvault key create --name mykey --vault-name keyVaultName --default-cvm-policy --exportable --kty RSA-HSM
- Buat set enkripsi disk menggunakan az disk-encryption-set create. Atur jenis enkripsi ke
ConfidentialVmEncryptedWithCustomerKey
.
$keyVaultKeyUrl=(az keyvault key show --vault-name keyVaultName --name mykey--query [key.kid] -o tsv)
az disk-encryption-set create --resource-group myResourceGroup --name diskEncryptionSetName --key-url $keyVaultKeyUrl --encryption-type ConfidentialVmEncryptedWithCustomerKey
- Berikan akses sumber daya set enkripsi disk ke brankas kunci menggunakan az key vault set-policy.
$desIdentity=(az disk-encryption-set show -n diskEncryptionSetName -g myResourceGroup --query [identity.principalId] -o tsv)
az keyvault set-policy -n keyVaultName -g myResourceGroup --object-id $desIdentity --key-permissions wrapkey unwrapkey get
- Gunakan ID set enkripsi disk untuk membuat VM.
$diskEncryptionSetID=(az disk-encryption-set show -n diskEncryptionSetName -g myResourceGroup --query [id] -o tsv)
- Buat VM dengan perintah az vm create. Pilih
DiskWithVMGuestState
untuk enkripsi rahasia disk OS dengan kunci yang dikelola pelanggan. Mengaktifkan boot aman bersifat opsional, tetapi disarankan. Untuk informasi selengkapnya, lihat boot aman dan vTPM. Untuk informasi selengkapnya tentang enkripsi disk, lihat enkripsi disk OS rahasia.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--size Standard_DC4as_v5 \
--admin-username <azure-user> \
--admin-password <azure-password> \
--enable-vtpm true \
--enable-secure-boot true \
--image "Canonical:0001-com-ubuntu-confidential-vm-focal:20_04-lts-cvm:latest" \
--public-ip-sku Standard \
--security-type ConfidentialVM \
--os-disk-security-encryption-type DiskWithVMGuestState \
--os-disk-secure-vm-disk-encryption-set $diskEncryptionSetID \
Dibutuhkan beberapa menit untuk membuat komputer virtual dan sumber daya pendukung. Contoh output berikut menunjukkan operasi pembuatan komputer virtual berhasil.
{
"fqdns": "",
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "eastus",
"macAddress": "<MAC-address>",
"powerState": "VM running",
"privateIpAddress": "10.20.255.255",
"publicIpAddress": "192.168.255.255",
"resourceGroup": "myResourceGroup",
"zones": ""
}
Buat catatan publicIpAddress
untuk digunakan nanti.
Koneksi dan membuktikan CVM berbasis AMD melalui Aplikasi Sampel Microsoft Azure Attestation
Untuk menggunakan aplikasi sampel di C++ untuk digunakan dengan API pengesahan tamu, gunakan langkah-langkah berikut. Contoh ini menggunakan komputer virtual rahasia Linux. Untuk Windows, lihat instruksi build untuk Windows.
Masuk ke VM rahasia Anda menggunakan alamat IP publiknya.
Kloning aplikasi Linux sampel.
Pasang paket
build-essential
. Paket ini menginstal semua yang diperlukan untuk mengkompilasi aplikasi sampel.
sudo apt-get install build-essential
- Instal paket di bawah ini.
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libjsoncpp-dev
sudo apt-get install libboost-all-dev
sudo apt install nlohmann-json3-dev
Unduh paket pengesahan.
Instal paket pengesahan. Pastikan untuk mengganti
<version>
dengan versi yang Anda unduh.
sudo dpkg -i azguestattestation1_<latest-version>_amd64.deb
- Setelah paket di atas diinstal, gunakan langkah-langkah di bawah ini untuk membangun dan menjalankan aplikasi.
cd confidential-computing-cvm-guest-attestation/cvm-attestation-sample-app
sudo cmake . && make
sudo ./AttestationClient -o token
- Untuk mengonversi token web ke JSON, gunakan langkah-langkah di bawah ini.
sudo ./AttestationClient -o token>> /attestation_output
JWT=$(cat /attestation_output)
echo -n $JWT | cut -d "." -f 1 | base64 -d 2>/dev/null | jq .
echo -n $JWT | cut -d "." -f 2 | base64 -d 2>/dev/null | jq .