Erstellen eines benutzerdefinierten Images für vertrauliche Azure-VMs

Gilt für: ✔️ Linux-VMs

In diesem "How to" wird gezeigt, wie Sie mithilfe der Azure-Befehlszeilenschnittstelle (Azure CLI) ein benutzerdefiniertes Image für Ihren vertraulichen virtuellen Computer (vertrauliche VM) in Azure erstellen. Die Azure-Befehlszeilenschnittstelle dient zum Erstellen und Verwalten von Azure-Ressourcen über die Befehlszeile oder mit Skripts.

Durch das Erstellen eines benutzerdefinierten Images können Sie Ihren vertraulichen virtuellen Computer mit bestimmten Software-, Einstellungs- und Sicherheitsmaßnahmen vorkonfigurieren, die Ihren Anforderungen entsprechen. Wenn Sie ein Ubuntu-Image mitbringen möchten, das nicht vertraulich ist, können Sie die folgenden Schritte ausführen, um zu sehen, welche Mindestanforderungen für Ihr Image gelten.

Voraussetzungen

Falls Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Azure-Konto erstellen, bevor Sie beginnen.

Starten von Azure Cloud Shell

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel ausführen können. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.

Wählen Sie zum Öffnen von Cloud Shell oben rechts in einem Codeblock einfach die Option Ausprobieren. Sie können Cloud Shell auch auf einer separaten Browserregisterkarte öffnen, indem Sie zu https://shell.azure.com/bash navigieren. Wählen Sie Kopieren aus, um die Codeblöcke zu kopieren. Fügen Sie die Blöcke anschließend in Cloud Shell ein, und wählen Sie Eingabe, um sie auszuführen.

Wenn Sie es vorziehen, die Befehlszeilenschnittstelle lokal zu installieren und zu verwenden, müssen Sie für diese Schnellstartanleitung mindestens Azure CLI-Version 2.0.30 verwenden. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.

Erstellen einer Ressourcengruppe

Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.

Hinweis

Vertrauliche VMs sind nicht an allen Standorten verfügbar. Informationen zu den derzeit unterstützten Standorten finden Sie unter Verfügbarkeit von VM-Produkten nach Azure-Region.

az group create --name $resourceGroupName --location eastus

Erstellen eines benutzerdefinierten Images für vertrauliche virtuelle Azure-Computer

  1. Erstellen Sie einen virtuellen Computer mit einem Ubuntu-Image der Wahl aus der Liste der Azure-Support-Images.

  2. Stellen Sie sicher, dass die Kernelversion mindestens 5.15.0-1037-azure ist. Sie können "uname -r" verwenden, nachdem Sie eine Verbindung mit dem virtuellen Computer hergestellt haben, um die Kernelversion zu überprüfen. Hier können Sie beliebige Änderungen am Bild hinzufügen, wie sie passen.

  3. Verlagern Sie Ihren virtuellen Computer.

    az vm deallocate --name $vmname --resource-group $resourceGroupName
    
  4. Erstellen Sie ein freigegebenes Zugriffstoken (SAS-Token) für den Betriebssystemdatenträger, und speichern Sie es in einer Variablen. Beachten Sie, dass sich dieser Betriebssystemdatenträger nicht in derselben Ressourcengruppe wie der vertrauliche virtuelle Computer befinden muss.

    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)
    

Erstellen eines Speicherkontos zum Speichern des exportierten Datenträgers

  1. Erstellen Sie ein Speicherkonto.
    az storage account create --resource-group ${resourceGroupName} --name ${storageAccountName} --location $region --sku "Standard_LRS"
    
  2. Erstellen Sie einen Container innerhalb des Speicherkontos.
    az storage container create --name $storageContainerName --account-name $storageAccountName --resource-group $resourceGroupName
    
  3. Generieren Sie ein Lesezugriffstoken (SAS-Token) für den Speichercontainer , und speichern Sie es in einer Variablen.
    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. Kopieren Sie den Betriebssystemdatenträger mithilfe von Azcopy in den Speichercontainer.
     blob_url="https://${storageAccountName}.blob.core.windows.net/$storageContainerName/$referenceVHD"
     azcopy copy "$disk_url" "${blob_url}?${container_sas}"
    

Erstellen eines vertraulich unterstützten Bilds

  1. Erstellen Sie einen freigegebenen Bilderkatalog.
    az sig create --resource-group $resourceGroupName --gallery-name $galleryName
    
  2. Erstellen Sie eine freigegebene Image Gallery (SIG)-Definition vertraulicher VM, die unterstützt wird. Legen Sie neue Namen für Katalogbilddefinition, SIG-Herausgeber und SKU fest.
    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. Rufen Sie die Speicherkonto-ID ab.
    storageAccountId=$(az storage account show --name $storageAccountName --resource-group $resourceGroupName | jq -r .id)
    
  4. Erstellen Sie eine SIG-Imageversion.
    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. Speichern Sie die ID der SIG-Imageversion, die im vorherigen Schritt erstellt wurde.
    galleryImageId=$(az sig image-version show --gallery-image-definition $imageDefinitionName --gallery-image-version $galleryImageVersion --gallery-name $galleryName --resource-group $resourceGroupName | jq -r .id)
    

Erstellen einer vertraulichen VM

  1. Erstellen Sie mit dem Befehl az vm create einen virtuellen Computer. Weitere Informationen finden Sie unter Vertrauenswürdiger Start für Azure-VMs. Weitere Informationen zur Datenträgerverschlüsselung finden Sie unter Vertrauliche VMs der Serien DCasv5 und ECasv5. Derzeit unterstützen vertrauliche VMs die VM-Größen der DC-Serie und der EC-Serie.
    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
    

Nächste Schritte