Exporter (0) Imprimer
Développer tout

Set Container ACL

Mis à jour: avril 2014

L'opération Set Container ACL définit les autorisations pour le conteneur spécifié. Les autorisations indiquent si les objets blob dans un conteneur sont accessibles publiquement.

Depuis la version du 19/09/2009, les autorisations de conteneur fournissent les options suivantes pour gérer l'accès au conteneur :

  • Accès total en lecture public : les données de conteneur et d'objet BLOB peuvent être lues via une demande anonyme. Les clients peuvent énumérer des objets BLOB dans le conteneur via une demande anonyme, mais ils ne peuvent pas énumérer des conteneurs dans le compte de stockage.

  • Accès en lecture public pour les objets BLOB uniquement : les données d'objet BLOB de ce conteneur peuvent être lues via une demande anonyme, mais les données de conteneur ne sont pas disponibles. Les clients ne peuvent pas énumérer les objets BLOB du conteneur via une demande anonyme.

  • Aucun accès en lecture public : les données de conteneur et d'objet BLOB ne peuvent être lues que par le propriétaire du compte.

Set Container ACL définit également une stratégie d'accès stockée utilisable avec des signatures d'accès partagé. Pour plus d'informations, consultez Utiliser une stratégie d'accès stockée.

L'accès public au conteneur est anonyme, de même que l'accès via une signature d'accès partagé.

La demande Set Container ACL peut être construite comme indiqué ci-dessous. HTTPS est recommandé. Remplacez moncompte par le nom de votre compte de stockage :

 

Méthode URI de demande Version HTTP

PUT

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl

HTTP/1.1

Lorsque vous élaborez une demande pour le service de stockage émulé, spécifiez le nom d'hôte de l'émulateur et le port de service BLOB sous la forme 127.0.0.1:10000, suivi du nom de compte de stockage émulé :

 

Méthode URI de demande Version HTTP

PUT

http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl

HTTP/1.1

Pour plus d'informations, consultez Utilisation de l'émulateur de stockage Azure pour le développement et le test.

Les paramètres supplémentaires suivants peuvent être spécifiés dans l'URI de la demande.

 

Parameter Description

timeout

Ce paramètre est facultatif. Le paramètre timeout est exprimé en secondes. Pour plus d'informations, consultez Définition de délais d'expiration pour les opérations du service BLOB.

Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.

 

En-tête de demande Description

Authorization

Obligatoire. Spécifie le schéma d'authentification, le nom du compte et la signature. Pour plus d'informations, consultez Authentification pour les services de stockage Azure.

Date - ou - x-ms-date

Obligatoire. Spécifie le temps universel coordonné (UTC) pour la demande. Pour plus d'informations, consultez Authentification pour les services de stockage Azure.

x-ms-version

Ce paramètre est facultatif. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez Contrôle de version pour les services de stockage Azure.

x-ms-blob-public-access

Ce paramètre est facultatif. Spécifie si les données dans le conteneur sont accessibles publiquement et le niveau d'accès. Les valeurs possibles sont :

  • container : spécifie l'accès en lecture public complet pour les données de conteneur et d'objet blob. Les clients peuvent énumérer des objets BLOB dans le conteneur via une demande anonyme, mais ils ne peuvent pas énumérer des conteneurs dans le compte de stockage.

  • blob: spécifie l'accès en lecture public pour les objets blob. Les données d'objet blob au sein de ce conteneur peuvent être lues via une demande anonyme, mais les données du conteneur sont indisponibles. Les clients ne peuvent pas énumérer les objets BLOB du conteneur via une demande anonyme.

Si cet en-tête n'est pas inclus dans la demande, les données du conteneur sont privées pour le propriétaire du compte.

x-ms-lease-id: <ID>

Facultatif, version du 12/02/2012 ou ultérieure. Si cette valeur est spécifiée, Set Container ACL réussit uniquement si le bail du conteneur est actif et correspond à cet ID. En l'absence de bail actif ou si l'ID ne correspond pas, la valeur 412 (Échec de la précondition) est retournée.

x-ms-client-request-id

