Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une signature d’accès partagé (SAP) vous permet d’accorder un accès limité aux conteneurs et aux objets blob de votre compte de stockage. Lorsque vous créez une SAP, vous spécifiez ses contraintes, notamment les ressources de Stockage Azure auxquelles un client est autorisé à accéder, les autorisations dont ils disposent sur ces ressources et la durée de validité de la SAP.
Chaque SAS est signée à l’aide d’une clé. Vous pouvez signer une SAP grâce à l’une des deux méthodes suivantes :
- Avec une clé créée en utilisant les informations d’identification Microsoft Entra. Une SAS signée avec des informations d’identification Microsoft Entra est une SAS de délégation d’utilisateur. Un client qui crée une SAS de délégation d’utilisateur doit se voir attribuer un rôle RBAC Azure qui inclut l’action Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. Pour en savoir plus, consultez Créer une SAS de délégation d'utilisateur.
- Avec la clé du compte de stockage. Une SAP de service et une SAP de compte sont signées avec la clé du compte de stockage. Le client qui crée une signature d’accès partagé de service doit avoir un accès direct à la clé de compte ou une autorisation Microsoft.Storage/storageAccounts/listkeys/action. Pour plus d’informations, consultez Créer une SAS de service ou Créer une SAS de compte.
Remarque
Une SAP de délégation d’utilisateur offre une meilleure sécurité à une SAP signée avec la clé de compte de stockage. Microsoft recommande d’utiliser une SAP de délégation d’utilisateur dans la mesure du possible. Pour plus d’informations, consultez Accorder un accès limité aux données avec des signatures d’accès partagé (SAP).
Cet article explique comment utiliser les identifiants Microsoft Entra pour créer un SAS de délégation utilisateur pour un conteneur ou un blob à l’aide d’Azure CLI.
À propos de la SAS de délégation d’utilisateur
Un jeton SAS pour l'accès à un conteneur ou à un blob peut être sécurisé à l'aide d'informations d'identification Microsoft Entra ou d'une clé de compte. Un SAS sécurisé avec les informations d'identification Microsoft Entra est appelé SAS de délégation d'utilisateur, car le jeton OAuth 2.0 utilisé pour signer le SAS est demandé au nom de l'utilisateur.
Comme meilleure pratique de sécurité, Microsoft vous recommande d’utiliser si possible les informations d’identification Microsoft Entra, plutôt que d’utiliser la clé de compte qui peut être plus facilement compromise. Lorsque la conception de votre application nécessite des signatures d'accès partagé, utilisez les informations d'identification Microsoft Entra pour créer une SAS de délégation d'utilisateurs pour une sécurité supérieure. Pour plus d’informations sur la SAP de délégation d’utilisateur, consultez Créer une SAP de délégation d’utilisateur.
Caution
Tout client disposant d’une SAP valide peut accéder aux données de votre compte de stockage tel qu’autorisé par cette SAP. Il est important de protéger une SAP contre toute utilisation malveillante ou involontaire. Faites preuve de discernement pour distribuer un SAS et prévoyez un plan pour révoquer un SAS compromis. Pour éviter toute utilisation involontaire, utilisez un SAS de délégation d’utilisateur lié à un utilisateur, qui associe le jeton SAS à l’utilisateur final visé et ne peut être utilisé par personne d’autre.
Pour plus d’informations sur les signatures d'accès partagées, consultez Accorder un accès limité aux ressources de stockage Azure à l’aide de signatures d'accès partagées (SAP).
Installer la dernière version d’Azure CLI
Pour utiliser l’Azure CLI afin de sécuriser un SAS avec les identifiants Microsoft Entra, assurez-vous d’abord d’avoir installé la dernière version d’Azure CLI. Pour plus d’informations sur l’installation de l’Azure CLI, voir Installer l’Azure CLI.
Pour créer un SAS de délégation utilisateur en utilisant la interface Azure CLI, assurez-vous d’avoir installé la version 2.0.78 ou ultérieure. Pour vérifier la version installée, utilisez la az --version commande.
Se connecter avec des informations d’identification Microsoft Entra
Connectez-vous à Azure CLI avec vos identifiants Microsoft Entra. Pour plus d’informations, consultez Se connecter avec Azure CLI.
Attribuer des permissions avec Azure RBAC
Pour créer une SAP de délégation d’utilisateur à partir d’Azure PowerShell, le compte Microsoft Entra utilisé pour se connecter à l’interface de ligne de commande Azure doit se voir attribuer un rôle incluant l’action Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. Cette permission permet à ce compte Microsoft Entra de demander la clé de délégation utilisateur. La clé de délégation utilisateur est utilisée pour signer le SAS de délégation utilisateur. Le rôle qui fournit l’action Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey doit être assigné au niveau du compte de stockage, du groupe de ressources ou de l’abonnement.
Si vous n’avez pas suffisamment d’autorisations pour attribuer des rôles Azure à un principal de sécurité Microsoft Entra, il se peut que vous deviez demander au propriétaire du compte ou à l’administrateur d’attribuer les autorisations nécessaires.
L’exemple suivant attribue le rôle de Contributeur de données de Blob de Stockage, qui inclut l’action Microsoft. Storage/storageAccounts/blobServices/generateUserDelegationKey. Le rôle est défini au niveau du compte de stockage.
N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs :
az role assignment create \
--role "Storage Blob Data Contributor" \
--assignee <email> \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>"
Pour plus d’informations sur les rôles intégrés qui incluent l’action Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey, consultez Rôles intégrés Azure.
Utilisez les identifiants Microsoft Entra pour sécuriser un SAS
Lorsque vous créez un jeton SAS de délégation d’utilisateur avec Azure CLI, la clé de délégation d’utilisateur utilisée pour signer ce jeton SAS est créée implicitement pour vous. L’heure de début et l’expiration que vous spécifiez pour le SAS sont également utilisées comme heure de début et expiration pour la clé de délégation utilisateur.
Comme l’intervalle maximal pendant lequel la clé de délégation utilisateur est valide est de 7 jours à compter de la date de début, vous devez spécifier une date d’expiration pour le SAS qui se situe dans les 7 jours suivant la date de début. Le SAS devient invalide après l’expiration de la clé de délégation utilisateur, donc un SAS avec une expiration supérieure à 7 jours ne sera valable que pendant 7 jours.
Lors de la création d’un SAS de délégation utilisateur, les --auth-mode login et --as-user parameters sont requis. Spécifiez la connexion pour ce --auth-mode paramètre afin que les requêtes faites sur stockage Azure soient autorisées avec vos identifiants Microsoft Entra. Spécifiez le --as-user paramètre indiquant que le SAS retourné doit être un SAS de délégation utilisateur.
Créer un SAS de délégation utilisateur pour un conteneur
Pour créer un SAS de délégation utilisateur pour un conteneur avec Azure CLI, appelez la commande az storage container generate-sas.
Les permissions prises en charge pour une délégation utilisateur SAS sur un conteneur incluent Ajouter, Créer, Supprimer, Lister, Lire et Écrire. Les autorisations peuvent être spécifiées individuellement ou combinées. Pour plus d’informations sur ces permissions, voir Créer une SAS de délégation utilisateur.
L’exemple suivant renvoie un jeton SAS de délégation utilisateur pour un conteneur. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs :
az storage container generate-sas \
--account-name <storage-account> \
--name <container> \
--permissions acdlrw \
--expiry <date-time> \
--auth-mode login \
--as-user
Le jeton SAS de délégation utilisateur retourné sera similaire à :
se=2019-07-27&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sktid=<sktid>&skt=2019-07-26T18%3A01%3A22Z&ske=2019-07-27T00%3A00%3A00Z&sks=b&skv=2018-11-09&sig=<signature>
Remarque
Le jeton SAS retourné par Stockage Blob n'inclut pas le caractère délimiteur (' ?') pour la chaîne de requête URL. Si vous ajoutez le jeton SAS à une URL de ressource, n’oubliez pas d’ajouter également le caractère délimiteur.
Créez un SAS de délégation utilisateur pour un blob
Pour créer un SAS de délégation d’utilisateur pour un blob à l’aide d’Azure CLI, appelez la commande az storage blob generate-sas.
Les autorisations prises en charge pour une SAS de délégation utilisateur pour un blob incluent l’ajout, la création, la suppression, la lecture et l’écriture. Les autorisations peuvent être spécifiées individuellement ou combinées. Pour plus d’informations sur ces permissions, voir Créer une SAS de délégation utilisateur.
La syntaxe suivante renvoie un SAS de délégation utilisateur pour un blob. L’exemple spécifie le --full-uri paramètre, qui retourne l’URI du blob avec le jeton SAS ajouté. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs :
az storage blob generate-sas \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--permissions acdrw \
--expiry <date-time> \
--auth-mode login \
--as-user \
--full-uri
L’URI SAS de délégation utilisateur retournée sera similaire à :
https://storagesamples.blob.core.windows.net/sample-container/blob1.txt?se=2019-08-03&sp=rw&sv=2018-11-09&sr=b&skoid=<skoid>&sktid=<sktid>&skt=2019-08-02T2
2%3A32%3A01Z&ske=2019-08-03T00%3A00%3A00Z&sks=b&skv=2018-11-09&sig=<signature>
Remarque
Le jeton SAS retourné par Azure CLI n'inclut pas le caractère délimiteur (' ?') pour la chaîne de requête URL. Si vous ajoutez le jeton SAP à une URL de ressource, n’oubliez pas d’ajouter le caractère délimiteur à l’URL de la ressource avant d’ajouter le jeton SAP.
Un SAS de délégation utilisateur ne prend pas en charge la définition des permissions avec une politique d’accès stockée.
Révoquer une SAS de délégation d’utilisateur
Pour révoquer une SAS de délégation utilisateur à partir d’Azure CLI, exécutez la commande az storage account revoke-delegation-keys. Cette commande révoque toutes les clés de délégation utilisateur associées au compte de stockage spécifié. Toute signature d’accès partagée associée à ces clés est invalidée.
N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs :
az storage account revoke-delegation-keys \
--name <storage-account> \
--resource-group <resource-group>
Important
La clé de délégation utilisateur et les attributions de rôles Azure sont toutes deux mises en cache par stockage Azure, il peut donc y avoir un délai entre le moment où vous initiez le processus de révocation et le moment où un SAS de délégation utilisateur existant devient invalide.