Come creare un'immagine personalizzata per le macchine virtuali riservate di Azure

Si applica a: ✔️ Macchine virtuali Linux

Questa "procedura" illustra come usare il interfaccia della riga di comando di Azure (interfaccia della riga di comando di Azure) per creare un'immagine personalizzata per la macchina virtuale riservata (macchina virtuale riservata) in Azure. L'interfaccia della riga di comando di Azure viene usata per creare e gestire le risorse di Azure tramite la riga di comando o gli 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 località 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 macchine virtuali riservate di Azure

  1. Creare una macchina virtuale con un'immagine Ubuntu selezionata dall'elenco di immagini supporto tecnico di Azure.

  2. 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.

  3. Deallocare la macchina virtuale.

    az vm deallocate --name $vmname --resource-group $resourceGroupName
    
  4. 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

  1. Creare un account di archiviazione.
    az storage account create --resource-group ${resourceGroupName} --name ${storageAccountName} --location $region --sku "Standard_LRS"
    
  2. Creare un contenitore all'interno dell'account di archiviazione.
    az storage container create --name $storageContainerName --account-name $storageAccountName --resource-group $resourceGroupName
    
  3. 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)
    
  4. 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

  1. Creare un Raccolta immagini condivise.
    az sig create --resource-group $resourceGroupName --gallery-name $galleryName
    
  2. Creare una macchina virtuale riservata con definizione sig (Shared Image Gallery) 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
    
  3. Ottenere l'ID dell'account di archiviazione.
    storageAccountId=$(az storage account show --name $storageAccountName --resource-group $resourceGroupName | jq -r .id)
    
  4. 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
    
  5. 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

  1. Creare una VM con il comando az vm create. Per altre informazioni, vedere Avvio protetto e vTPM. Per altre informazioni sulla crittografia dei dischi, vedere Crittografia dischi del sistema operativo riservati. 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
    

Passaggi successivi