Jak utworzyć obraz niestandardowy dla poufnych maszyn wirtualnych platformy Azure
Dotyczy: ✔️ maszyny wirtualne z systemem Linux
W tym "sposobie" pokazano, jak za pomocą interfejsu wiersza polecenia platformy Azure (interfejs wiersza polecenia platformy Azure) utworzyć obraz niestandardowy dla poufnej maszyny wirtualnej (poufnej maszyny wirtualnej) na platformie Azure. Interfejs wiersza polecenia platformy Azure służy do tworzenia zasobów platformy Azure i zarządzania nimi za pośrednictwem wiersza polecenia lub skryptów.
Utworzenie obrazu niestandardowego umożliwia wstępne skonfigurowanie poufnej maszyny wirtualnej przy użyciu określonego oprogramowania, ustawień i środków zabezpieczeń spełniających twoje wymagania. Jeśli chcesz przenieść obraz z systemem Ubuntu, który nie jest poufnym zgodnym z maszyną wirtualną, możesz wykonać poniższe kroki, aby zobaczyć, jakie są minimalne wymagania dotyczące obrazu.
Wymagania wstępne
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Uruchamianie usługi Azure Cloud Shell
Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której można użyć do wykonania kroków opisanych w tym artykule. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie.
Aby otworzyć usługę Cloud Shell, wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu. Możesz również otworzyć usługę Cloud Shell na osobnej karcie przeglądarki, przechodząc do .https://shell.azure.com/bash Wybierz pozycję Kopiuj , aby skopiować bloki kodu, wklej go w usłudze Cloud Shell, a następnie wybierz klawisz Enter , aby go uruchomić.
Jeśli wolisz zainstalować interfejs wiersza polecenia i korzystać z niego lokalnie, ten przewodnik Szybki start wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.0.30 lub nowszej. Uruchom polecenie az --version
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Tworzenie grupy zasobów
Utwórz grupę zasobów za pomocą polecenia az group create. Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.
Uwaga
Poufne maszyny wirtualne nie są dostępne we wszystkich lokalizacjach. W przypadku aktualnie obsługiwanych lokalizacji zobacz, które produkty maszyn wirtualnych są dostępne w regionie świadczenia usługi Azure.
az group create --name $resourceGroupName --location eastus
Tworzenie obrazu niestandardowego dla poufnych maszyn wirtualnych platformy Azure
Utwórz maszynę wirtualną z wybranym obrazem z systemem Ubuntu z listy obrazów pomoc techniczna platformy Azure.
Upewnij się, że wersja jądra to co najmniej 5.15.0-1037-azure. Po nawiązaniu połączenia z maszyną wirtualną możesz użyć ciągu "uname -r", aby sprawdzić wersję jądra. W tym miejscu możesz dodać wszelkie zmiany do obrazu zgodnie z potrzebami.
Cofnij przydział maszyny wirtualnej.
az vm deallocate --name $vmname --resource-group $resourceGroupName
Utwórz token dostępu współdzielonego (token SAS) dla dysku systemu operacyjnego i zapisz go w zmiennej. Należy pamiętać, że ten dysk systemu operacyjnego nie musi znajdować się w tej samej grupie zasobów co poufne maszyny wirtualnej.
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)
Tworzenie konta magazynu do przechowywania wyeksportowanego dysku
- Create a storage account (Tworzenie konta magazynu).
az storage account create --resource-group ${resourceGroupName} --name ${storageAccountName} --location $region --sku "Standard_LRS"
- Utwórz kontener na koncie magazynu.
az storage container create --name $storageContainerName --account-name $storageAccountName --resource-group $resourceGroupName
- Wygeneruj token dostępu współdzielonego odczytu (token SAS) do kontenera magazynu i zapisz go w zmiennej.
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)
- Za pomocą narzędzia azcopy skopiuj dysk systemu operacyjnego do kontenera magazynu.
blob_url="https://${storageAccountName}.blob.core.windows.net/$storageContainerName/$referenceVHD" azcopy copy "$disk_url" "${blob_url}?${container_sas}"
Tworzenie poufnego obsługiwanego obrazu
- Utwórz galerię obrazów udostępnionych.
az sig create --resource-group $resourceGroupName --gallery-name $galleryName
- Tworzenie obsługiwanej poufnej maszyny wirtualnej z definicją galerii obrazów udostępnionych (SIG). Ustaw nowe nazwy definicji obrazu galerii, wydawcy SIG i jednostki 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
- Pobierz identyfikator konta magazynu.
storageAccountId=$(az storage account show --name $storageAccountName --resource-group $resourceGroupName | jq -r .id)
- Utwórz wersję obrazu 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
- Zapisz identyfikator wersji obrazu SIG utworzonej w poprzednim kroku.
galleryImageId=$(az sig image-version show --gallery-image-definition $imageDefinitionName --gallery-image-version $galleryImageVersion --gallery-name $galleryName --resource-group $resourceGroupName | jq -r .id)
Tworzenie poufnej maszyny wirtualnej
- Utwórz maszynę wirtualną za pomocą polecenia az vm create. Aby uzyskać więcej informacji, zobacz bezpieczny rozruch i protokół vTPM. Aby uzyskać więcej informacji na temat szyfrowania dysków, zobacz poufne szyfrowanie dysków systemu operacyjnego. Obecnie poufne maszyny wirtualne obsługują rozmiary maszyn wirtualnych serii DC i 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