Partage via


Autoriser l’accès aux objets blob et fichiers à l’aide d’AzCopy et de Microsoft Entra ID

Vous pouvez fournir à AzCopy des informations d’identification d’autorisation à l’aide de Microsoft Entra ID. De cette façon, vous n’aurez pas à ajouter un jeton de signature d’accès partagé (SAP) à chaque commande.

Commencez par vérifier vos attributions de rôles. Ensuite, choisissez le type de principal de sécurité que vous souhaitez autoriser. Il peut s’agir d’une identité d’utilisateur, d’une identité managée ou d’un principal de service.

Pour autoriser l’accès, vous allez définir des variables d’environnement en mémoire. Exécutez ensuite une commande AzCopy. AzCopy récupère le jeton d’authentification requis pour terminer l’opération. Une fois l’opération terminée, le jeton disparaît de la mémoire.

AzCopy récupère le jeton OAuth à l’aide des informations d’identification que vous fournissez. AzCopy peut également utiliser le jeton OAuth d’une session Azure CLI ou Azure PowerShell active.

Pour plus d’informations sur AzCopy, consultez Prise en main d’AzCopy.

Vérifier les attributions de rôles

Le niveau d’autorisation dont vous avez besoin repose sur votre volonté de planifier le chargement des fichiers, ou juste leur téléchargement.

Si vous voulez simplement télécharger les fichiers, vérifiez que le rôle Lecteur des données blob du stockage (Stockage Blob Azure) ou le rôle Lecteur privilégié des données du fichier de stockage (Azure Files) a été attribué à votre identité d’utilisateur, identité managée ou principal de service.

Si vous souhaitez téléverser des fichiers vers Stockage Blob Azure, vérifiez qu’un de ces rôles a été attribué à votre principal de sécurité.

Si vous souhaitez charger des fichiers dans un partage de fichiers Azure, vérifiez que le Lecteur privilégié des données du fichier de stockage a été affecté à votre principal de sécurité.

Ces rôles peuvent être attribués à votre principal de service sur l’une de ces étendues :

  • Conteneur (système de fichiers) ou partage de fichiers
  • Compte de stockage
  • Resource group
  • Abonnement

Pour savoir comment vérifier et attribuer des rôles, consultez Attribuer un rôle Azure pour l’accès aux données d’objet blob (Stockage Blob) ou Choisir comment autoriser l’accès à des données de fichier dans le Portail Azure (Azure Files).

Remarque

Gardez à l’esprit que la propagation des affectations de rôles Azure peut prendre cinq minutes.

Vous n’avez pas besoin qu’un de ces rôles soit assigné à votre responsable de la sécurité si votre responsable de la sécurité est ajouté à la liste de contrôle d’accès du conteneur ou du répertoire cible. Dans la liste de contrôle d’accès, votre responsable de la sécurité a besoin de droits d’écriture sur le répertoire cible et d’autorisation d’exécution sur le conteneur et chaque répertoire parent.

Pour en savoir plus, consultez Modèle de contrôle d’accès dans Azure Data Lake Storage.

Autoriser avec AzCopy

AzCopy utilise les informations d’identification que vous fournissez pour autoriser le principal de sécurité.

Autoriser une identité d’utilisateur

Après avoir vérifié que l’identité de l’utilisateur dispose du niveau d’autorisation nécessaire, tapez la commande suivante, puis appuyez sur la touche ENTRÉE.

export AZCOPY_AUTO_LOGIN_TYPE=DEVICE

