Partage via


Génération d’un URI SAS pour une image de machine virtuelle

Remarque

Un URI de signature d’accès partagé (SAP) peut être utilisé pour publier votre machine virtuelle. Vous pouvez également partager une image dans l’Espace partenaires via la galerie de calcul Azure. Reportez-vous à Créer une machine virtuelle à l’aide d’une base approuvée ou Créer une machine virtuelle à l’aide de votre propre image pour plus d’instructions.

Avant de commencer, vous devez effectuer les opérations suivantes :

Extraire le disque dur virtuel à partir d’une machine virtuelle

Remarque

Vous pouvez ignorer cette étape si vous disposez déjà d’un disque dur virtuel chargé dans un compte de stockage.

Pour extraire le VHD de votre VM, vous devez d'abord prendre un instantané du disque de votre VM, puis extraire le VHD de l'instantané dans votre compte de stockage.

Effectuer une capture instantanée du disque de la machine virtuelle.

  1. Connectez-vous au portail Azure.
  2. Sélectionnez Créer une ressource, puis recherchez et sélectionnez Instantané.
  3. Dans le panneau Instantané, sélectionnez Créer.
  4. Sélectionnez l’abonnement. Sélectionnez un groupe de ressources existant dans l’abonnement sélectionné ou Créer, puis entrez le nom du nouveau groupe de ressources à créer. Il s’agit du groupe de ressources auquel l’instantané est associé.
  5. Entrez un nom pour la capture instantanée.
  6. Dans Type de source, sélectionnez Disque.
    1. Sélectionnez l’abonnement source, qui est l’abonnement qui contient le disque de machine virtuelle. Cela peut être différent de l’abonnement de destination du nouvel instantané.
  7. Dans Disque source, sélectionnez le disque managé dont vous souhaitez obtenir une capture instantanée.
  8. Pour le Type de stockage, utilisez Standard HDD, sauf si vous avez besoin de stocker sur un disque SSD hautes performances.
  9. Sélectionnez Vérifier + créer. Après la validation, sélectionnez Créer.

Extraire le disque dur virtuel dans votre compte de stockage

Utilisez le script suivant pour exporter l’instantané dans un disque dur virtuel de votre compte de stockage. Pour chacun des paramètres, insérez vos informations en conséquence.

#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

Ce script utilise les commandes suivantes afin de générer l’URI SAS pour un instantané et copie le VHD sous-jacent vers un compte de stockage à l’aide de l’URI SAS.

Commande Notes
az disk grant-access Génère l’URI SAP en lecture seule qui est utilisé pour copier le fichier de VHD sous-jacent vers un compte de stockage ou le télécharger en local
az storage blob copy start Copiez un objet blob de façon asynchrone à partir d’un compte de stockage vers un autre. Utilisez az storage blob show pour vérifier l’état du nouvel objet blob.

Générer l’URI SAS

Deux outils sont couramment utilisés pour créer une adresse (URI) SAS :

  • Explorateur de stockage Azure– Disponible sur le Portail Azure.
  • Azure CLI : outil recommandé pour les systèmes d’exploitation autres que Windows et les environnements d’intégration automatisée ou continue.

Utilisation de l’outil 1 : Explorateur de stockage Azure

  1. Accédez à votre compte de stockage.
  2. Ouvrez le navigateur de stockage et sélectionnez conteneurs d’objets blob.
  3. Dans votre conteneur, cliquez avec le bouton droit sur le fichier VHD, puis sélectionnez Générer une SAP.
  4. Dans le menu Signature d’accès partagé qui s’affiche, renseignez les champs suivants :
    • Autorisations : sélectionnez les autorisations de lecture. Ne fournissez pas d’autorisations d’écriture ou de suppression.
    • Date/heure de début : il s’agit de la date de début de l’autorisation pour l’accès au disque dur virtuel. Pour vous protéger contre les changements de temps UTC, choisissez la veille de la date actuelle comme date de début. Par exemple, si la date actuelle est le 15 juillet 2022, définissez la date comme 14/07/2022.
    • Date/heure d'expiration - Il s'agit de la date d'expiration de l'autorisation d'accès au VHD. Indiquez une date correspondant au moins à trois semaines après la date du jour.
  5. Pour créer l’URI SAS associé pour ce disque dur virtuel, sélectionnez Générer un jeton SAS et une URL.
  6. Copiez l'URL du Blob SAS et enregistrez-la dans un fichier texte à un emplacement sécurisé.
  7. Répétez ces étapes pour chaque disque dur virtuel que vous souhaitez publier.

Remarque

Si vous devez générer un URI SAP avec des autorisations de lecture et de liste, vous pouvez le faire en le générant au niveau du conteneur. Suivez les mêmes étapes ci-dessus, mais veillez à sélectionner les autorisations de lecture et de liste. Une fois l’étape 6 terminée, vous devrez ensuite ajouter le nom du fichier blob avant « ?sp=rl » pour référencer votre fichier de disque dur virtuel dans le conteneur. Par exemple, si le fichier VHD était « mytestvhd.vhd », l’URI SAS se présente comme suit :

