Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'archiviazione di Azure supporta l'accesso in lettura anonimo opzionale per i contenitori e i BLOB. Per impostazione predefinita, l'accesso anonimo ai dati non è mai consentito. A meno che non si abiliti in modo esplicito l'accesso anonimo, tutte le richieste a un contenitore e i relativi BLOB devono essere autorizzati. Quando si configura l'impostazione del livello di accesso di un contenitore per consentire l'accesso anonimo, i client possono leggere i dati in tale contenitore senza autorizzare la richiesta.
Avviso
Quando un contenitore è configurato per l'accesso anonimo, qualsiasi client può leggere i dati in tale contenitore. L'accesso anonimo rappresenta un potenziale rischio per la sicurezza, quindi se il tuo scenario non lo richiede, risolvi l'accesso anonimo per l'account di archiviazione.
Questo articolo descrive come configurare l'accesso in lettura anonimo per un contenitore e i relativi BLOB. Per informazioni su come remediare l'accesso anonimo per una sicurezza ottimale, vedi Remediare accesso di lettura anonimo ai dati dei blob.
Informazioni su accesso in lettura anonimo
L'accesso anonimo ai dati è sempre vietato per impostazione predefinita. Due impostazioni influenzano l'accesso anonimo:
Impostazione di accesso anonimo per l'account di archiviazione. Un account di archiviazione di Azure Resource Manager offre un'impostazione per consentire o impedire l'accesso anonimo per l'account. Microsoft consiglia di non consentire l'accesso anonimo per gli account di archiviazione per una sicurezza ottimale.
Quando l'accesso anonimo è consentito a livello di account, i dati BLOB non sono disponibili per l'accesso in lettura anonimo, a meno che l'utente non esegua il passaggio aggiuntivo per configurare in modo esplicito l'impostazione di accesso anonimo del contenitore.
Configurare l'impostazione di accesso anonimo del contenitore. Per impostazione predefinita, l'impostazione di accesso anonimo di un contenitore è disabilitata, ossia è necessaria l'autorizzazione per ogni richiesta al contenitore o ai relativi dati. Un utente con le autorizzazioni appropriate può modificare l'impostazione di accesso anonimo di un contenitore per abilitare l'accesso anonimo solo se questo è consentito per l'account di archiviazione.
Nella tabella seguente viene riepilogato il modo in cui le due impostazioni influiscono sull'accesso anonimo per un contenitore.
| Il livello di accesso anonimo per il contenitore è impostato su Privato (impostazione predefinita) | Il livello di accesso anonimo per il contenitore è impostato su Contenitore | Il livello di accesso anonimo per il contenitore è impostato su BLOB | |
|---|---|---|---|
| L'accesso anonimo non è consentito per l'account di archiviazione | Nessun accesso anonimo ad alcun contenitore nell'account di archiviazione. | Nessun accesso anonimo ad alcun contenitore nell'account di archiviazione. L'impostazione dell'account di archiviazione sostituisce l'impostazione del contenitore. | Nessun accesso anonimo ad alcun contenitore nell'account di archiviazione. L'impostazione dell'account di archiviazione sostituisce l'impostazione del contenitore. |
| L'accesso anonimo è consentito per l'account di archiviazione | Nessun accesso anonimo a questo contenitore (configurazione predefinita). | L'accesso anonimo è consentito a questo contenitore e ai relativi BLOB. | In questo contenitore è consentito l'accesso anonimo ai blob, ma non al contenitore stesso. |
Quando l'accesso anonimo è consentito per un account di archiviazione e configurato per un container specifico, il servizio accetta una richiesta per leggere un blob in quel container che viene passato senzaAuthorization header, e restituisce i dati del blob nella risposta. Tuttavia, se la richiesta viene passata con un'intestazione Authorization di testa, il servizio ignora l'accesso anonimo all'account di archiviazione e autorizza la richiesta in base alle credenziali fornite.
Consentire o impedire l'accesso in lettura anonimo per un account di archiviazione
Quando si consente l'accesso anonimo a un account di archiviazione, un utente con i permessi appropriati può modificare l'impostazione di accesso anonimo di un container per abilitare l'accesso anonimo ai dati presenti in quel container. I dati blob non sono mai disponibili per l'accesso anonimo a meno che l'utente non faccia un passo extra configurando esplicitamente l'impostazione di accesso anonimo del container.
L'accesso anonimo a un container è sempre disattivato di default e deve essere esplicitamente configurato per consentire richieste anonime. Indipendentemente dall'impostazione sull'account di archiviazione, i tuoi dati non sono mai accessibili in modo anonimo a meno che un utente con i permessi appropriati non adotti questo passo aggiuntivo per abilitare l'accesso anonimo sul container.
Il divieto di accesso anonimo per l'account di archiviazione sostituisce le impostazioni di accesso per tutti i contenitori in tale account di archiviazione, impedendo l'accesso anonimo ai dati BLOB in tale account. Quando si nega l'accesso anonimo all'account, non si può configurare l'impostazione di accesso di un container per permettere l'accesso anonimo, e eventuali richieste anonime future a quell'account falliscono. Prima di modificare questa impostazione, assicurati di comprendere l'impatto sulle applicazioni client che potrebbero accedere anonimamente ai dati del tuo account di archiviazione. Per ulteriori informazioni, vedere Impedire l'accesso anonimo di lettura a contenitori e blob.
Importante
Dopo aver impedito l'accesso anonimo a un account storage, i clienti che utilizzano la sfida del portatore anonimo trovano che Archiviazione di Azure restituisce un errore 403 (Proibito) invece di un errore 401 (Non autorizzato). Rendere privati tutti i container per mitigare il problema. Per altre informazioni sulla modifica dell'impostazione di accesso anonimo per i contenitori, vedere Impostare il livello di accesso per un contenitore.
Per consentire o impedire l'accesso anonimo è necessaria la versione 2019-04-01 o successiva del provider di risorse di Archiviazione di Azure. Per altre informazioni, vedere API REST del provider di risorse di Archiviazione di Azure.
Autorizzazioni per impedire l'accesso anonimo
Per impostare la proprietà AllowBlobPublicAccess per l'account di archiviazione, hai bisogno di permessi per creare e gestire gli account di archiviazione. I ruoli di controllo degli accessi in base al ruolo di Azure che forniscono queste autorizzazioni includono l'azione Microsoft.Storage/storageAccounts/write. I ruoli predefiniti con questa azione includono:
- Il ruolo Owner di Azure Resource Manager
- Il ruolo Collaboratore di Azure Resource Manager
- Il ruolo Collaboratore dell'account di archiviazione
Le assegnazioni di ruolo devono avere come ambito minimo il livello dell'account di archiviazione per consentire a un utente di disabilitare l'accesso anonimo per l'account di archiviazione. Per altre informazioni sull'ambito di un ruolo, vedere Comprendere l'ambito di Azure RBAC.
Limitare l'assegnazione di questi ruoli solo agli utenti amministrativi che richiedono la possibilità di creare un account di archiviazione o aggiornarne le proprietà. Utilizzare il principio del privilegio minimo per garantire che gli utenti abbiano il minor numero di permessi necessari per svolgere i loro compiti. Per altre informazioni su come gestire l'accesso con Azure RBAC, vedi Procedure consigliate per Azure RBAC.
Questi ruoli non forniscono l'accesso ai dati in un account di archiviazione tramite Microsoft Entra ID. Tuttavia, includono Microsoft.Storage/storageAccounts/listkeys/action, che concede l'accesso alle chiavi di accesso dell'account. Utilizzando questo permesso, un utente può utilizzare le chiavi di accesso dell'account per accedere a tutti i dati di un account di archiviazione.
La Microsoft. Storage/storageAccounts/listkeys/action concede l'accesso ai dati tramite le chiavi dell'account, ma non concede all'utente la possibilità di modificare la proprietà AllowBlobPublicAccess per un account di storage. Per gli utenti che devono accedere ai dati nell'account di archiviazione, ma non devono avere la possibilità di modificare la configurazione dell'account, valutare la possibilità di assegnare ruoli come Collaboratore ai dati dei BLOB di archiviazione, Lettore dati dei BLOB di archiviazioneo Lettore e accesso ai dati.
Nota
I ruoli di amministratore della sottoscrizione classica Amministratore del servizio e Coamministratore includono l'equivalente del ruolo di Proprietario di Azure Resource Manager. Il ruolo di Proprietario include tutte le azioni, quindi un utente con uno di questi ruoli amministrativi può anche creare account di archiviazione e gestire la configurazione dell'account. Per altre informazioni, vedere Ruoli di Azure, ruoli di Microsoft Entra e ruoli di amministratore della sottoscrizione classica.
Impostare la proprietà AllowBlobPublicAccess dell'account di archiviazione
Per consentire o impedire l'accesso anonimo per un account di archiviazione, impostare la proprietà AllowBlobPublicAccess dell'account. Questa proprietà è disponibile per tutti gli account di archiviazione che crei con il modello di distribuzione di Azure Resource Manager. Per altre informazioni, vedere Panoramica dell'account di archiviazione.
Per consentire o impedire l'accesso anonimo per un account di archiviazione nel portale di Azure, seguire questa procedura:
Accedi al tuo account di archiviazione nel portale di Azure.
Trova l'impostazione di Configurazione sotto Impostazioni.
Impostare Consenti accesso anonimo ai BLOB su Abilitato o Disabilitato.
Nota
Non consentire l'accesso anonimo a un account di archiviazione non influisce su nessun sito statico ospitato in quell'account di archiviazione. Il contenitore $web è sempre accessibile pubblicamente.
Dopo aver aggiornato l'impostazione di accesso anonimo per l'account di archiviazione, potrebbero volerci fino a 30 secondi prima che la modifica venga completamente diffusa.
Quando un contenitore è configurato per l'accesso anonimo, le richieste di lettura dei BLOB in tale contenitore non devono essere autorizzate. Tuttavia, tutte le regole firewall che configuri per l'account di archiviazione rimangono valide e bloccano il traffico in linea con le ACL configurate.
I seguenti esempi mostrano come leggere la proprietà AllowBlobPublicAccess per l'account di archiviazione per determinare se l'accesso anonimo è attualmente consentito o non consentito. Per informazioni su come verificare che l'impostazione di accesso anonimo di un account sia configurata per impedire l'accesso anonimo, vedere Correggere l'accesso anonimo per l'account di archiviazione.
Impostare il livello di accesso anonimo per un contenitore
Per concedere agli utenti anonimi l'accesso in lettura a un contenitore e ai relativi BLOB, prima di tutto consentire l'accesso anonimo per l'account di archiviazione, quindi impostare il livello di accesso anonimo del contenitore. Prima di iniziare, assicurati che l'accesso anonimo sia consentito a livello account (tramite la proprietà AllowBlobPublicAccess ) e che tu abbia il permesso di scrittura sul container. Se l'accesso anonimo viene negato per l'account di archiviazione, non puoi configurare l'accesso anonimo per un container.
Attenzione
Microsoft consiglia di evitare l'accesso anonimo ai dati BLOB nell'account di archiviazione.
Quando permetti l'accesso anonimo a un account di storage, puoi configurare un container con i seguenti permessi:
- Nessun accesso pubblico per letture (portale: Privato; PowerShell: Spento): Il container e i suoi blob possono essere accessibili solo con una richiesta autorizzata. Questa opzione è l'impostazione predefinita per tutti i nuovi contenitori.
- Accesso pubblico di lettura solo per i blob (portal e PowerShell: Blob): I blob all'interno del container possono essere letti su richiesta anonima, ma i dati del container non sono disponibili in modo anonimo. I client anonimi non possono enumerare i BLOB all'interno del contenitore.
- Accesso pubblico per la lettura del container e dei suoi blob (portal e PowerShell: Container): I dati di container e blob possono essere letti tramite richiesta anonima, eccetto le impostazioni dei permessi del container e i metadati del container. I client possono enumerare blob all'interno del container tramite richiesta anonima, ma non possono elencare container all'interno dell'account di storage.
Non è possibile modificare il livello di accesso anonimo per un singolo BLOB. Imposta il livello di accesso anonimo solo a livello container. È possibile impostare il livello di accesso anonimo del contenitore quando si crea il contenitore oppure è possibile aggiornare l'impostazione in un contenitore esistente.
Per aggiornare il livello di accesso anonimo per uno o più contenitori esistenti nel portale di Azure, seguire questa procedura:
Vai alla panoramica del tuo account di archiviazione nel portale Azure.
In Archiviazione dati nel pannello del menu selezionare Contenitori.
Selezionare i contenitori per cui si vuole impostare il livello di accesso anonimo.
Seleziona Modifica livello di accesso per aprire le impostazioni di accesso anonimo.
Seleziona il livello di accesso anonimo desiderato dal menu a tendina del livello di accesso Anonimo e seleziona OK per applicare la modifica ai contenitori selezionati.
Per verificare la modifica, riapri il livello di accesso della modifica e conferma che il livello di accesso Anonimo mostra il valore selezionato.
Quando l'accesso anonimo è vietato per l'account di archiviazione, non puoi impostare il livello di accesso anonimo di un container. Se si tenta di impostare il livello di accesso anonimo del contenitore, l'impostazione è disabilitata perché l'accesso anonimo non è consentito per l'account.
Controllare l'impostazione di accesso anonimo per un set di contenitori
Puoi verificare quali container in uno o più account di archiviazione sono configurati per l'accesso anonimo elencando i container e selezionando l'impostazione di accesso anonimo. Questo approccio è un'opzione pratica quando un account di archiviazione non contiene un numero elevato di contenitori o quando si controlla l'impostazione in un numero ridotto di account di archiviazione. Tuttavia, le prestazioni potrebbero risentirne se si tenta di enumerare un numero elevato di contenitori.
L'esempio seguente usa PowerShell per ottenere l'impostazione di accesso anonimo per tutti i contenitori in un account di archiviazione. Ricordare di sostituire i valori segnaposto tra parentesi con i valori personalizzati:
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
Get-AzStorageContainer -Context $ctx | Select Name, PublicAccess
Supporto delle funzionalità
Il supporto di questa funzionalità potrebbe essere influenzato dall'abilitazione dei protocolli Data Lake Storage Gen2, NFS (Network File System) 3.0 o SFTP (SSH File Transfer Protocol). Se è stata abilitata una di queste funzionalità, vedere Supporto delle funzionalità di Archiviazione del BLOB negli account di Archiviazione di Azure per valutare il supporto per questa funzionalità.