Partager via


Autoriser l’accès AzCopy à l’aide d’une identité managée

Les identités managées offrent un moyen sécurisé et pratique d’autoriser les opérations AzCopy sans stocker d’informations d’identification ni gérer les jetons SAP. Cette méthode d’authentification est particulièrement utile pour les scripts automatisés, les pipelines CI/CD et les applications s’exécutant sur des machines virtuelles Azure ou d’autres services Azure.

Cet article explique comment configurer AzCopy pour utiliser des identités managées affectées par le système ou affectées par l’utilisateur. Vous pouvez autoriser l’accès via des variables d’environnement, la commande de connexion AzCopy ou en tirant parti des sessions Azure CLI ou Azure PowerShell existantes.

Pour plus d’informations sur les autres façons d’autoriser l’accès à AzCopy, consultez Autoriser AzCopy.

Vérifier les attributions de rôles

Vérifiez que votre identité managée a le rôle Azure requis pour vos opérations prévues :

Pour obtenir des instructions sur l’attribution de rôle, consultez Affecter un rôle Azure pour accéder aux données blob (Stockage Blob) ou Choisissez comment autoriser l’accès aux données de fichier dans le portail Azure (Azure Files).

Note

Les attributions de rôles peuvent prendre jusqu’à cinq minutes pour se propager.

Si vous transférez des objets blob dans un compte disposant d’un espace de noms hiérarchique, vous n’avez pas besoin d’attribuer l’un de ces rôles à votre principal de sécurité si vous ajoutez votre principal de sécurité à la liste de contrôle d’accès (ACL) 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 à l’aide de variables d’environnement

Pour autoriser l’accès, définissez 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.

Cette option est idéale si vous envisagez d’utiliser AzCopy à l’intérieur d’un script qui s’exécute sans interaction utilisateur et que le script s’exécute à partir d’une machine virtuelle Azure. Lorsque vous utilisez cette option, vous n’avez pas besoin de stocker d’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 activez sur votre machine virtuelle, ou à l’aide de l’ID client, de l’ID d’objet ou de l’ID de ressource d’une identité managée affectée par l’utilisateur que vous affectez à 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

Tout d’abord, veillez à activer une identité managée à l’échelle du système sur votre machine virtuelle. Pour plus d’informations, consultez Identité managée affectée par le système.

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

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Exécutez ensuite n’importe quelle 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

Tout d’abord, assurez-vous d’activer une identité managée affectée par l’utilisateur sur votre machine virtuelle. Pour plus d’informations, consultez l’identité managée assignée par l’utilisateur.

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

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Ensuite, définissez des variables d’environnement pour l’ID client, l’ID d’objet ou l’ID de ressource de l’identité managée affectée par l’utilisateur.

Utiliser un identifiant client

Pour autoriser à l’aide d’un ID client, tapez la commande suivante, puis appuyez sur 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.

Vous trouverez l’ID client dans le portail Azure en affichant les propriétés de l’identité managée. La capture d’écran suivante montre l’emplacement de la propriété ID client.

Capture d’écran montrant l’emplacement de l’ID client.

Utiliser un ID d’objet

Pour autoriser à l’aide d’un ID d’objet, tapez la commande suivante, puis appuyez sur Entrée.

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.

Vous trouverez l’ID d’objet dans le portail Azure en affichant les propriétés de l’identité managée. La capture d’écran suivante montre l’emplacement de l’ID d’objet (également appelé ID principal).

Capture d’écran montrant l’emplacement de l’ID d’objet.

Utiliser un ID de ressource

Pour autoriser à l’aide d’un ID de ressource, tapez la commande suivante, puis appuyez sur Entrée.

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.

Vous trouverez l’ID de ressource dans le portail Azure en affichant les propriétés de l’identité managée. La capture d’écran suivante montre l’emplacement de la propriété ID de ressource.

Capture d’écran montrant l’emplacement de l’ID de ressource.

Autoriser en utilisant la commande d’authentification de connexion AzCopy

Au lieu d’utiliser des variables en mémoire, autorisez l’accès à l’aide de la azcopy login commande.

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 authentication login ne fonctionne pas, car il n’existe pas de place pour le jeton.

Autoriser avec une identité gérée au niveau du système

Tout d’abord, veillez à activer une identité managée à l’échelle du système sur votre machine virtuelle. Pour plus d’informations, consultez Identité managée affecté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 avec une identité managée assignée par l'utilisateur

Tout d’abord, assurez-vous d’activer une identité managée affectée par l’utilisateur sur votre machine virtuelle. Pour plus d’informations, consultez l’identité managée assignée par l’utilisateur. Ensuite, connectez-vous à l’aide de l’ID client, de l’ID d’objet ou de l’ID de ressource de l’identité managée affectée par l’utilisateur.

Se connecter à l’aide d’un ID client

Tapez la commande suivante, puis appuyez sur 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.

Vous trouverez l’ID client dans le portail Azure en affichant les propriétés de l’identité managée. La capture d’écran suivante montre l’emplacement de la propriété ID client.

Capture d’écran montrant l’emplacement de l’ID client

Se connecter à l’aide d’un ID d’objet

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

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.

Vous trouverez l’ID d’objet dans le portail Azure en affichant les propriétés de l’identité managée. La capture d’écran suivante montre l’emplacement de l’ID d’objet (également appelé ID principal).

Capture d’écran montrant l’emplacement de l’ID d’objet

Se connecter à l’aide d’un ID de ressource

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

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.

Vous trouverez l’ID de ressource dans le portail Azure en affichant les propriétés de l’identité managée. La capture d’écran suivante montre l’emplacement de la propriété ID de ressource.

Capture d’écran montrant l’emplacement de l’ID de ressource

Autoriser avec Azure CLI

Lorsque vous vous connectez à l’aide d’Azure CLI, Azure CLI obtient un jeton OAuth utilisé par AzCopy 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
export AZCOPY_TENANT_ID=<tenant-id>

Pour plus d’informations sur la connexion à l’aide d’Azure CLI, consultez Se connecter à Azure avec une identité managée à l’aide d’Azure CLI.

Autoriser avec Azure PowerShell

Si vous vous connectez à l’aide d’Azure PowerShell, Azure PowerShell obtient un jeton OAuth que 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"
$Env:AZCOPY_TENANT_ID="<tenant-id>"

Pour plus d’informations sur la connexion à l’aide d’Azure PowerShell, consultez Connexion avec une identité managée.

Étapes suivantes

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

  • Si vous avez des questions, rencontrez des problèmes ou avez des commentaires généraux, envoyez-les sur GitHub.