<container-service-endpoint>/mytestvhd.vhd?<sas-connection-string>

Utilisation de l’outil 2 : Azure CLI

  1. Dans Azure CLI, exécutez la commande suivante : Azure CLICopy

  2. Ouvrez Cloud Shell, exécutez la commande suivante :

    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\>'

  3. Avant d’exécuter la commande ci-dessus, n’oubliez pas d’insérer les valeurs de paramètre suivantes.

    Valeur de paramètre Description
    account-name Nom de votre compte de stockage Azure
    account-key Clé de votre compte de stockage Azure
    container-name Votre conteneur d’objets blob qui héberge le fichier VHD.
    start-date Date de début de l’autorisation d’accès au disque dur virtuel. Indiquez une date correspondant à la veille de la date du jour. Par exemple, si la date actuelle est le 15 juillet 2022, définissez la date comme 14/07/2022. Fournissez des dates au format de date/heure UTC (AAAA-MM-DDT00:00:00Z), telles que 2022-04-01T00:00:00:00Z.
    expiry-date Date de fin de l’autorisation d’accès au disque dur virtuel. Indiquez une date postérieure d’au moins trois semaines à la date actuelle. Fournissez des dates au format de date/heure UTC (AAAA-MM-DDT00:00:00Z), telles que 2022-04-01T00:00:00:00Z.
  4. Copiez la chaîne de connexion SAS et enregistrez-la dans un fichier texte à un emplacement sécurisé. Modifiez cette chaîne pour ajouter les informations d’emplacement du disque dur virtuel associé afin de créer l’URI de SAS final.

  5. Dans le portail Azure, accédez au conteneur d’objets blob qui comprend le disque dur virtuel associé au nouvel URI.

  6. Copiez l’URL du point de terminaison du service Blob.

  7. Modifiez le fichier texte avec la chaîne de connexion SAS obtenue à l’étape 2. Créez l’URI de SAS complet en utilisant le format suivant. Veillez à insérer un « ? » entre l’URL du point de terminaison et la chaîne de connexion.

    <blob-service-endpoint-url>?<sas-connection-string>

Messages d’échec SAS de machine virtuelle

Ce tableau présente les erreurs courantes rencontrées lors de la fourniture d’un URI de signatures d’accès partagé (SAP) dans l’Espace partenaires, ainsi que des résolutions suggérées.

Problème Message d’échec Fix
« ? » est introuvable dans l’URI SAS Must be a valid Azure shared access signature URI. Vérifiez que l’URI SAP fourni utilise la syntaxe appropriée et inclut le « ? » personnage.
Syntaxe : <blob-service-endpoint-url>?<sas-connection-string>
Le paramètre « st » ne figure pas dans l'URI SAS Specified SAS URL cannot be reached. Mettez à jour l’URI SAS en y incluant la valeur Date de début (« st »).
Le paramètre « se » ne figure pas dans l'URI SAS The end date parameter (se) is required. Mettez à jour l’URI SAS avec une valeur de date de fin (« se ») appropriée.
« sp=rl » absent de l’URI SAS Missing Permissions (sp) must include 'read' (r). Mettez à jour l’URI SAP avec des autorisations définies Read sur (« sp=r »).
Erreur d’autorisation d’URI SAS Failure: Copying Images. Not able to download blob due to authorization error. Examinez et corrigez le format d’URI SAP. Régénérez-le si nécessaire.
Les paramètres « st » et « se » de l’URI SAS ne présentent pas une spécification de date-heure complète The start time parameter (st) is not a valid date string.
OR
The end date parameter (se) is not a valid date string.
Les paramètres date et date de fin de l’URI SAS (« st » et « se » sous-chaînes) doivent avoir un format date-heure complet (AAAA-MM-DDT00:00:00Z), par exemple 11-02-2017T00:00:00Z. Les versions raccourcies ne sont pas valides (certaines commandes dans Azure CLI peuvent générer des valeurs raccourcies par défaut).

Pour plus de détails, consultez Accorder un accès limité aux ressources Stockage Azure à l’aide des signatures d’accès partagé (SAP).

Vérifier l’URI SAS

Vérifiez l’URI de SAS avant de le publier dans l’Espace partenaires afin d’éviter tout problème lié à l’URI SAS une fois la demande effectuée. Ce processus est facultatif mais recommandé.

  • L’URI comprend le nom du fichier image de votre disque dur virtuel, y compris l’extension .vhd.
  • Sp=r apparaît près du milieu de votre URI. Cette chaîne montre que l’autorisation Lecture est accordée.
  • Quand sr=c s’affiche, cela signifie que l’accès au niveau du conteneur est spécifié.
  • Copiez et collez l’URI dans un navigateur afin de tester-télécharger l’objet blob (vous pouvez annuler l’opération avant la fin du téléchargement).