Een SAS-URI genereren voor een VM-installatiekopieën
Notitie
Een SAS-URI (Shared Access Signature) kan worden gebruikt om uw virtuele machine (VM) te publiceren. U kunt ook een installatiekopieën delen in Partnercentrum via de Azure-rekengalerie. Raadpleeg Een virtuele machine maken met behulp van een goedgekeurde basis of Een virtuele machine maken met behulp van uw eigen installatiekopieën voor verdere instructies.
Voordat u aan de slag gaat, hebt u het volgende nodig:
- Een virtuele machine
- Een opslagaccount met een container voor het opslaan van de virtuele harde schijf (VHD)
- Uw opslagaccountsleutel
VHD extraheren uit een VIRTUELE machine
Notitie
U kunt deze stap overslaan als u al een VHD hebt geüpload naar een opslagaccount.
Als u de VHD wilt extraheren uit uw virtuele machine, moet u eerst een momentopname van de VM-schijf maken en vervolgens de VHD uit de momentopname uitpakken in uw opslagaccount.
Een momentopname maken van uw VM-schijf
- Meld u aan bij de Azure Portal.
- Selecteer Een resource maken en zoek en selecteer Momentopname.
- Selecteer Maken op de blade Momentopname.
- Selecteer het abonnement. Selecteer een bestaande resourcegroep binnen het geselecteerde abonnement of Maak een nieuwe resourcegroep en voer de naam in voor een nieuwe resourcegroep die moet worden gemaakt. Dit is de resourcegroep waarmee de momentopname wordt gekoppeld.
- Voer een naam in voor de momentopname.
- Selecteer Schijf voor brontype.
- Selecteer het bronabonnement. Dit is het abonnement dat de VM-schijf bevat. Dit kan afwijken van het doelabonnement van de nieuwe momentopname.
- Selecteer de beheerde schijf om een momentopname te maken voor de bronschijf.
- Voor het opslagtype selecteert u Standard HDD , tenzij u deze op een ssd met hoge prestaties wilt opslaan.
- Selecteer Controleren + maken. Wanneer de validatie is geslaagd, selecteert u Maken.
Pak de VHD uit in uw opslagaccount
Gebruik het volgende script om de momentopname te exporteren naar een VHD in uw opslagaccount. Voeg voor elk van de parameters uw gegevens dienovereenkomstig in.
#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
In dit script hierboven worden de volgende opdrachten gebruikt om de SAS-URI voor een momentopname te genereren en de onderliggende VHD te kopiëren naar een opslagaccount met behulp van de SAS-URI.
Opdracht | Opmerkingen |
---|---|
az disk grant-access | Genereert alleen-lezen-SAS die wordt gebruikt om het onderliggende VHD-bestand naar een opslagaccount te kopiëren of naar on-premises te downloaden. |
az storage blob copy start | Kopieert een blob asynchroon van het ene opslagaccount naar het andere. Gebruik az storage blob show om de status van de nieuwe blob te controleren. |
De SAS-URI genereren
Er zijn twee veelgebruikte hulpprogramma's voor het maken van een SAS-adres (URI):
- Azure Storage-browser : beschikbaar in Azure Portal.
- Azure CLI : aanbevolen voor niet-Windows-besturingssystemen en geautomatiseerde of continue integratieomgevingen.
Hulpprogramma 1 gebruiken: Azure Storage-browser
- Ga naar uw Opslagaccount.
- Open de Opslagbrowser en selecteer blobcontainers.
- Klik in uw container met de rechtermuisknop op het VHD-bestand en selecteer SAS genereren.
- Vul in het menu Shared Access Signature dat wordt weergegeven de volgende velden in:
- Machtigingen: leesmachtigingen selecteren. Geef geen schrijf- of verwijdermachtigingen op.
- Begindatum/-tijd: dit is de begindatum van de machtiging voor VHD-toegang. Als u wilt beveiligen tegen wijzigingen in UTC-tijd, geeft u een datum op die één dag vóór de huidige datum valt. Als de huidige datum bijvoorbeeld 15 juli 2022 is, stelt u de datum in op 14-07-2022.
- Vervaldatum/-tijd: dit is de vervaldatum van de machtiging voor VHD-toegang. Geef een datum op ten minste drie weken na de huidige datum.
- Als u de bijbehorende SAS-URI voor deze VHD wilt maken, selecteert u SAS-token en URL genereren.
- Kopieer de SAS-URL voor blob en sla deze op een veilige locatie op in een tekstbestand.
- Herhaal deze stappen voor elke VHD die u wilt publiceren.
Notitie
Als u een SAS-URI wilt genereren met zowel lees- als lijstmachtigingen, kunt u dit doen door deze op containerniveau te genereren. Volg dezelfde stappen hierboven, maar zorg ervoor dat u zowel lees- als lijstmachtigingen selecteert. Zodra stap 6 is voltooid, moet u de naam van het blobbestand vóór de '?sp=rl' toevoegen om te verwijzen naar uw VHD-bestand in de container. Als het VHD-bestand bijvoorbeeld 'mytestvhd.vhd' is, ziet de SAS-URI er als volgt uit:
<container-service-endpoint>/mytestvhd.vhd?<sas-connection-string>
Hulpprogramma 2 gebruiken: Azure CLI
Voer in Azure CLI de volgende opdracht uit:
Azure CLICopy
Open Cloud Shell en voer de volgende opdracht uit:
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\>'
Voordat u de bovenstaande opdracht uitvoert, moet u de volgende parameterwaarden invoegen.
Parameterwaarde Beschrijving account-name De naam van uw Azure-opslagaccount. account-key Uw Azure Storage-accountsleutel. container-name Uw blobcontainer die als host fungeert voor het VHD-bestand. begindatum Dit is de begindatum van de machtiging voor VHD-toegang. Geef een datum op één dag vóór de huidige datum. Als de huidige datum bijvoorbeeld 15 juli 2022 is, stelt u de datum in op 14-07-2022. Geef datums op in de DATUM-/tijdnotatie (JJJJ-MM-DDT00:00:00Z), zoals 2022-04-01T00:00:00Z. vervaldatum Dit is de vervaldatum van de machtiging voor VHD-toegang. Geef ten minste drie weken na de huidige datum een datum op. Geef datums op in de DATUM-/tijdnotatie (JJJJ-MM-DDT00:00:00Z), zoals 2022-04-01T00:00:00Z. Kopieer de SAS-verbindingsreeks en sla deze op een veilige locatie op in een tekstbestand. Bewerk deze tekenreeks om de locatiegegevens van de VHD toe te voegen om de uiteindelijke SAS-URI te maken.
Ga in Azure Portal naar de blobcontainer met de VHD die is gekoppeld aan de nieuwe URI.
Kopieer de URL van het blobservice-eindpunt.
Bewerk het tekstbestand met de SAS-verbindingsreeks uit stap 2. Maak de volledige SAS-URI met deze indeling. Zorg ervoor dat u een '?' invoegt tussen de eindpunt-URL en de verbindingsreeks.
<blob-service-endpoint-url>?<sas-connection-string>
Sas-foutberichten voor virtuele machines
In deze tabel ziet u de veelvoorkomende fouten die zijn opgetreden bij het opgeven van een SAS-URI (Shared Access Signatures) in partnercentrum, samen met voorgestelde oplossingen.
Probleem | Foutbericht | Fix |
---|---|---|
'? is niet gevonden in sas-URI | Must be a valid Azure shared access signature URI. |
Zorg ervoor dat de opgegeven SAS-URI de juiste syntaxis gebruikt en de '?' bevat karakter. Syntaxis: <blob-service-endpoint-url>?<sas-connection-string> |
Parameter 'st' niet in SAS-URI | Specified SAS URL cannot be reached. |
Werk de SAS-URI bij met de juiste begindatum ('st'). |
Parameter 'se' niet in SAS-URI | The end date parameter (se) is required. |
Werk de SAS-URI bij met de juiste einddatum ('se'). |
"sp=r" niet in SAS-URI | Missing Permissions (sp) must include 'read' (r). |
Werk de SAS-URI bij met machtigingen die zijn ingesteld als Read ('sp=r'). |
Sas-URI-autorisatiefout | Failure: Copying Images. Not able to download blob due to authorization error. |
Controleer en corrigeer de SAS-URI-indeling. Genereer indien nodig opnieuw. |
Sas-URI -parameters 'st' en 'se' hebben geen volledige datum-tijdspecificatie | The start time parameter (st) is not a valid date string. OF The end date parameter (se) is not a valid date string. |
Parameters voor SAS-URI-begindatum en einddatum ('st' en 'se' subtekenreeksen) moeten de volledige datum-tijdnotatie hebben (JJJJ-MM-DDT00:00:00Z), zoals 11-02-2017T00:00:00Z. Verkorte versies zijn ongeldig (sommige opdrachten in Azure CLI genereren standaard verkorte waarden). |
Zie Beperkte toegang verlenen tot Azure Storage-resources met sas (Shared Access Signatures) voor meer informatie.
De SAS-URI controleren
Controleer de SAS-URI voordat u deze publiceert in Het Partnercentrum om problemen met betrekking tot sas-URI na indiening van de aanvraag te voorkomen. Dit proces is optioneel, maar wordt aanbevolen.
- De URI bevat de bestandsnaam van uw VHD-installatiekopieën, inclusief de bestandsnaamextensie
.vhd
. Sp=r
wordt weergegeven in het midden van uw URI. Deze tekenreeks geeft aan dat de machtiging Lezen is verleend.- Wanneer
sr=c
dit wordt weergegeven, betekent dit dat toegang op containerniveau is opgegeven. - Kopieer en plak de URI in een browser om de blob te testen en te downloaden (u kunt de bewerking annuleren voordat het downloaden is voltooid).