Choisir comment autoriser l’accès à des données blob avec Azure CLI

Le service Stockage Azure fournit des extensions pour Azure CLI qui vous permettent de spécifier comment autoriser des opérations sur des données blob. Vous pouvez autoriser des opérations de données des manières suivantes :

  • Avec un principal de sécurité Microsoft Entra. Microsoft recommande d’utiliser des informations d’identification Microsoft Entra pour une meilleure sécurité et une plus grande facilité d’utilisation.
  • Avec la clé d’accès au compte ou un jeton de signature d’accès partagé (SAP).

Spécifier la façon dont les opérations de données sont autorisées

Les commandes Azure CLI pour la lecture et l’écriture de données blob incluent le paramètre facultatif --auth-mode. Spécifiez-le pour indiquer comment une opération de données doit être autorisée :

  • Définissez le paramètre --auth-mode sur login pour vous connecter en utilisant un principal de sécurité Microsoft Entra (recommandé).
  • Définissez le paramètre --auth-mode sur la valeur key héritée pour tenter de récupérer la clé d’accès au compte à utiliser pour l’autorisation. Si vous omettez le paramètre --auth-mode, Azure CLI tente également de récupérer la clé d’accès.

Pour utiliser le paramètre --auth-mode, assurez-vous qu’Azure CLI version 2.0.46 ou ultérieure est installé. Exécutez az --version pour vérifier la version installée.

Notes

Quand un compte de stockage est verrouillé à l’aide d’un verrou ReadOnly Azure Resource Manager, l’opération Répertorier les clés n’est pas autorisée pour ce compte de stockage. Répertorier les clés est une opération POST, et toutes les opérations POST sont empêchées lorsqu’un verrou ReadOnly est configuré pour le compte. Pour cette raison, quand le compte est verrouillé avec un verrou ReadOnly, les utilisateurs qui ne détiennent pas déjà les clés de compte doivent utiliser des informations d’identification Microsoft Entra pour accéder aux données des objets blob.

Important

Si vous omettez le paramètre --auth-mode ou si vous le définissez sur key, Azure CLI tente d’utiliser la clé d’accès au compte pour l’autorisation. Dans ce cas, Microsoft recommande de fournir la clé d’accès sur la commande ou dans la variable d’environnement AZURE_STORAGE_KEY. Pour plus d’informations sur les variables d’environnement, voir la section intitulée Définir des variables d’environnement pour les paramètres d’autorisation.

Si vous ne fournissez pas la clé d’accès, Azure CLI tente d’appeler le fournisseur de ressources de Stockage Azure afin de le récupérer pour chaque opération. L’exécution de nombreuses opérations de données nécessitant un appel au fournisseur de ressources peut entraîner une limitation. Pour plus d’informations sur les limites du fournisseur de ressources, voir Objectifs de scalabilité et de performances pour le fournisseur de ressources de Stockage Azure.

Autoriser avec des informations d’identification Microsoft Entra

Quand vous vous connectez à Azure CLI avec des informations d’identification Microsoft Entra, un jeton d’accès OAuth 2.0 est retourné. Ce jeton est utilisé automatiquement par Azure CLI pour autoriser les opérations de données suivantes sur le Stockage Blob ou File d’attente. Pour les opérations prises en charge, vous n’avez plus besoin de fournir une clé de compte ou le jeton SAP avec la commande.

Vous pouvez attribuer des autorisations sur les données d’objets blob à un principal de sécurité Microsoft Entra via le contrôle d’accès en fonction du rôle Azure (Azure RBAC). Pour plus d’informations sur les rôles Azure dans Azure Storage, consultez Attribuer un rôle Azure pour l’accès aux données d’objet blob.

Autorisations pour appeler des opérations de données

Les extensions Stockage Azure sont prises en charge pour les opérations sur les données Blob. Les opérations que vous pouvez appeler dépendent des autorisations accordées au principal de sécurité Microsoft Entra avec lequel vous vous connectez à Azure CLI. Les autorisations sur les conteneurs Stockage Azure sont attribuées via Azure RBAC. Par exemple, si le rôle Lecteur des données blob du stockage vous est attribué, vous pouvez exécuter des commandes de script qui lisent les données d’un conteneur. Si le rôle Contributeur aux données blob du stockage vous est attribué, vous pouvez exécuter des commandes de script qui lisent, écrivent ou suppriment un conteneur ou les données qu’il contient.

Pour plus d’informations sur les autorisations requises pour chaque opération Stockage Azure sur un conteneur, consultez Appeler des opérations de stockage avec des jetons OAuth.