Ce paramètre est facultatif. Fournit une valeur opaque générée par le client avec une limite de caractère de 1 Ko qui est enregistrée dans les journaux d'analyse quand la journalisation de l'analyse de stockage est activée. L'utilisation de cet en-tête est recommandée pour la corrélation des activités côté client avec les requêtes reçues par le serveur. Pour plus d'informations, consultez À propos de la journalisation Storage Analytics et Journalisation du stockage Windows Azure : utilisation des journaux pour suivre les demandes de stockage.

Cette opération prend également en charge l'utilisation d'en-têtes conditionnels pour exécuter l'opération uniquement si une condition est remplie. Pour plus d'informations, consultez Spécification des en-têtes conditionnels pour les opérations du service BLOB.

Pour spécifier une stratégie d'accès stockée, indiquez un identificateur unique et une stratégie d'accès dans le corps de la demande pour l'opération Set Container ACL.

L'élément SignedIdentifier comprend l'identificateur unique, comme indiqué dans l'élément Id, et les détails de la stratégie d'accès, comme indiqué dans l'élément AccessPolicy. La longueur maximale de l'identificateur unique est de 64 caractères.

Les champs Start et Expiry doivent être exprimés en heures UTC et doivent être dans un format ISO 8061 valide. Les formats ISO 8061 pris en charge sont notamment :

  • YYYY-MM-DD

  • YYYY-MM-DDThh:mmTZD

  • YYYY-MM-DDThh:mm:ssTZD

  • YYYY-MM-DDThh:mm:ss.fffffffTZD

Pour la partie date de ces formats, YYYY est une représentation de l'année à quatre chiffres, MM est une représentation du mois à deux chiffres et DD est une représentation du jour à deux chiffres. Pour la partie heure, hh est la représentation de l'heure au format 24 heures, mm est la représentation des minutes à deux chiffres, ss est la représentation des secondes à deux chiffres et fffffff est la représentation des millisecondes à sept chiffres. Un indicateur de temps T sépare les parties date et heure de la chaîne, et un indicateur de fuseau horaire TZD spécifie un fuseau horaire.

<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
  <SignedIdentifier> 
    <Id>unique-64-character-value</Id>
    <AccessPolicy>
      <Start>start-time</Start>
      <Expiry>expiry-time</Expiry>
      <Permission>abbreviated-permission-list</Permission>
    </AccessPolicy>
  </SignedIdentifier>
</SignedIdentifiers>

Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1

Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 00:42:49 GMT
x-ms-blob-public-access: container
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=

Request Body:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
  <SignedIdentifier> 
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>
    <AccessPolicy>
      <Start>2009-09-28T08:49:37.0000000Z</Start>
      <Expiry>2009-09-29T08:49:37.0000000Z</Expiry>
      <Permission>rwd</Permission>
    </AccessPolicy>
  </SignedIdentifier>
</SignedIdentifiers>

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.

Une opération ayant réussi retourne le code d'état 200 (OK).

Pour plus d'informations sur les codes d'état, consultez Codes d'état et codes d'erreur.

La réponse de l'opération inclut les en-têtes suivants. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

 

En-tête de réponse Description

ETag

L'ETag du conteneur. Si la version de la demande est 18/08/2011 ou plus récente, la valeur de l'ETag sera entre guillemets.

Last-Modified

Retourne la date et l'heure de la dernière modification du conteneur. Le format de date suit RFC 1123. Pour plus d'informations, consultez la rubrique Représentation des valeurs Date/Heure dans les en-têtes.

Toute opération qui modifie le conteneur ou ses propriétés ou métadonnées met à jour l'heure de la dernière modification, notamment la définition des autorisations du conteneur. Les opérations sur les objets blob n'affectent pas l'heure de la dernière modification du conteneur.

x-ms-request-id

Cet en-tête identifie de façon unique la demande qui a été effectuée et peut être utilisé pour résoudre les problèmes de la demande. Pour plus d'informations, consultez Dépannage des opérations de l'API.

x-ms-version

Indique la version du service BLOB utilisée pour exécuter la demande. Cet en-tête est retourné pour les demandes effectuées avec la version du 19.09.09 ou ultérieure.

Date

Une valeur de date/heure UTC générée par le service qui indique le moment auquel la réponse a été initiée.

