Explorer les stratégies d’accès stockées
Une stratégie d’accès stockée fournit un niveau de contrôle supplémentaire sur les signatures d’accès partagé au niveau du service (SAP) côté serveur. L’établissement de groupes de stratégies d’accès stockées pour les SAS fournit des restrictions supplémentaires pour les signatures liées par ces stratégies. Vous pouvez utiliser une stratégie d’accès stockée pour modifier l’heure de début, l’heure d’expiration ou les autorisations d’une signature, ou pour la révoquer après son émission.
Les ressources de stockage suivantes prennent en charge les stratégies d’accès stockées :
- Conteneurs d’objets blob
- Partages de fichiers
- Files d'attente
- Tables
Création d’une stratégie d’accès enregistrée
La stratégie d’accès pour une SAP se compose de l’heure de début, de l’heure d’expiration et des autorisations pour la signature. Vous pouvez spécifier tous ces paramètres sur l’URI de signature et aucun dans la stratégie d’accès stockée ; tous sur la stratégie d’accès stockée et aucun sur l’URI ; ou une combinaison des deux. Toutefois, vous ne pouvez pas spécifier un paramètre donné sur le jeton SAP et la stratégie d’accès stockée.
Pour créer ou modifier une stratégie d'accès stockée, appelez l'opération Set ACL
pour la ressource (voir Définir la liste de contrôle d'accès du conteneur, Définir la liste de contrôle d'accès de file d'attente, Définir la liste de contrôle d'accès de tableou Définir la liste de contrôle d'accès de partage) avec un corps-de-requête qui spécifie les termes de la stratégie d'accès. Le corps de la requête inclut un identificateur signé unique de votre choix, jusqu’à 64 caractères de longueur et les paramètres facultatifs de la stratégie d’accès, comme suit :
Note
Lorsque vous établissez une stratégie d’accès stockée sur un conteneur, une table, une file d’attente ou un partage, cela peut prendre jusqu’à 30 secondes pour entrer en vigueur. Pendant ce temps, les demandes adressées à une SAP associée à la stratégie d’accès stockée peuvent échouer avec le code d’état 403 (Interdit), jusqu’à ce que la stratégie d’accès devienne active. Les restrictions de plage d’entités de table (startpk
, startrk
, endpk
et endrk
) ne peuvent pas être spécifiées dans une stratégie d’accès stockée.
Voici des exemples de création d’une stratégie d’accès stockée à l’aide de C# .NET et d’Azure CLI.
BlobSignedIdentifier identifier = new BlobSignedIdentifier
{
Id = "stored access policy identifier",
AccessPolicy = new BlobAccessPolicy
{
ExpiresOn = DateTimeOffset.UtcNow.AddHours(1),
Permissions = "rw"
}
};
blobContainer.SetAccessPolicy(permissions: new BlobSignedIdentifier[] { identifier });
az storage container policy create \
--name <stored access policy identifier> \
--container-name <container name> \
--start <start time UTC datetime> \
--expiry <expiry time UTC datetime> \
--permissions <(a)dd, (c)reate, (d)elete, (l)ist, (r)ead, or (w)rite> \
--account-key <storage account key> \
--account-name <storage account name> \
Modification ou révocation d’une stratégie d’accès stockée
Pour modifier les paramètres de la stratégie d’accès stockée, vous pouvez appeler l’opération de liste de contrôle d’accès pour le type de ressource afin de remplacer la stratégie existante. Par exemple, si votre stratégie existante accorde des autorisations de lecture et d’écriture à une ressource, vous pouvez la modifier pour accorder uniquement des autorisations de lecture pour toutes les demandes futures.
Pour révoquer une stratégie d’accès stockée, vous pouvez la supprimer, la renommer en modifiant l’identificateur signé ou en remplaçant l’heure d’expiration par une valeur dans le passé. La modification de l’identificateur signé interrompt les associations entre les signatures existantes et la stratégie d’accès stockée. Modifier l'heure d'expiration pour une valeur antérieure entraîne l'expiration des signatures associées. La suppression ou la modification de la stratégie d’accès stockée affecte immédiatement toutes les SAP associées.
Pour supprimer une seule stratégie d'accès, appelez l'opération Set ACL
de la ressource, en transmettant l'ensemble des identificateurs signés que vous souhaitez conserver sur le conteneur. Pour supprimer toutes les stratégies d’accès de la ressource, appelez l’opération de Set ACL
avec un corps de requête vide.