Exemple : autoriser une opération à créer un conteneur avec des informations d’identification Microsoft Entra

L’exemple suivant montre comment créer un conteneur depuis Azure CLI en utilisant vos informations d’identification Microsoft Entra. Pour créer le conteneur, vous devez vous connecter à l’interface CLI Azure et aurez besoin d’un groupe de ressources et d’un compte de stockage. Pour savoir comment créer ces ressources, voir Démarrage rapide : Créer, télécharger et lister des objets blob avec Azure CLI.

  1. Avant de créer le conteneur, attribuez-vous le rôle Contributeur aux données Blob du stockage. Même si vous êtes le propriétaire du compte, vous avez besoin d’autorisations explicites pour effectuer des opérations de données sur le compte de stockage. Pour plus d’informations sur l’attribution de rôles Azure, consultez Attribuer un rôle Azure pour l’accès aux données d’objet blob.

    Important

    La propagation des attributions de rôles Azure peut prendre plusieurs minutes.

  2. Appelez la commande az storage container create avec le paramètre --auth-mode défini sur login pour créer le conteneur en utilisant vos informations d’identification Microsoft Entra. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs :

    az storage container create \
        --account-name <storage-account> \
        --name sample-container \
        --auth-mode login
    

Autoriser avec la clé d’accès au compte

Si vous possédez la clé de compte, vous pouvez appeler toute opération de données Azure Storage. En général, l’utilisation de la clé de compte est moins sécurisée. Si la clé de compte est compromise, toutes les données de votre compte peuvent l’être également.

L’exemple suivant montre comment créer un conteneur à l’aide de la clé d’accès au compte. Spécifiez la clé de compte et fournissez le paramètre --auth-mode avec la valeur key :

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --account-key <key>
    --auth-mode key

Important

Quand un compte de stockage est verrouillé à l’aide d’un verrou ReadOnly Azure Resource Manager, l’opération Répertorier les clés n’est pas autorisée pour ce compte de stockage. Répertorier les clés est une opération POST, et toutes les opérations POST sont empêchées lorsqu’un verrou ReadOnly est configuré pour le compte. Pour cette raison, quand le compte est verrouillé avec un verrou ReadOnly, les utilisateurs doivent accéder aux données avec des informations d’identification Microsoft Entra.

Autoriser avec un jeton SAP

Si vous possédez un jeton SAP, vous pouvez appeler des opérations de données autorisées par la signature d’accès partagé. L’exemple suivant montre comment créer un conteneur à l’aide d’un jeton SAP :

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --sas-token <token>

Définir des variables d’environnement pour les paramètres d’autorisation

Vous pouvez spécifier des paramètres d’autorisation dans des variables d’environnement afin d’éviter de les inclure à chaque appel à une opération de données Azure Storage. Le tableau suivant décrit les variables d’environnement disponibles.

Variable d’environnement Description
AZURE_STORAGE_ACCOUNT nom du compte de stockage. Cette variable doit être utilisée conjointement avec la clé de compte de stockage ou un jeton SAS. Si aucun des deux n’est présent, Azure CLI tente de récupérer la clé d’accès au compte de stockage en utilisant le compte Microsoft Entra authentifié. Si un grand nombre de commandes sont exécutées en même temps, la limitation du fournisseur de ressources de Stockage Azure peut être atteinte. Pour plus d’informations sur les limites du fournisseur de ressources, voir Objectifs de scalabilité et de performances pour le fournisseur de ressources de Stockage Azure.
AZURE_STORAGE_KEY La clé du compte de stockage. Cette variable doit être utilisée conjointement avec le nom du compte de stockage.
AZURE_STORAGE_CONNECTION_STRING Chaîne de connexion contenant la clé de compte de stockage ou un jeton SAP. Cette variable doit être utilisée conjointement avec le nom du compte de stockage.
AZURE_STORAGE_SAS_TOKEN Utilisez un jeton de signature d’accès partagé (SAP). Cette variable doit être utilisée conjointement avec le nom du compte de stockage.
AZURE_STORAGE_AUTH_MODE Mode d’autorisation avec lequel exécuter la commande. Les valeurs autorisées sont login (recommandée) ou key. Si vous spécifiez login, Azure CLI utilise vos informations d’identification Microsoft Entra pour autoriser l’opération de données. Si vous spécifiez le mode key hérité, Azure CLI tente d’interroger la clé d’accès au compte et d’autoriser la commande avec cette clé.

Étapes suivantes