Response Status:
HTTP/1.1 200 OK

Response Headers:
Transfer-Encoding: chunked
Date: Sun, 25 Sep 2011 22:42:55 GMT
ETag: "0x8CB171613397EAB"
Last-Modified: Sun, 25 Sep 2011 22:42:55 GMT
x-ms-version: 2011-08-18
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

Seul le propriétaire du compte peut appeler cette opération.

Seul le propriétaire du compte peut accéder aux ressources dans un conteneur spécifique, sauf si le propriétaire a spécifié que les ressources conteneur sont disponibles pour un accès public en définissant des autorisations sur le conteneur, ou s'il a émis une signature d'accès partagé pour une ressource au sein du conteneur.

Lorsque vous définissez des autorisations pour un conteneur, les autorisations existantes sont remplacées. Pour mettre à jour les autorisations du conteneur, appelez Get Container ACL pour extraire toutes les stratégies d'accès associées au conteneur, modifiez la stratégie d'accès que vous voulez modifier, puis appelez Set Container ACL avec l'ensemble complet de données pour effectuer la mise à jour.

Activation de l'accès public anonyme sur les données du conteneur

Pour activer l'accès en lecture public anonyme sur les données de conteneur, appelez Set Container ACL avec l'en-tête x-ms-blob-public-access défini à la valeur container ou blob. Pour désactiver l'accès anonyme, appelez Set Container ACL sans spécifier l'en-tête x-ms-blob-public-access.

Si vous définissez x-ms-blob-public-access à la valeur blob, les clients peuvent appeler les opérations suivantes de façon anonyme :

Si vous définissez x-ms-blob-public-access à la valeur container, les clients peuvent appeler les opérations suivantes de façon anonyme :

Définition de stratégies d'accès au niveau du conteneur

Une stratégie d'accès stockée peut spécifier l'heure de début, l'heure d'expiration et les autorisations pour les signatures d'accès partagé auxquelles elle est associée. En fonction de la façon dont vous souhaitez contrôler l'accès à votre ressource de conteneur ou d'objet blob, spécifiez tous ces paramètres dans la stratégie d'accès et omettez-les dans l'URL de la signature d'accès partagé. De cette façon, vous pouvez modifier le comportement de la signature associée à tout moment, de même que la révoquer. Vous pouvez aussi spécifier un ou plusieurs paramètres de stratégie d'accès dans la stratégie d'accès stockée et les autres dans l'URL. Enfin, vous pouvez spécifier tous les paramètres dans l'URL. Dans ce cas, vous pouvez utiliser la stratégie d'accès stockée pour révoquer la signature et non pour modifier son comportement. Pour plus d'informations sur la définition de stratégie d'accès, consultez Utiliser une stratégie d'accès stockée.

La signature d'accès partagé et la stratégie d'accès stockée doivent inclure tous les champs obligatoires pour authentifier la signature. Si les champs obligatoires sont manquants, la demande échoue. De même, si un champ est spécifié dans l'URL de la signature d'accès partagé et dans la stratégie d'accès stockée, la demande échoue avec le code d'état 400 (Requête incorrecte). Consultez Creating a Shared Access Signature pour plus d'informations sur les champs qui composent une signature d'accès partagé.

Un maximum de cinq stratégies d'accès distinctes peuvent être définies pour un conteneur donné à tout moment. Si plus de cinq stratégies d'accès sont passées dans le corps de la demande, le service retourne le code d'état 400 (Demande incorrecte).

Une signature d'accès partagé peut être émise dans un conteneur ou un objet blob indépendamment du fait que des données de conteneur soient disponibles pour un accès en lecture anonyme. Une signature d'accès partagé fournit davantage de contrôle sur la façon dont une ressource est rendue accessible, sur qui peut y avoir accès et quand.

noteRemarque
Lorsque vous établissez une stratégie d'accès stockée sur un conteneur, son application peut prendre trente secondes. Au cours de cet intervalle, une signature d'accès partagé associée à la stratégie d'accès stockée échoue avec le code d'état 403 (Interdit), jusqu'à ce que la stratégie d'accès devienne active.

Afficher:
© 2014 Microsoft