Generieren eines SAS-URI für ein VM-Image
Hinweis
Ein Shared Access Signature (SAS)-URI kann zum Veröffentlichen Ihrer virtuellen Maschine (VM) verwendet werden. Alternativ können Sie ein Bild im Partner Center über den Azure-Compute-Katalog freigeben. Weitere Anweisungen finden Sie unter Erstellen einer virtuellen Maschine mit einer genehmigten Basis oder Erstellen einer virtuellen Maschine mit Ihrem eigenen Image.
Bevor Sie beginnen, benötigen Sie Folgendes:
- Einem virtuellen Computer
- Ein Speicherkonto mit einem Container zum Speichern der virtuellen Festplatte (VHD)
- Ihr Speicherkontoschlüssel
VHD aus einer VM extrahieren
Hinweis
Sie können diesen Schritt überspringen, wenn Sie bereits eine VHD in ein Speicherkonto hochgeladen haben.
Um die VHD von Ihrer VM zu extrahieren, müssen Sie zuerst einen Snapshot Ihres VM-Datenträgers erstellen und dann die VHD aus dem Snapshot in Ihr Speicherkonto extrahieren.
Erstellen Sie einen Snapshot Ihrer VM-Festplatte
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie Ressource erstellen aus, suchen Sie nach Snapshot und wählen Sie es aus.
- Wählen Sie auf dem Snapshot-Blatt Erstellen aus.
- Wählen Sie das Abonnement aus. Wählen Sie eine vorhandene Ressourcengruppe innerhalb des ausgewählten Abonnements oder Neu erstellen und geben Sie den Namen für eine neu zu erstellende Ressourcengruppe ein. Dies ist die Ressourcengruppe, der die Momentaufnahme zugeordnet wird.
- Geben Sie einen Namen für die Momentaufnahme ein.
- Wählen Sie als Quelltyp Azure Data Box Disk aus.
- Wählen Sie das Quellabonnement aus, bei dem es sich um das Abonnement handelt, das den VM-Datenträger enthält. Dies unterscheidet sich möglicherweise vom Zielabonnement der neuen Momentaufnahme.
- Wählen Sie für Quelldatenträger den verwalteten Datenträger aus, für den eine Momentaufnahme erstellt werden soll.
- Wählen Sie für den Speichertyp HDD Standard aus, es sei denn, Sie benötigen eine Speicherung auf einer Hochleistungs-SSD.
- Klicken Sie auf Überprüfen + erstellen. Wählen Sie nach erfolgreicher Validierung Erstellen aus.
Extrahieren Sie die VHD in Ihr Speicherkonto
Verwenden Sie das folgende Skript, um die Momentaufnahme in eine VHD in Ihrem Speicherkonto zu exportieren. Geben Sie für jeden Parameter Ihre Informationen entsprechend ein.
#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
Dieses Skript oben verwendet die folgenden Befehle zum Generieren des SAS-URI für einen Snapshot und kopiert die zugrunde liegende VHD mithilfe des SAS-URI in ein Speicherkonto.
Get-Help | Notizen |
---|---|
az disk grant-access | Generiert eine schreibgeschützte SAS, die verwendet wird, um die zugrunde liegende VHD-Datei in ein Speicherkonto zu kopieren oder sie lokal herunterzuladen. |
az storage blob copy start | Kopiert ein Blob asynchron aus einem Speicherkonto in ein anderes. Verwenden Sie az storage blob show, um den Status des neuen Blobs zu überprüfen. |
Generieren Sie den SAS-URI
Es gibt zwei gängige Tools zum Erstellen einer SAS-Adresse (URI):
- Azure Storage-Browser – Verfügbar im Azure-Portal.
- Azure CLI: Empfohlen für andere Betriebssysteme als Windows und für automatisierte Umgebungen oder Continuous Integration-Umgebungen.
Verwenden von Tool 1: Azure Storage-Browser
- Wechseln Sie zu Ihrem Speicherkonto.
- Öffnen Sie den Storage-Browser und wählen Sie Blob-Container aus.
- Klicken Sie in Ihrem Container mit der rechten Maustaste auf die VHD-Datei und wählen Sie SAS generieren aus.
- Füllen Sie im daraufhin angezeigten Menü "Signatur für freigegebenen Zugriff" die folgenden Felder aus:
- Berechtigungen – Wählen Sie Leseberechtigungen aus. Geben Sie keine Schreib- oder Löschberechtigungen an.
- Startdatum/-zeit – Dies ist das Startdatum der Berechtigung für den VHD-Zugriff. Geben Sie zum Schutz vor UTC-Zeitänderungen ein Datum an, das einen Tag vor dem aktuellen Datum liegt. Wenn das aktuelle Datum beispielsweise der 15. Juli 2022 ist, stellen Sie das Datum auf den 14.07.2022 ein.
- Ablaufdatum/-zeit – Dies ist das Ablaufdatum der Berechtigung für den VHD-Zugriff. Geben Sie ein Datum an, das mindestens drei Wochen nach dem aktuellen Datum liegt.
- Um den zugehörigen SAS-URI für diese VHD zu erstellen, wählen Sie SAS-Token und URL generieren aus.
- Kopieren Sie die Blob-SAS-URL, und speichern Sie sie an einem sicheren Ort in einer Textdatei.
- Wiederholen Sie diese Schritte für jede VHD, die Sie veröffentlichen möchten.
Hinweis
Wenn Sie einen SAS-URI mit Lese- und Listenberechtigungen generieren müssen, können Sie ihn auf Containerebene generieren. Führen Sie die gleichen Schritte oben aus, aber stellen Sie sicher, dass Sie sowohl Lese- als auch Listenberechtigungen auswählen. Nachdem Schritt 6 abgeschlossen ist, müssen Sie den Blob-Dateinamen vor dem "?sp=rl" hinzufügen, um auf Ihre VHD-Datei im Container zu verweisen. Wenn die VHD-Datei beispielsweise "mytestvhd.vhd" lautete, würde der SAS-URI wie folgt aussehen:
<container-service-endpoint>/mytestvhd.vhd?<sas-connection-string>
Verwenden von Tool 2: Azure CLI
Führen Sie in Azure CLI den folgenden Befehl aus:
Azure CLICopy
Öffnen Sie Cloud Shell, führen Sie den folgenden Befehl aus:
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\>'
Bevor Sie den obigen Befehl ausführen, denken Sie daran, die folgenden Parameterwerte einzufügen.
Parameterwert Beschreibung Kontobezeichnung Der Name Ihres Azure-Speicherkontos. Kontoschlüssel Ihr Azure-Speicherkontoschlüssel. container-name Ihr Blobcontainer, der die VHD-Datei hostet. Anfangsdatum Dies ist das Startdatum der Berechtigung für den VHD-Zugriff. Geben Sie ein Datum an, das einen Tag vor dem aktuellen Datum liegt. Wenn das aktuelle Datum beispielsweise der 15. Juli 2022 ist, stellen Sie das Datum auf den 14.07.2022 ein. Geben Sie Datumsangaben im UTC-Datums-/Uhrzeitformat (JJJJ-MM-TT00:00:00Z) an, z. B. 2022-04-01T00:00:00Z. Verfallsdatum Dies ist das Ablaufdatum der Berechtigung für den VHD-Zugriff. Geben Sie ein Datum an, das mindestens drei Wochen nach dem aktuellen Datum liegt. Geben Sie Datumsangaben im UTC-Datums-/Uhrzeitformat (JJJJ-MM-TT00:00:00Z) an, z. B. 2022-04-01T00:00:00Z. Kopieren Sie die SAS-Verbindungszeichenfolge, und speichern Sie sie in einer Textdatei an einem sicheren Ort. Bearbeiten Sie diese Zeichenfolge, und fügen Sie die Informationen zum Speicherort der virtuellen Festplatte hinzu, um den endgültigen SAS-URI zu erstellen.
Navigieren Sie im Azure-Portal zum Blobcontainer, der die VHD enthält, die dem neuen URI zugeordnet ist.
Kopieren Sie die URL des Blob-Dienstendpunkts.
Bearbeiten Sie die Textdatei mit der SAS-Verbindungszeichenfolge aus Schritt 2. Erstellen Sie den vollständigen SAS-URI in diesem Format. Achten Sie darauf, eine "?" zwischen der Endpunkt-URL und dem Verbindungszeichenfolge einzufügen.
<blob-service-endpoint-url>?<sas-connection-string>
SAS-Fehlermeldungen von virtuellen Computern
Diese Tabelle zeigt die häufigsten Fehler, die beim Bereitstellen eines Shared Access Signatures (SAS)-URI in Partner Center auftreten, zusammen mit Lösungsvorschlägen.
Problem | Fehlermeldung | Fix |
---|---|---|
„?“ wurde im SAS-URI nicht gefunden. | Must be a valid Azure shared access signature URI. |
Stellen Sie sicher, dass der bereitgestellte SAS-URI die richtige Syntax verwendet und die "?" enthält. Zeichen. Syntax: <blob-service-endpoint-url>?<sas-connection-string> |
"st"-Parameter nicht in SAS-URI | Specified SAS URL cannot be reached. |
Aktualisieren Sie den SAS-URI mit dem richtigen Wert für das Startdatum ("st"). |
„se“-Parameter nicht in SAS-URI | The end date parameter (se) is required. |
Aktualisieren Sie den SAS-URI mit dem richtigen Enddatumswert ("se"). |
„sp=r“ nicht im SAS-URI | Missing Permissions (sp) must include 'read' (r). |
Aktualisieren Sie den SAS-URI mit Berechtigungen, die als Read "sp=r" festgelegt sind. |
SAS-URI-Autorisierungsfehler | Failure: Copying Images. Not able to download blob due to authorization error. |
Überprüfen und korrigieren Sie das SAS-URI-Format. Generieren Sie ihn bei Bedarf neu. |
Die Parameter „st“ und „se“ des SAS-URI verfügen nicht über eine vollständige Angabe für Datum und Uhrzeit. | The start time parameter (st) is not a valid date string. ODER The end date parameter (se) is not a valid date string. |
Die SAS-URI-Parameter "Startdatum " und "Enddatum " ("st" und "se" Teilzeichenfolgen) müssen das vollständige Datum-Uhrzeit-Format (JJJJ-MM-DDT00:00:00Z) aufweisen, z. B. 11-02-2017T00:00:00Z. Verkürzte Versionen sind ungültig (einige Befehle in Azure CLI generieren möglicherweise standardmäßig gekürzte Werte). |
Ausführliche Informationen finden Sie unter Gewähren von eingeschränktem Zugriff auf Azure Storage-Ressourcen mithilfe von SAS (Shared Access Signature).
Überprüfen des SAS-URI
Überprüfen Sie den SAS-URI, bevor Sie ihn im Partner Center veröffentlichen, um Probleme im Zusammenhang mit der SAS-URI-Übermittlung der Anforderung zu vermeiden. Dieser Schritt ist optional, wird aber empfohlen.
- Der URI enthält den Namen Ihrer VHD-Imagedatei, einschließlich der Dateierweiterung
.vhd
. Sp=r
wird ungefähr in der Mitte Ihres URI angezeigt. Diese Zeichenfolge zeigt an, dass die Leseberechtigung erteilt wurde.sr=c
steht für Zugriff auf Containerebene.- Kopieren Sie den URI, und fügen Sie ihn in einen Browser ein, um das Blob testweise herunterzuladen. (Sie können den Vorgang vor Abschluss des Downloads abbrechen.)