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 T
TZD
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:
Get Block List (solo per l'elenco di blocchi di cui è stato eseguito il commit)
Se si imposta x-ms-blob-public-access
su container
, i client possono chiamare le seguenti operazioni in modo anonimo:
Le operazioni di accesso ai BLOB elencate nella sezione precedente.
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