Set Container ACL

Tramite l'operazione Set Container ACL vengono impostate le autorizzazioni per il contenitore specificato. Le autorizzazioni indicano se i BLOB di un contenitore sono accessibili pubblicamente.

A partire dalla versione 2009-09-19, le autorizzazioni del contenitore forniscono le opzioni seguenti per la gestione dell'accesso al contenitore:

  • Accesso in lettura pubblico completo: i dati del contenitore e del Blob possono essere letti tramite una richiesta anonima. I client possono enumerare i BLOB all'interno del contenitore tramite richiesta anonima, ma non possono enumerare i contenitori all'interno dell'account di archiviazione.

  • Accesso in lettura pubblico solo per i BLOB: I dati BLOB all'interno di questo contenitore possono essere letti tramite richiesta anonima, ma i dati del contenitore non sono disponibili. I client non possono enumerare i BLOB all'interno del contenitore tramite una richiesta anonima.

  • Nessun accesso in lettura pubblico: i dati del contenitore e del Blob possono essere letti solo dal proprietario dell'account.

Set Container ACL consente inoltre di impostare un criterio di accesso archiviato per l'utilizzo con le firme di accesso condiviso. Per altre informazioni, vedere Definire un criterio di accesso archiviato.

L'accesso pubblico al contenitore è anonimo, come lo è quello effettuato attraverso una firma di accesso condiviso.

Richiesta

La richiesta Set Container ACL può essere costruita come segue. È consigliabile usare HTTPS. Sostituire myaccount con il nome dell'account di archiviazione:

Metodo URI richiesta Versione HTTP
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1

Richiesta del servizio di archiviazione emulata

Quando si effettua una richiesta nel servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta del servizio Blob come 127.0.0.1:10000, seguiti dal nome dell'account di archiviazione emulato:

Metodo URI richiesta Versione HTTP
PUT http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl HTTP/1.1

Per altre informazioni, vedere Usare l'emulatore Azurite per lo sviluppo locale di Archiviazione di Azure.

Parametri URI

È possibile specificare i parametri aggiuntivi seguenti nell'URI della richiesta:

Parametro Descrizione
timeout Facoltativa. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostare timeout per le operazioni del servizio BLOB.

Intestazioni della richiesta

Le intestazioni di richiesta obbligatorie e facoltative sono descritte nella tabella seguente:

Intestazione della richiesta Descrizione
Authorization Obbligatorio. Specifica lo schema di autorizzazione, il nome dell'account e la firma. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
Date o x-ms-date Obbligatorio. Specifica la data per la richiesta nel fuso orario UTC (Coordinated Universal Time). Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
x-ms-version facoltativo. Specifica la versione dell'operazione da usare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure.
x-ms-blob-public-access facoltativo. Specifica se i dati nel contenitore sono accessibili pubblicamente e il livello di accesso. I valori possibili sono:

- container: specifica l'accesso in lettura pubblico completo per i dati del contenitore e del BLOB. I client possono enumerare i BLOB all'interno del contenitore tramite richiesta anonima, ma non possono enumerare i contenitori all'interno dell'account di archiviazione.
- blob: Specifica l'accesso in lettura pubblico per i BLOB. I dati BLOB all'interno di questo contenitore possono essere letti tramite richiesta anonima, ma i dati del contenitore non sono disponibili. I client non possono enumerare i BLOB all'interno del contenitore tramite una richiesta anonima.

Se questa intestazione non è inclusa nella richiesta, i dati del contenitore sono privati per il proprietario dell'account.

Si noti che l'impostazione dell'accesso pubblico per un contenitore in un account di Archiviazione Premium di Azure non è consentita.
x-ms-lease-id: <ID> Facoltativo, versione 2012-02-12 e versioni successive. Se è specificato, Set Container ACL ha esito positivo solo se il lease del contenitore è attivo e corrisponde a questo ID. Se non esiste un lease attivo o l'ID non corrisponde, viene restituito 412 (Precondizione non riuscita).
x-ms-client-request-id facoltativo. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log quando la registrazione è configurata. È consigliabile usare questa intestazione per correlare le attività lato client con le richieste ricevute dal server. Per altre informazioni, vedere Monitorare Archiviazione BLOB di Azure.