Exécutez ensuite une commande AzCopy (par exemple azcopy list https://contoso.blob.core.windows.net).

Cette commande retourne un code d’authentification et l’URL d’un site web. Ouvrez le site web, indiquez le code, puis choisissez le bouton Suivant.

Créez un conteneur.

Une fenêtre de connexion s’affiche. Dans cette fenêtre, connectez-vous à votre compte Azure à l’aide de vos informations d’identification de compte Azure. Une fois votre session ouverte, l’opération peut s’effectuer.

Autoriser une identité managée

C’est une excellente option si vous prévoyez d’utiliser AzCopy à l’intérieur d’un script qui s'exécute sans interaction de l’utilisateur et depuis une machine virtuelle Azure. Lorsque vous utilisez cette option, vous n’êtes pas tenu de stocker les informations d’identification sur la machine virtuelle.

Vous pouvez vous connecter à votre compte à l’aide d’une identité managée à l’échelle du système que vous avez activée sur votre machine virtuelle, ou à l’aide de l’ID client, de l’ID objet ou de l’ID ressource d’une identité managée attribuée par l’utilisateur que vous avez attribuée à votre machine virtuelle.

Pour en savoir plus sur l’activation d’une identité managée à l'échelle du système ou la création d'une identité managée attribuée par l'utilisateur, consultez Configurer des identités managées pour ressources Azure sur une machine virtuelle en utilisant le portail Azure.

Autoriser à l’aide d’une identité managée à l’échelle du système

Commencez par vérifier que vous avez activé une identité managée à l'échelle du système sur votre machine virtuelle. Consultez Identité managée attribuée par le système.

Tapez la commande suivante, puis appuyez sur la touche ENTRÉE.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Exécutez ensuite une commande AzCopy (par exemple azcopy list https://contoso.blob.core.windows.net).

Autoriser à l’aide d’une identité managée attribuée par l’utilisateur

Commencez par vérifier que vous avez activé une identité managée attribuée par l'utilisateur sur votre machine virtuelle. Consultez Identité managée attribuée par l'utilisateur.

Tapez la commande suivante, puis appuyez sur la touche ENTRÉE.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Ensuite, tapez l’une des commandes suivantes, puis appuyez sur la touche ENTRÉE.

export AZCOPY_MSI_CLIENT_ID=<client-id>

Remplacez l'espace réservé <client-id> par l'ID client de l’identité managée attribuée par l’utilisateur.

export AZCOPY_MSI_OBJECT_ID=<object-id>

Remplacez l'espace réservé <object-id> par l'ID objet de l’identité managée attribuée par l’utilisateur.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

Remplacez l'espace réservé <resource-id> par l'ID ressource de l’identité managée attribuée par l’utilisateur.

Après avoir défini ces variables, vous pouvez exécuter n’importe quelle commande AzCopy (par exemple azcopy list https://contoso.blob.core.windows.net).

Autoriser un principal de service

C’est une excellente option si vous prévoyez d’utiliser AzCopy à l’intérieur d’un script qui s'exécute sans interaction de l’utilisateur, en local notamment. Si vous envisagez d’exécuter AzCopy sur des machines virtuelles s’exécutant dans Azure, une identité de service managée est plus facile à administrer. Pour plus d’informations, consultez la section Autoriser une identité managée dans cet article.

Vous pouvez vous connecter à votre compte en utilisant un secret client ou en utilisant le mot de passe d’un certificat qui est associé à l’enregistrement de l’application de votre directeur de service.

Pour en savoir plus sur la création d’un principal de service, consultez Procédure : Utiliser le portail pour créer une application et un principal du service Microsoft Entra pouvant accéder aux ressources.

Pour en savoir plus sur les principaux de service, consultez Objets application et principal de service dans Microsoft Entra ID

Autoriser un principal de service à l’aide d’une clé secrète client

Tapez la commande suivante, puis appuyez sur la touche ENTRÉE.

export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CLIENT_SECRET=<client-secret>
export AZCOPY_TENANT_ID=<tenant-id>

Remplacez l’espace réservé <application-id> par l’ID d’application de votre enregistrement d’application de principal de service. Remplacez l’espace réservé <client-secret> par la clé secrète client. Remplacez l’espace réservé <tenant-id> par l’ID de locataire de l’organisation à laquelle appartient le compte de stockage. Pour rechercher l’ID de locataire, sélectionnez Propriétés du locataire > ID de locataire dans le portail Azure.

Remarque

Utilisez de préférence une invite pour collecter le mot de passe de l’utilisateur. De cette façon, votre mot de passe n’apparaîtra pas dans votre historique de commandes.

Exécutez ensuite une commande AzCopy (par exemple azcopy list https://contoso.blob.core.windows.net).

Autoriser un principal de service à l’aide d’un certificat

Si vous préférez utiliser vos propres informations d’identification pour l’autorisation, vous pouvez télécharger un certificat à l’enregistrement de votre application, puis utiliser ce certificat pour vous connecter.

En plus de télécharger votre certificat dans votre application, vous devrez également avoir une copie du certificat enregistrée sur la machine ou la VM sur laquelle AzCopy sera exécuté. Cette copie du certificat doit être au format.PFX ou.PEM et doit inclure la clé privée. La clé privée doit être protégée par un mot de passe. Si vous utilisez Windows et que votre certificat n’existe que dans une liste de certificats, assurez-vous d’exporter ce certificat vers un fichier PFX (y compris la clé privée). Pour obtenir des instructions, consultez la page sur la cmdlet Export-PfxCertificate

Tapez la commande suivante, puis appuyez sur la touche ENTRÉE.

export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CERT_PATH=<path-to-certificate-file>
export AZCOPY_SPA_CERT_PASSWORD=<certificate-password>
export AZCOPY_TENANT_ID=<tenant-id>

Remplacez l’espace réservé <application-id> par l’ID d’application de votre enregistrement d’application de principal de service. Remplacez l’espace réservé <path-to-certificate-file> par le chemin d’accès complet ou relatif du fichier de certificat. AzCopy enregistre le chemin d’accès à ce certificat, mais il n’enregistre pas une copie du certificat, alors assurez-vous de garder ce certificat en place. Remplacez l’espace réservé <certificate-password> par le mot de passe du certificat. Remplacez l’espace réservé <tenant-id> par l’ID de locataire de l’organisation à laquelle appartient le compte de stockage. Pour rechercher l’ID de locataire, sélectionnez Propriétés du locataire > ID de locataire dans le portail Azure.

Remarque

Utilisez de préférence une invite pour collecter le mot de passe de l’utilisateur. De cette façon, votre mot de passe n’apparaîtra pas dans votre historique de commandes.

Exécutez ensuite une commande AzCopy (par exemple azcopy list https://contoso.blob.core.windows.net).

Autoriser à l’aide de la commande de connexion AzCopy

En guise d’alternative à l’utilisation de variables en mémoire, vous autorisez l’accès à l’aide de la commande azcopy login.

La commande azcopy login récupère un jeton OAuth, puis place ce jeton dans un magasin de secrets sur votre système. Si votre système d’exploitation ne dispose pas d’un magasin des secrets comme un porte-clés Linux, la commande azcopy login ne fonctionne pas, car il n’y pas de place pour le jeton.

Autoriser une identité utilisateur (commande azcopy login)

Une fois que vous avez vérifié que votre identité d’utilisateur est associée au niveau d’autorisation nécessaire, ouvrez une invite de commandes, saisissez la commande suivante, puis appuyez sur la touche ENTRÉE.

azcopy login

Si vous recevez une erreur, essayez d’inclure l’ID de locataire de l’organisation à laquelle appartient le compte de stockage.

azcopy login --tenant-id=<tenant-id>

Remplacez l’espace réservé <tenant-id> par l’ID de locataire de l’organisation à laquelle appartient le compte de stockage. Pour rechercher l’ID de locataire, sélectionnez Propriétés du locataire > ID de locataire dans le portail Azure.

Cette commande retourne un code d’authentification et l’URL d’un site web. Ouvrez le site web, indiquez le code, puis choisissez le bouton Suivant.

Créez un conteneur.

Une fenêtre de connexion s’affiche. Dans cette fenêtre, connectez-vous à votre compte Azure à l’aide de vos informations d’identification de compte Azure. Une fois connecté, vous pouvez fermer la fenêtre du navigateur et commencer à utiliser AzCopy.

Autoriser à l’aide d’une identité managée à l’échelle du système (commande azcopy login)

Commencez par vérifier que vous avez activé une identité managée à l'échelle du système sur votre machine virtuelle. Consultez Identité managée attribuée par le système.

Ensuite, dans votre console de commande, entrez la commande suivante et appuyez sur la touche ENTRÉE.

azcopy login --identity

Autoriser à l’aide d’une identité managée affectée par l’utilisateur (commande azcopy login)

Commencez par vérifier que vous avez activé une identité managée attribuée par l'utilisateur sur votre machine virtuelle. Consultez Identité managée attribuée par l'utilisateur.

Ensuite, dans votre console de commande, entrez une des commandes suivantes et appuyez sur la touche ENTRÉE.

azcopy login --identity --identity-client-id "<client-id>"

Remplacez l'espace réservé <client-id> par l'ID client de l’identité managée attribuée par l’utilisateur.

azcopy login --identity --identity-object-id "<object-id>"

Remplacez l'espace réservé <object-id> par l'ID objet de l’identité managée attribuée par l’utilisateur.

azcopy login --identity --identity-resource-id "<resource-id>"

Remplacez l'espace réservé <resource-id> par l'ID ressource de l’identité managée attribuée par l’utilisateur.

Autoriser un principal de service (commande azcopy login)

Avant d’exécuter un script, vous devez vous connecter de manière interactive au moins une fois afin de pouvoir fournir à AzCopy les informations d’identification de votre fournisseur de services. Ces informations d’identification sont stockées dans un fichier sécurisé et chiffré afin que votre script n’ait pas à fournir ces informations sensibles.

Vous pouvez vous connecter à votre compte en utilisant un secret client ou en utilisant le mot de passe d’un certificat qui est associé à l’enregistrement de l’application de votre directeur de service.

Pour en savoir plus sur la création d’un principal de service, consultez Procédure : Utiliser le portail pour créer une application et un principal du service Microsoft Entra pouvant accéder aux ressources.

Autoriser un principal de service à l’aide d’une clé secrète client (commande azcopy login)

Commencez par définir la variable d’environnement AZCOPY_SPA_CLIENT_SECRET pour la clé secrète client de votre inscription d’application de principal de service.

Notes

Assurez-vous de définir cette valeur à partir de votre invite de commande, et non dans les paramètres des variables d’environnement de votre système d’exploitation. De cette façon, la valeur n’est disponible que pour la session en cours.

Cet exemple montre comment vous pouvez le faire dans PowerShell.

$env:AZCOPY_SPA_CLIENT_SECRET="$(Read-Host -prompt "Enter key")"

Notes

Envisagez d’utiliser une invite comme dans cet exemple. De cette façon, votre mot de passe n’apparaîtra pas dans l’historique des commandes de votre console.

Ensuite, tapez la commande suivante, puis appuyez sur la touche ENTRÉE.

azcopy login --service-principal  --application-id application-id --tenant-id=tenant-id

Remplacez l’espace réservé <application-id> par l’ID d’application de votre enregistrement d’application de principal de service. Remplacez l’espace réservé <tenant-id> par l’ID de locataire de l’organisation à laquelle appartient le compte de stockage. Pour rechercher l’ID de locataire, sélectionnez Propriétés du locataire > ID de locataire dans le portail Azure.

Autoriser un principal de service à l’aide d’un certificat (commande azcopy login)

Si vous préférez utiliser vos propres informations d’identification pour l’autorisation, vous pouvez télécharger un certificat à l’enregistrement de votre application, puis utiliser ce certificat pour vous connecter.

En plus de télécharger votre certificat dans votre application, vous devrez également avoir une copie du certificat enregistrée sur la machine ou la VM sur laquelle AzCopy sera exécuté. Cette copie du certificat doit être au format.PFX ou.PEM et doit inclure la clé privée. La clé privée doit être protégée par un mot de passe. Si vous utilisez Windows et que votre certificat n’existe que dans une liste de certificats, assurez-vous d’exporter ce certificat vers un fichier PFX (y compris la clé privée). Pour obtenir des instructions, consultez la page sur la cmdlet Export-PfxCertificate

Ensuite, définissez la variable d’environnement AZCOPY_SPA_CERT_PASSWORD pour le mot de passe du certificat.

Notes

Assurez-vous de définir cette valeur à partir de votre invite de commande, et non dans les paramètres des variables d’environnement de votre système d’exploitation. De cette façon, la valeur n’est disponible que pour la session en cours.

Cet exemple montre comment vous pouvez effectuer cette tâche dans PowerShell.

$env:AZCOPY_SPA_CERT_PASSWORD="$(Read-Host -prompt "Enter key")"

Ensuite, tapez la commande suivante, puis appuyez sur la touche ENTRÉE.

azcopy login --service-principal --application-id application-id --certificate-path <path-to-certificate-file> --tenant-id=<tenant-id>

Remplacez l’espace réservé <application-id> par l’ID d’application de votre enregistrement d’application de principal de service. Remplacez l’espace réservé <path-to-certificate-file> par le chemin d’accès complet ou relatif du fichier de certificat. AzCopy enregistre le chemin d’accès à ce certificat, mais il n’enregistre pas une copie du certificat, alors assurez-vous de garder ce certificat en place. Remplacez l’espace réservé <tenant-id> par l’ID de locataire de l’organisation à laquelle appartient le compte de stockage. Pour rechercher l’ID de locataire, sélectionnez Propriétés du locataire > ID de locataire dans le portail Azure.

Remarque

Envisagez d’utiliser une invite comme dans cet exemple. De cette façon, votre mot de passe n’apparaîtra pas dans l’historique des commandes de votre console.

Autoriser avec Azure CLI

Si vous vous connectez à l’aide d’Azure CLI, Azure CLI obtient un jeton OAuth qu’AzCopy peut utiliser pour autoriser les opérations.

Pour permettre à AzCopy d’utiliser ce jeton, tapez la commande suivante, puis appuyez sur la touche ENTRÉE.

export AZCOPY_AUTO_LOGIN_TYPE=AZCLI

Pour plus d’informations sur la connexion avec l’interface Azure CLI, consultez Se connecter avec Azure CLI.

Autoriser avec Azure PowerShell

Si vous vous connectez à l’aide d’Azure PowerShell, Azure PowerShell obtient un jeton OAuth qu’AzCopy peut utiliser pour autoriser les opérations.

Pour permettre à AzCopy d’utiliser ce jeton, tapez la commande suivante, puis appuyez sur la touche ENTRÉE.

$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"

Pour plus d’informations sur la connexion avec Azure PowerShell, consultez Se connecter avec Azure PowerShell.

Étapes suivantes

  • Pour plus d’informations sur AzCopy, consultez Prise en main d’AzCopy.

  • Si vous avez des questions, des problèmes ou des commentaires d’ordre général, saisissez-les sur la page GitHub.