Vygenerování identifikátoru URI SAS pro image virtuálního počítače
Poznámka:
Identifikátor URI sdíleného přístupového podpisu (SAS) se dá použít k publikování virtuálního počítače. Alternativně můžete sdílet image v Partnerském centru prostřednictvím galerie výpočetních prostředků Azure. Další pokyny najdete v tématu Vytvoření virtuálního počítače pomocí schválené základny nebo vytvoření virtuálního počítače pomocí vlastní image .
Než začnete, budete potřebovat následující:
- Virtuální počítač
- Účet úložiště s kontejnerem pro ukládání virtuálního pevného disku (VHD)
- Váš klíč účtu úložiště
Extrahování virtuálního pevného disku z virtuálního počítače
Poznámka:
Tento krok můžete přeskočit, pokud už máte virtuální pevný disk nahraný do účtu úložiště.
Pokud chcete extrahovat virtuální pevný disk z virtuálního počítače, musíte nejprve pořídit snímek disku virtuálního počítače a pak virtuální pevný disk extrahovat ze snímku do účtu úložiště.
Pořízení snímku disku virtuálního počítače
- Přihlaste se k webu Azure Portal.
- Vyberte Vytvořit prostředek a pak vyhledejte a vyberte Snímek.
- V okně Snímek vyberte Vytvořit.
- Vyberte předplatné. Vyberte existující skupinu prostředků ve vybraném předplatném nebo vytvořte novou a zadejte název nové skupiny prostředků, kterou chcete vytvořit. Toto je skupina prostředků, ke které bude snímek přidružený.
- Zadejte název snímku.
- Jako typ zdroje vyberte Disk.
- Vyberte zdrojové předplatné, což je předplatné, které obsahuje disk virtuálního počítače. Může se lišit od cílového předplatného nového snímku.
- U zdrojového disku vyberte spravovaný disk, který chcete vytvořit.
- Jako typ úložiště vyberte hdd úrovně Standard, pokud ho nepotřebujete uložit na vysoce výkonném disku SSD.
- Vyberte Zkontrolovat a vytvořit. Po úspěšném ověření vyberte Vytvořit.
Extrahování virtuálního pevného disku do účtu úložiště
Pomocí následujícího skriptu vyexportujte snímek do virtuálního pevného disku ve vašem účtu úložiště. Pro každý z parametrů vložte informace odpovídajícím způsobem.
#Provide the subscription Id where the snapshot is created
subscriptionId=yourSubscriptionId
#Provide the name of your resource group where the snapshot is created
resourceGroupName=myResourceGroupName
#Provide the snapshot name
snapshotName=mySnapshot
#Provide Shared Access Signature (SAS) expiry duration in seconds (such as 3600)
#Know more about SAS here: https://learn.microsoft.com/azure/storage/storage-dotnet-shared-access-signature-part-1
sasExpiryDuration=3600
#Provide storage account name where you want to copy the underlying VHD file.
storageAccountName=mystorageaccountname
#Name of the storage container where the downloaded VHD will be stored.
storageContainerName=mystoragecontainername
#Provide the access key for the storage account that you want to copy the VHD to.
storageAccountKey=mystorageaccountkey
#Give a name to the destination VHD file to which the VHD will be copied.
destinationVHDFileName=myvhdfilename.vhd
az account set --subscription $subscriptionId
sas=$(az snapshot grant-access --resource-group $resourceGroupName --name $snapshotName --duration-in-seconds $sasExpiryDuration --query [accessSas] -o tsv)
az storage blob copy start --destination-blob $destinationVHDFileName --destination-container $storageContainerName --account-name $storageAccountName --account-key $storageAccountKey --source-uri $sas
Výše uvedený skript používá následující příkazy k vygenerování identifikátoru URI SAS pro snímek a zkopírování základního virtuálního pevného disku do účtu úložiště pomocí identifikátoru URI SAS.
Příkaz | Notes |
---|---|
az disk grant-access | Vygeneruje SAS jen pro čtení, který slouží ke zkopírování základního souboru VHD do účtu úložiště nebo jeho stažení do místního prostředí. |
az storage blob copy start | Zkopíruje objekt blob asynchronně z jednoho účtu úložiště do druhého. Pomocí příkazu az storage blob show zkontrolujte stav nového objektu blob. |
Vygenerování identifikátoru URI SAS
K vytvoření adresy SAS (URI) se používají dva běžné nástroje:
- Prohlížeč Azure Storage – K dispozici na webu Azure Portal.
- Azure CLI – Doporučeno pro operační systémy mimo Windows a automatizované nebo kontinuální integrační prostředí.
Použití nástroje 1: Prohlížeč služby Azure Storage
- Přejděte do svého účtu úložiště.
- Otevřete prohlížeč úložiště a vyberte kontejnery objektů blob.
- V kontejneru klikněte pravým tlačítkem myši na soubor VHD a vyberte Vygenerovat SAS.
- V nabídce Sdílený přístupový podpis, která se zobrazí, vyplňte následující pole:
- Oprávnění – Vyberte oprávnění ke čtení. Nezadávejte oprávnění k zápisu ani odstraňování.
- Počáteční datum a čas – Jedná se o počáteční datum oprávnění pro přístup k virtuálnímu pevného disku. Chcete-li chránit před změnami času UTC, zadejte datum, které je jeden den před aktuálním datem. Pokud je například aktuální datum 15. července 2022, nastavte datum jako 14. 7. 2022.
- Datum a čas vypršení platnosti – Toto je datum vypršení platnosti oprávnění pro přístup k virtuálnímu pevného disku. Zadejte datum alespoň tři týdny nad aktuálním datem.
- Pokud chcete pro tento virtuální pevný disk vytvořit přidružený identifikátor URI SAS, vyberte Vygenerovat token SAS a adresu URL.
- Zkopírujte adresu URL SAS objektu blob a uložte ji do textového souboru v zabezpečeném umístění.
- Tento postup opakujte pro každý virtuální pevný disk, který chcete publikovat.
Poznámka:
Pokud potřebujete vygenerovat identifikátor URI SAS s oprávněními ke čtení i seznamu, můžete to udělat tak, že ho vygenerujete na úrovni kontejneru. Postupujte podle stejných kroků výše, ale nezapomeňte vybrat oprávnění ke čtení i seznamu. Po dokončení kroku 6 budete muset přidat název souboru objektu blob před soubor ?sp=rl, abyste mohli odkazovat na soubor VHD v kontejneru. Pokud byl například soubor VHD "mytestvhd.vhd", identifikátor URI SAS by vypadal takto:
<container-service-endpoint>/mytestvhd.vhd?<sas-connection-string>
Použití nástroje 2: Azure CLI
V Azure CLI spusťte následující příkaz:
Azure CLICopy
Otevřete Cloud Shell a spusťte následující příkaz:
az storage container generate-sas --connection-string 'DefaultEndpointsProtocol=https;AccountName=\<account-name\>;AccountKey=\<account-key\>;EndpointSuffix=core.windows.net' --name \<container-name\> --permissions r --start '\<start-date\>' --expiry '\<expiry-date\>'
Před spuštěním výše uvedeného příkazu nezapomeňte vložit následující hodnoty parametrů.
Hodnota parametru Popis account-name Název vašeho účtu úložiště Azure. account-key Váš klíč účtu úložiště Azure. název_kontejneru Kontejner objektů blob, který je hostitelem souboru VHD. počáteční datum Toto je počáteční datum oprávnění pro přístup k virtuálnímu pevného disku. Zadejte datum jeden den před aktuálním datem. Pokud je například aktuální datum 15. července 2022, nastavte datum jako 14. 7. 2022. Zadejte data ve formátu data a času UTC (RRRR-MM-DDT00:00:00Z), například 2022-04-01T00:00:00Z. datum vypršení platnosti Toto je datum vypršení platnosti oprávnění pro přístup k virtuálnímu pevného disku. Zadejte datum alespoň tři týdny po aktuálním datu. Zadejte data ve formátu data a času UTC (RRRR-MM-DDT00:00:00Z), například 2022-04-01T00:00:00Z. Zkopírujte sas připojovací řetězec a uložte ho do textového souboru v zabezpečeném umístění. Upravte tento řetězec a přidejte informace o umístění virtuálního pevného disku a vytvořte konečný identifikátor URI SAS.
Na webu Azure Portal přejděte do kontejneru objektů blob, který obsahuje virtuální pevný disk přidružený k novému identifikátoru URI.
Zkopírujte adresu URL koncového bodu služby Blob Service.
Upravte textový soubor pomocí sas připojovací řetězec z kroku 2. Pomocí tohoto formátu vytvořte úplný identifikátor URI SAS. Nezapomeňte vložit "?" mezi adresu URL koncového bodu a připojovací řetězec.
<blob-service-endpoint-url>?<sas-connection-string>
Zprávy o selhání SAS virtuálního počítače
Tato tabulka ukazuje běžné chyby, ke kterým došlo při poskytování identifikátoru URI sdíleného přístupového podpisu (SAS) v Partnerském centru spolu s navrhovanými řešeními.
Problém | Chybová zpráva | Oprava |
---|---|---|
V identifikátoru URI SAS se nenašlo "?" | Must be a valid Azure shared access signature URI. |
Ujistěte se, že zadaný identifikátor URI SAS používá správnou syntaxi a obsahuje "?" znak. Syntaxe: <blob-service-endpoint-url>?<sas-connection-string> |
Parametr st není v identifikátoru URI SAS | Specified SAS URL cannot be reached. |
Aktualizujte identifikátor URI SAS správnou hodnotou počátečního data ("st"). |
Parametr "se" není v identifikátoru URI SAS | The end date parameter (se) is required. |
Aktualizujte identifikátor URI SAS správnou hodnotou koncového data ("se"). |
"sp=r" není v identifikátoru URI SAS | Missing Permissions (sp) must include 'read' (r). |
Aktualizujte identifikátor URI SAS s oprávněními nastavenými jako Read ("sp=r"). |
Chyba autorizace identifikátoru URI SAS | Failure: Copying Images. Not able to download blob due to authorization error. |
Zkontrolujte a opravte formát identifikátoru URI SAS. V případě potřeby znovu vygenerujte. |
Parametry identifikátoru URI SAS "st" a "se" nemají specifikaci úplného data a času | The start time parameter (st) is not a valid date string. NEBO The end date parameter (se) is not a valid date string. |
Parametry počátečního data a koncového data SAS (podřetězce st a se) musí mít úplný formát data a času (RRRR-MM-DDT00:00:00Z), například 11-02-2017T00:00:00Z. Zkrácené verze jsou neplatné (některé příkazy v Azure CLI můžou ve výchozím nastavení generovat zkrácené hodnoty). |
Podrobnosti najdete v tématu Udělení omezeného přístupu k prostředkům Azure Storage pomocí sdílených přístupových podpisů (SAS).
Ověření identifikátoru URI SAS
Než ho publikujete v Partnerském centru, zkontrolujte identifikátor URI SAS, abyste se vyhnuli problémům souvisejícím s identifikátorem URI SAS po odeslání žádosti. Tento proces je volitelný, ale doporučuje se.
- Identifikátor URI obsahuje název souboru image VHD, včetně přípony
.vhd
souboru . Sp=r
zobrazí se v blízkosti středu identifikátoru URI. Tento řetězec zobrazuje oprávnění ke čtení.- Když
sr=c
se zobrazí, znamená to, že je zadán přístup na úrovni kontejneru. - Zkopírujte a vložte identifikátor URI do prohlížeče a otestujte stažení objektu blob (operaci můžete před dokončením stahování zrušit).