Questa operazione supporta l'utilizzo delle intestazioni condizionali per eseguire l'operazione solo se viene soddisfatta una determinata condizione. Per altre informazioni, vedere Specificare intestazioni condizionali per le operazioni del servizio BLOB.

Testo della richiesta

Per specificare criteri di accesso archiviati, specificare un identificatore univoco e criteri di accesso nel corpo della richiesta per l'operazione Set Container ACL.

L'elemento SignedIdentifier contiene l'identificatore univoco, come specificato nell'elemento Id, e i dettagli dei criteri di accesso, come specificato nell'elemento AccessPolicy. La lunghezza massima dell'identificatore univoco è 64 caratteri.

I campi Start e Expiry devono essere espressi come ore UTC ed essere conformi a un formato ISO 8061 valido. Di seguito sono elencati alcuni formati ISO 8061 supportati:

  • YYYY-MM-DD
  • YYYY-MM-DDThh:mmTZD
  • YYYY-MM-DDThh:mm:ssTZD
  • YYYY-MM-DDThh:mm:ss.fffffffTZD

Per la parte relativa alla data di questi formati, YYYY è una rappresentazione dell'anno a quattro cifre, MM è la rappresentazione del mese a due cifre e DD è la rappresentazione del giorno a due cifre. Per la parte relativa all'ora, hh è la rappresentazione dell'ora nel formato 24 ore, mm è la rappresentazione dei minuti a due cifre, ss è la rappresentazione dei secondi a due cifre e fffffff è la rappresentazione dei millisecondi a sette cifre. Un designatore dell'ora separa le parti di data e ora della stringa e un designatore TTZD del fuso orario specifica un fuso orario.

<?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>  
  

Richiesta di esempio

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>  
  

Risposta

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

Codice stato

Un'operazione completata correttamente restituisce 200 (OK).

Per altre informazioni sui codici di stato, vedere Codici di stato e di errore.

Intestazioni di risposta

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; inoltre, possono essere incluse intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

Intestazione risposta Descrizione
ETag Valore ETag per il contenitore. Se la versione della richiesta è 2011-08-18 o successiva, il valore ETag è racchiuso tra virgolette.
Last-Modified Restituisce la data e l'ora dell'ultima modifica del contenitore. Il formato data è conforme a RFC 1123. Per altre informazioni, vedere Rappresentare valori di data/ora nelle intestazioni.

Qualsiasi operazione che comporta modifiche al contenitore o alle relative proprietà o metadati comporta l'aggiornamento dell'ora dell'ultima modifica, inclusa l'impostazione delle autorizzazioni del contenitore. Le operazioni sui BLOB non influiscono sull'ora dell'ultima modifica del contenitore.
x-ms-request-id Identifica in modo univoco la richiesta effettuata e può essere usata per risolvere la richiesta. Per altre informazioni, vedere Risolvere i problemi relativi alle operazioni api
x-ms-version Indica la versione del servizio BLOB utilizzata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive.
Date Valore di data/ora UTC generato dal servizio, che indica l'ora di avvio della risposta.
x-ms-client-request-id Può essere usato per risolvere i problemi relativi alle richieste e alle risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id se è presente nella richiesta e il valore non contiene più di 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, non sarà presente nella risposta.

Risposta di esempio

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  

Autorizzazione

L'operazione Set Container ACL supporta solo l'autorizzazione con chiave condivisa.

Commenti

Solo il proprietario dell'account può accedere alle risorse di un contenitore specifico, a meno che non abbia reso le risorse del contenitore disponibili per l'accesso pubblico impostando le autorizzazioni per il contenitore o non abbia emesso una firma di accesso condiviso per una risorsa del contenitore.

Quando si impostano le autorizzazioni per un contenitore, le autorizzazioni esistenti vengono sostituite. Per aggiornare le autorizzazioni del contenitore, chiamare Get Container ACL per recuperare tutti i criteri di accesso associati al contenitore. Modificare i criteri di accesso da modificare e quindi chiamare Set Container ACL con il set completo di dati per eseguire l'aggiornamento.

