Come creare un'immagine personalizzata per le macchine virtuali riservate di Azure
Si applica a: ✔️ macchine virtuali di Linux
Questa procedura illustra come usare l'interfaccia della riga di comando di Azure per creare un'immagine personalizzata per la macchina virtuale riservata (macchina virtuale riservata) in Azure. Viene usata l'interfaccia della riga di comando di Azure per creare e gestire le risorse di Azure dalla riga di comando o tramite script.
La creazione di un'immagine personalizzata consente di preconfigurare la macchina virtuale riservata con software, impostazioni e misure di sicurezza specifiche che soddisfano i requisiti. Se si vuole portare un'immagine Ubuntu non compatibile con macchine virtuali riservate, è possibile seguire la procedura seguente per vedere quali sono i requisiti minimi per l'immagine.
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Avviare Azure Cloud Shell
Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.
Per aprire Cloud Shell, basta selezionare Prova nell'angolo superiore destro di un blocco di codice. È anche possibile aprire Cloud Shell in una scheda separata del browser visitando https://shell.azure.com/bash. Selezionare Copia per copiare i blocchi di codice, incollarli in Cloud Shell e premere INVIO per eseguirli.
Se si preferisce installare e usare l'interfaccia della riga di comando in locale, per questa guida introduttiva è necessaria l'interfaccia della riga di comando di Azure versione 2.0.30 o successiva. Eseguire az --version
per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Creare un gruppo di risorse
Creare un gruppo di risorse con il comando az group create. Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.
Nota
Le macchine virtuali riservate non sono disponibili in tutte le posizioni. Per le posizioni attualmente supportate, vedere quali prodotti VM sono disponibili in base all'area di Azure.
az group create --name $resourceGroupName --location eastus
Creare un'immagine personalizzata per una macchina virtuale riservata di Azure
Creare una macchina virtuale con un'immagine Ubuntu selezionata dall'elenco di immagini supportate da Azure.
Verificare che la versione del kernel sia almeno 5.15.0-1037-azure. È possibile usare "uname -r" dopo la connessione alla macchina virtuale per controllare la versione del kernel. Qui è possibile aggiungere eventuali modifiche all'immagine nel modo desiderato.
Deallocare la macchina virtuale.
az vm deallocate --name $vmname --resource-group $resourceGroupName
Creare un token di accesso condiviso per il disco del sistema operativo e archiviarlo in una variabile. Si noti che questo disco del sistema operativo non deve trovarsi nello stesso gruppo di risorse della macchina virtuale riservata.
disk_name=$(az vm show --name $vmname --resource-group $resourceGroupName | jq -r .storageProfile.osDisk.name) disk_url=$(az disk grant-access --duration-in-seconds 3600 --name $disk_name --resource-group $resourceGroupName | jq -r .accessSas)
Creare un account di archiviazione per archiviare il disco esportato
- Creare un account di archiviazione.
az storage account create --resource-group ${resourceGroupName} --name ${storageAccountName} --location $region --sku "Standard_LRS"
- Creare un contenitore all'interno dell'account di archiviazione.
az storage container create --name $storageContainerName --account-name $storageAccountName --resource-group $resourceGroupName
- Generare un token di accesso condiviso in lettura nel contenitore di archiviazione e salvarlo in una variabile.
container_sas=$(az storage container generate-sas --name $storageContainerName --account-name $storageAccountName --auth-mode key --expiry 2024-01-01 --https-only --permissions dlrw -o tsv)
- Usando azcopy, copiare il disco del sistema operativo nel contenitore di archiviazione.
blob_url="https://${storageAccountName}.blob.core.windows.net/$storageContainerName/$referenceVHD" azcopy copy "$disk_url" "${blob_url}?${container_sas}"
Creare un'immagine riservata supportata
- Creare una Raccolta immagini condivise.
az sig create --resource-group $resourceGroupName --gallery-name $galleryName
- Creare una macchina virtuale riservata con definizione Raccolta immagini condivise (SIG) supportata. Impostare nuovi nomi per la definizione dell'immagine della raccolta, l'editore SIG e lo SKU.
az sig image-definition create --resource-group $resourceGroupName --location $region --gallery-name $galleryName --gallery-image-definition $imageDefinitionName --publisher $sigPublisherName --offer ubuntu --sku $sigSkuName --os-type Linux --os-state specialized --hyper-v-generation V2 --features SecurityType=ConfidentialVMSupported
- Ottenere l'ID dell'account di archiviazione.
storageAccountId=$(az storage account show --name $storageAccountName --resource-group $resourceGroupName | jq -r .id)
- Creare una versione dell'immagine SIG.
az sig image-version create --resource-group $resourceGroupName --gallery-name $galleryName --gallery-image-definition $imageDefinitionName --gallery-image-version $galleryImageVersion --os-vhd-storage-account $storageAccountId --os-vhd-uri $blob_url
- Archiviare l'ID della versione dell'immagine SIG creata nel passaggio precedente.
galleryImageId=$(az sig image-version show --gallery-image-definition $imageDefinitionName --gallery-image-version $galleryImageVersion --gallery-name $galleryName --resource-group $resourceGroupName | jq -r .id)
Creare una macchina virtuale riservata
- Creare una VM con il comando az vm create. Per altre informazioni, vedere avvio protetto e vTPM. Per altre informazioni sulla crittografia del disco, vedere l'articolo sulla crittografia riservata del disco del sistema operativo. Attualmente le macchine virtuali riservate supportano le dimensioni della serie DC e della serie EC.
az vm create \ --resource-group $resourceGroupName \ --name $cvmname \ --size Standard_DC4as_v5 \ --enable-vtpm true \ --enable-secure-boot true \ --image $galleryImageId \ --public-ip-sku Standard \ --security-type ConfidentialVM \ --os-disk-security-encryption-type VMGuestStateOnly \ --specialized