Abilitare l'accesso pubblico anonimo sui dati del contenitore

Per abilitare l'accesso in lettura pubblico anonimo ai dati del contenitore, chiamare Set Container ACL con l'intestazione x-ms-blob-public-access impostata su container o blob. Per disabilitare l'accesso anonimo, chiamare Set Container ACL senza specificare l'intestazione x-ms-blob-public-access.

Se si imposta x-ms-blob-public-access su blob, i client possono chiamare le seguenti operazioni in modo anonimo:

Se si imposta x-ms-blob-public-access su container, i client possono chiamare le seguenti operazioni in modo anonimo:

Stabilire criteri di accesso a livello di contenitore

Un criterio di accesso archiviato può specificare l'ora di inizio, l'ora di scadenza e le autorizzazioni per le firme di accesso condiviso a cui è associata. A seconda di come si vuole controllare l'accesso al contenitore o alla risorsa BLOB, è possibile specificare tutti questi parametri all'interno dei criteri di accesso archiviati e ometterli dall'URL per la firma di accesso condiviso. In questo modo, è possibile modificare il comportamento della firma associata in qualsiasi momento o revocarlo. In alternativa, è possibile specificare uno o più parametri dei criteri di accesso all'interno dei criteri di accesso archiviati e gli altri nell'URL. Infine, è possibile specificare tutti i parametri nell'URL. In questo caso, è possibile usare i criteri di accesso archiviati per revocare la firma, ma non per modificarne il comportamento. Per altre informazioni, vedere Definire un criterio di accesso archiviato.

Insieme, la firma di accesso condiviso e i criteri di accesso archiviati devono includere tutti i campi necessari per autorizzare la firma. Se mancano campi obbligatori, la richiesta ha esito negativo. Analogamente, se un campo viene specificato sia nell'URL della firma di accesso condiviso che nei criteri di accesso archiviati, la richiesta ha esito negativo con codice di stato 400 (richiesta non valida).

Al massimo, è possibile impostare cinque criteri di accesso separati per un singolo contenitore in qualsiasi momento. Se nel corpo della richiesta vengono passati più di cinque criteri di accesso, il servizio restituisce il codice di stato 400 (richiesta non valida).

È possibile emettere una firma di accesso condiviso per un contenitore o un BLOB indipendentemente dal fatto che i dati del contenitore siano disponibili o meno per l'accesso in lettura anonimo. Una firma di accesso condiviso consente un maggior controllo su come e quando rendere disponibile una risorsa e su chi deve eseguire tale azione.

Nota

Quando si stabilisce un criterio di accesso archiviato in un contenitore, l'applicazione dei criteri potrebbe richiedere fino a 30 secondi. Durante questo intervallo, fino a quando il criterio non diventa attivo, una firma di accesso condiviso associata ai criteri di accesso archiviati ha esito negativo con codice di stato 403 (Accesso negato).

Fatturazione

Le richieste di determinazione dei prezzi possono provenire dai client che usano le API di archiviazione BLOB, direttamente tramite l'API REST di Archiviazione BLOB o da una libreria client di Archiviazione di Azure. Queste richieste accumulano addebiti per transazione. Il tipo di transazione influisce sul modo in cui viene addebitato l'account. Ad esempio, le transazioni di lettura si accumulano in una categoria di fatturazione diversa rispetto alle transazioni di scrittura. La tabella seguente illustra la categoria di fatturazione per Set Container ACL le richieste in base al tipo di account di archiviazione:

Operazione Tipo di account di archiviazione Categoria di fatturazione
Set Container ACL BLOB in blocchi Premium
Utilizzo generico v2 Standard
Altre operazioni
Set Container ACL Standard per utilizzo generico v1 Operazioni di scrittura

Per informazioni sui prezzi per la categoria di fatturazione specificata, vedere prezzi Archiviazione BLOB di Azure.

Vedi anche

Limitare l'accesso a contenitori e BLOB
Delegare l'accesso con una firma di accesso condiviso
Creare e usare una firma di accesso condiviso
Definire criteri di accesso archiviati
Get Container ACL
Autorizzare le richieste ad Archiviazione di Azure
Stato e codici errore
Codici di errore del servizio BLOB