Concedere accesso limitato alle risorse di archiviazione di Azure tramite firme di accesso condiviso (SAS)Grant limited access to Azure Storage resources using shared access signatures (SAS)

Una firma di accesso condiviso (SAS) fornisce accesso delegato sicuro alle risorse nell'account di archiviazione.A shared access signature (SAS) provides secure delegated access to resources in your storage account. Con una firma di accesso condiviso, si ha un controllo granulare sul modo in cui un client può accedere ai dati.With a SAS, you have granular control over how a client can access your data. Ad esempio:For example:

  • Risorse a cui il client può accedere.What resources the client may access.

  • Quali autorizzazioni hanno per tali risorse.What permissions they have to those resources.

  • Quanto tempo è valido per la firma di accesso condiviso.How long the SAS is valid.

Tipi di firme di accesso condivisoTypes of shared access signatures

Archiviazione di Azure supporta tre tipi di firme di accesso condiviso:Azure Storage supports three types of shared access signatures:

  • SAS di delega utenteUser delegation SAS

  • Firma di accesso condiviso del servizioService SAS

  • Firma di accesso condiviso dell'accountAccount SAS

SAS di delega utenteUser delegation SAS

Una firma di accesso condiviso di delega utente è protetta con credenziali Azure Active Directory (Azure AD) e anche dalle autorizzazioni specificate per la firma di accesso condiviso.A user delegation SAS is secured with Azure Active Directory (Azure AD) credentials and also by the permissions specified for the SAS. Una firma di accesso condiviso di delega utente si applica solo all'archiviazione BLOB.A user delegation SAS applies to Blob storage only.

Per altre informazioni sulla firma di accesso condiviso della delega utente, vedere creare una firma di accesso condiviso utente (API REST).For more information about the user delegation SAS, see Create a user delegation SAS (REST API).

Firma di accesso condiviso del servizioService SAS

Una firma di accesso condiviso del servizio è protetta con la chiave dell'account di archiviazione.A service SAS is secured with the storage account key. Una firma di accesso condiviso del servizio delega l'accesso a una risorsa in uno solo dei servizi di archiviazione di Azure: archiviazione BLOB, archiviazione code, archiviazione tabelle o File di Azure.A service SAS delegates access to a resource in only one of the Azure Storage services: Blob storage, Queue storage, Table storage, or Azure Files.

Per altre informazioni sulla firma di accesso condiviso del servizio, vedere creare una firma di accesso condiviso del servizio (API REST).For more information about the service SAS, see Create a service SAS (REST API).

Firma di accesso condiviso dell'accountAccount SAS

Una firma di accesso condiviso dell'account è protetta con la chiave dell'account di archiviazione.An account SAS is secured with the storage account key. Una firma di accesso condiviso dell'account delega l'accesso alle risorse in uno o più servizi di archiviazione.An account SAS delegates access to resources in one or more of the storage services. Tutte le operazioni disponibili tramite una firma di accesso condiviso dell'utente o del servizio sono disponibili anche tramite una firma di accesso condiviso dell'account.All of the operations available via a service or user delegation SAS are also available via an account SAS.

È inoltre possibile delegare l'accesso agli elementi seguenti:You can also delegate access to the following:

  • Operazioni a livello di servizio (ad esempio, le Proprietà Get/Set Service e Get Service Statistics ).Service-level operations (For example, the Get/Set Service Properties and Get Service Stats operations).

  • Operazioni di lettura, scrittura ed eliminazione non consentite con una firma di accesso condiviso del servizio.Read, write, and delete operations that aren't permitted with a service SAS.

Per altre informazioni sulla firma di accesso condiviso dell'account, creare una firma di accesso condiviso dell' account (API REST).For more information about the account SAS, Create an account SAS (REST API).

Nota

Microsoft consiglia di utilizzare le credenziali di Azure AD quando possibile come procedura di sicurezza consigliata, anziché utilizzare la chiave dell'account, che può essere compromessa in modo più semplice.Microsoft recommends that you use Azure AD credentials when possible as a security best practice, rather than using the account key, which can be more easily compromised. Quando la progettazione dell'applicazione richiede firme di accesso condiviso per l'accesso all'archiviazione BLOB, usare le credenziali Azure AD per creare una firma di accesso condiviso di delega utente quando possibile per una sicurezza superiore.When your application design requires shared access signatures for access to Blob storage, use Azure AD credentials to create a user delegation SAS when possible for superior security. Per altre informazioni, vedere autorizzare l'accesso a BLOB e code usando Azure Active Directory.For more information, see Authorize access to blobs and queues using Azure Active Directory.

Una firma di accesso condiviso può assumere una delle due forme seguenti:A shared access signature can take one of the following two forms:

  • SAS ad hoc.Ad hoc SAS. Quando si crea una firma di accesso condiviso ad hoc, l'ora di inizio, l'ora di scadenza e le autorizzazioni vengono specificate nell'URI della firma di accesso condiviso.When you create an ad hoc SAS, the start time, expiry time, and permissions are specified in the SAS URI. Qualsiasi tipo di firma di accesso condiviso può essere una firma di accesso condiviso ad hoc.Any type of SAS can be an ad hoc SAS.

  • Firma di accesso condiviso del servizio con criteri di accesso archiviati.Service SAS with stored access policy. Un criterio di accesso archiviato è definito in un contenitore di risorse, che può essere un contenitore BLOB, una tabella, una coda o una condivisione file.A stored access policy is defined on a resource container, which can be a blob container, table, queue, or file share. I criteri di accesso archiviati possono essere usati per gestire i vincoli per una o più firme di accesso condiviso del servizio.The stored access policy can be used to manage constraints for one or more service shared access signatures. Quando si associa una firma di accesso condiviso del servizio a un criterio di accesso archiviato, la firma di accesso condiviso eredita i vincoli — l'ora di inizio, l'ora di scadenza e le autorizzazioni — definite per i criteri di accesso archiviati.When you associate a service SAS with a stored access policy, the SAS inherits the constraints—the start time, expiry time, and permissions—defined for the stored access policy.

Nota

Una firma di accesso condiviso dell'utente o una firma di accesso condiviso dell'account deve essere una SAS ad hoc.A user delegation SAS or an account SAS must be an ad hoc SAS. I criteri di accesso archiviati non sono supportati per la firma di accesso condiviso utente o la firma di accesso condiviso dell'account.Stored access policies are not supported for the user delegation SAS or the account SAS.

Funzionamento della firma di accesso condivisoHow a shared access signature works

Una firma di accesso condiviso è un URI firmato che punta a una o più risorse di archiviazione.A shared access signature is a signed URI that points to one or more storage resources. L'URI include un token che contiene un set speciale di parametri di query.The URI includes a token that contains a special set of query parameters. Il token indica la modalità di accesso alla risorsa da parte del client.The token indicates how the resources may be accessed by the client. Uno dei parametri di query, ovvero la firma, viene creato dai parametri SAS e firmato con la chiave usata per creare la firma di accesso condiviso.One of the query parameters, the signature, is constructed from the SAS parameters and signed with the key that was used to create the SAS. Questa firma viene usata da Archiviazione di Azure per autorizzare l'accesso alla risorsa di archiviazione.This signature is used by Azure Storage to authorize access to the storage resource.

Nota

Non è possibile controllare la generazione di token di firma di accesso condiviso.It's not possible to audit the generation of SAS tokens. Tutti gli utenti che dispongono dei privilegi per generare un token di firma di accesso condiviso, usando la chiave dell'account o tramite un'assegnazione di ruolo RBAC di Azure, possono farlo senza conoscere il proprietario dell'account di archiviazione.Any user that has privileges to generate a SAS token, either by using the account key, or via an Azure RBAC role assignment, can do so without the knowledge of the owner of the storage account. Prestare attenzione a limitare le autorizzazioni che consentono agli utenti di generare token SAS.Be careful to restrict permissions that allow users to generate SAS tokens. Per impedire agli utenti di generare una firma di accesso condiviso con la chiave dell'account per i carichi di lavoro BLOB e di Accodamento, è possibile non consentire l'accesso alla chiave condivisa per l'account di archiviazione.To prevent users from generating a SAS that is signed with the account key for blob and queue workloads, you can disallow Shared Key access to the storage account. Per altre informazioni, vedere Impedisci l'autorizzazione con chiave condivisa.For more information, see Prevent authorization with Shared Key.

Firma e autorizzazione SASSAS signature and authorization

È possibile firmare un token SAS con una chiave di delega utente o con una chiave dell'account di archiviazione (chiave condivisa).You can sign a SAS token with a user delegation key or with a storage account key (Shared Key).

Firma di un token SAS con una chiave di delega utenteSigning a SAS token with a user delegation key

È possibile firmare un token SAS usando una chiave di delega utente creata con le credenziali Azure Active Directory (Azure ad).You can sign a SAS token by using a user delegation key that was created using Azure Active Directory (Azure AD) credentials. Una firma di accesso condiviso di delega utente è firmata con la chiave di delega utente.A user delegation SAS is signed with the user delegation key.

Per ottenere la chiave e quindi creare la firma di accesso condiviso, è necessario assegnare a un'entità di sicurezza Azure AD un ruolo di Azure che includa l' Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey azione.To get the key, and then create the SAS, an Azure AD security principal must be assigned an Azure role that includes the Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey action. Per altre informazioni, vedere creare una firma di accesso condiviso di delega utente (API REST).For more information, see Create a user delegation SAS (REST API).

Firma di un token SAS con una chiave dell'accountSigning a SAS token with an account key

Una firma di accesso condiviso del servizio e una firma di accesso condiviso dell'account sono firmate con la chiave account di archiviazioneBoth a service SAS and an account SAS are signed with the storage account key. Per creare una firma di accesso condiviso con la chiave dell'account, un'applicazione deve avere accesso alla chiave dell'account.To create a SAS that is signed with the account key, an application must have access to the account key.

Quando una richiesta include un token di firma di accesso condiviso, la richiesta viene autorizzata in base al modo in cui il token SAS è firmato.When a request includes a SAS token, that request is authorized based on how that SAS token is signed. La chiave di accesso o le credenziali usate per creare un token SAS vengono usate anche da archiviazione di Azure per concedere l'accesso a un client che possiede la firma di accesso condiviso.The access key or credentials that you use to create a SAS token are also used by Azure Storage to grant access to a client that possesses the SAS.

La tabella seguente riepiloga il modo in cui ogni tipo di token SAS è autorizzato.The following table summarizes how each type of SAS token is authorized.

Tipo di firma di accesso condivisoType of SAS Tipo di autorizzazioneType of authorization
SAS di delega utente (solo archiviazione BLOB)User delegation SAS (Blob storage only) Azure ADAzure AD
Firma di accesso condiviso del servizioService SAS Chiave condivisaShared Key
Firma di accesso condiviso dell'accountAccount SAS Chiave condivisaShared Key

Microsoft consiglia di usare una firma di accesso condiviso di delega utente quando possibile per una sicurezza superiore.Microsoft recommends using a user delegation SAS when possible for superior security.

Token di firma di accesso condivisoSAS token

Il token di firma di accesso condiviso è una stringa generata sul lato client, ad esempio usando una delle librerie client di archiviazione di Azure.The SAS token is a string that you generate on the client side, for example by using one of the Azure Storage client libraries. Il token di firma di accesso condiviso non viene rilevato in alcun modo da archiviazione di Azure.The SAS token is not tracked by Azure Storage in any way. È possibile creare un numero illimitato di token di firma di accesso condiviso sul lato client.You can create an unlimited number of SAS tokens on the client side. Dopo aver creato una firma di accesso condiviso, è possibile distribuirla alle applicazioni client che richiedono l'accesso alle risorse nell'account di archiviazione.After you create a SAS, you can distribute it to client applications that require access to resources in your storage account.

Le applicazioni client forniscono l'URI SAS ad archiviazione di Azure come parte di una richiesta.Client applications provide the SAS URI to Azure Storage as part of a request. Il servizio controlla quindi i parametri SAS e la firma per verificare che siano validi.Then, the service checks the SAS parameters and the signature to verify that it is valid. Se il servizio conferma che la firma è valida, la richiesta viene autorizzata.If the service verifies that the signature is valid, then the request is authorized. In caso contrario, la richiesta viene rifiutata con il codice errore 403 (accesso negato).Otherwise, the request is declined with error code 403 (Forbidden).

Ecco un esempio di URI di firma di accesso condiviso del servizio, che mostra l'URI della risorsa e il token di firma di accesso condiviso.Here's an example of a service SAS URI, showing the resource URI and the SAS token. Poiché il token di firma di accesso condiviso è costituito dalla stringa di query URI, l'URI della risorsa deve essere seguito da un punto interrogativo e quindi dal token di firma di accesso condiviso:Because the SAS token comprises the URI query string, the resource URI must be followed first by a question mark, and then by the SAS token:

Componenti di un URI di firma di accesso condiviso del servizio

Quando usare una firma di accesso condivisoWhen to use a shared access signature

Usare una firma di accesso condiviso per concedere l'accesso sicuro alle risorse nell'account di archiviazione a qualsiasi client che non disponga in altro modo delle autorizzazioni per tali risorse.Use a SAS to give secure access to resources in your storage account to any client who does not otherwise have permissions to those resources.

Uno scenario comune in cui la firma di accesso condiviso risulta utile è costituito da un servizio in cui gli utenti leggono e scrivono i propri dati nell'account di archiviazione di un utente specifico.A common scenario where a SAS is useful is a service where users read and write their own data to your storage account. Uno scenario in cui i dati utente vengono archiviati nell'account di archiviazione è caratterizzato da due modelli di progettazione standard:In a scenario where a storage account stores user data, there are two typical design patterns:

  1. I client caricano e scaricano dati tramite un servizio proxy front-end che esegue l'autenticazione.Clients upload and download data via a front-end proxy service, which performs authentication. Questo servizio proxy front-end consente la convalida delle regole business.This front-end proxy service allows the validation of business rules. Per grandi quantità di dati o transazioni con volume elevato, tuttavia, la creazione di un servizio che può essere ridimensionato in base alla domanda può essere costosa o complessa.But for large amounts of data, or high-volume transactions, creating a service that can scale to match demand may be expensive or difficult.

    Diagramma dello scenario: il servizio proxy front-end

  2. Un servizio semplificato autentica il client in base alle necessità e quindi genera una firma di accesso condiviso.A lightweight service authenticates the client as needed and then generates a SAS. Quando l'applicazione client riceve la firma di accesso condiviso, può accedere direttamente alle risorse dell'account di archiviazione.Once the client application receives the SAS, it can access storage account resources directly. Le autorizzazioni di accesso vengono definite dalla firma di accesso condiviso e per l'intervallo consentito dalla firma di accesso condiviso.Access permissions are defined by the SAS and for the interval allowed by the SAS. La firma di accesso condiviso consente di ridurre la necessità di instradare tutti i dati tramite il servizio proxy front-end.The SAS mitigates the need for routing all data through the front-end proxy service.

    Diagramma dello scenario: servizio provider di firma di accesso condiviso

Molti servizi reali possono usare una combinazione di questi due approcci.Many real-world services may use a hybrid of these two approaches. Ad esempio, alcuni dati potrebbero essere elaborati e convalidati tramite il proxy front-end.For example, some data might be processed and validated via the front-end proxy. Altri dati vengono salvati e/o letti direttamente tramite la firma di accesso condiviso.Other data is saved and/or read directly using SAS.

Inoltre, è necessaria una firma di accesso condiviso per autorizzare l'accesso all'oggetto di origine in un'operazione di copia in determinati scenari:Additionally, a SAS is required to authorize access to the source object in a copy operation in certain scenarios:

  • Quando si copia un BLOB in un altro BLOB che risiede in un account di archiviazione diverso.When you copy a blob to another blob that resides in a different storage account.

    È possibile usare una firma di accesso condiviso anche per autorizzare l'accesso al BLOB di destinazione.You can optionally use a SAS to authorize access to the destination blob as well.

  • Quando si copia un file in un altro file che risiede in un account di archiviazione diverso.When you copy a file to another file that resides in a different storage account.

    È possibile usare una firma di accesso condiviso anche per autorizzare l'accesso al file di destinazione.You can optionally use a SAS to authorize access to the destination file as well.

  • Quando si copia un BLOB in un file o un file in un BLOB.When you copy a blob to a file, or a file to a blob.

    È necessario usare una firma di accesso condiviso anche se gli oggetti di origine e di destinazione si trovano nello stesso account di archiviazione.You must use a SAS even if the source and destination objects reside within the same storage account.

Procedure consigliate per l'uso di SASBest practices when using SAS

Quando si utilizzano le firme di accesso condiviso nell'applicazione, è necessario essere consapevoli di due rischi potenziali:When you use shared access signatures in your applications, you need to be aware of two potential risks:

  • In caso di diffusione di una firma di accesso condiviso, chiunque la ottiene può usarla e questo potrebbe compromettere l'account di archiviazione.If a SAS is leaked, it can be used by anyone who obtains it, which can potentially compromise your storage account.

  • Se una firma di accesso condiviso fornita a un'applicazione client scade e l'applicazione non è in grado di recuperarne una nuova dal servizio, è possibile che le funzionalità dell'applicazione potrebbero risentirne.If a SAS provided to a client application expires and the application is unable to retrieve a new SAS from your service, then the application's functionality may be hindered.

Per mitigare questi rischi, è consigliabile attenersi ai consigli seguenti relativi all'utilizzo di firme di accesso condiviso:The following recommendations for using shared access signatures can help mitigate these risks:

  • Usare sempre HTTPS per creare o distribuire una firma di accesso condiviso.Always use HTTPS to create or distribute a SAS. Se una firma di accesso condiviso viene passata tramite HTTP e intercettata, un utente malintenzionato che esegue un attacco man-in-the-Middle è in grado di leggere la firma di accesso condiviso.If a SAS is passed over HTTP and intercepted, an attacker performing a man-in-the-middle attack is able to read the SAS. Quindi, possono usare la firma di accesso condiviso così come l'utente previsto.Then, they can use that SAS just as the intended user could have. Ciò può compromettere i dati sensibili o consentire il danneggiamento dei dati da parte di utenti malintenzionati.This can potentially compromise sensitive data or allowing for data corruption by the malicious user.

  • Quando possibile, utilizzare una firma di accesso condiviso di delega utente.Use a user delegation SAS when possible. Una firma di accesso condiviso di delega utente garantisce una sicurezza superiore a una firma di accesso condiviso del servizio o a una firmaA user delegation SAS provides superior security to a service SAS or an account SAS. Una firma di accesso condiviso di delega utente è protetta con Azure AD credenziali, in modo che non sia necessario archiviare la chiave dell'account con il codice.A user delegation SAS is secured with Azure AD credentials, so that you do not need to store your account key with your code.

  • Disporre di un piano di revoca per una firma di accesso condiviso.Have a revocation plan in place for a SAS. Assicurarsi di essere pronti a rispondere se una firma di accesso condiviso è compromessa.Make sure you are prepared to respond if a SAS is compromised.

  • Definire un criterio di accesso archiviato per una firma di accesso condiviso del servizio.Define a stored access policy for a service SAS. I criteri di accesso archiviati offrono la possibilità di revocare le autorizzazioni per una firma di accesso condiviso del servizio senza dover rigenerare le chiavi dell'account di archiviazione.Stored access policies give you the option to revoke permissions for a service SAS without having to regenerate the storage account keys. Impostare la loro scadenza a un momento molto lontano nel futuro (o infinito) e assicurarsi che venga aggiornata regolarmente in modo che ricorra nel futuro.Set the expiration on these very far in the future (or infinite) and make sure it's regularly updated to move it farther into the future.

  • Usare i tempi di scadenza a breve termine per una firma di accesso condiviso ad hoc o una firma di accesso condiviso del servizio.Use near-term expiration times on an ad hoc SAS service SAS or account SAS. In questo modo, anche se una firma di accesso condiviso viene compromessa, è valida solo per un breve periodo di tempo.In this way, even if a SAS is compromised, it's valid only for a short time. Questo consiglio è particolarmente importante se non è possibile fare riferimento a criteri di accesso archiviatiThis practice is especially important if you cannot reference a stored access policy. Una scadenza breve consente anche di limitare la quantità di dati che è possibile scrivere in un BLOB riducendo il tempo disponibile per il caricamento.Near-term expiration times also limit the amount of data that can be written to a blob by limiting the time available to upload to it.

  • Se necessario, chiedere ai client di rinnovare automaticamente la firma di accesso condiviso..Have clients automatically renew the SAS if necessary. È consigliabile rinnovare la firma di accesso condiviso nei client prima della scadenza in modo da avere la possibilità di effettuare altri tentativi qualora il servizio che fornisce la firma di accesso condiviso non sia disponibile.Clients should renew the SAS well before the expiration, in order to allow time for retries if the service providing the SAS is unavailable. Questa operazione potrebbe non essere necessaria in alcuni casi.This might be unnecessary in some cases. Ad esempio, è possibile che la firma di accesso condiviso venga utilizzata per un numero ridotto di operazioni immediate e di breve durata.For example, you might intend for the SAS to be used for a small number of immediate, short-lived operations. Queste operazioni dovrebbero essere completate entro il periodo di scadenza.These operations are expected to be completed within the expiration period. Di conseguenza, non si prevede che la firma di accesso condiviso venga rinnovata.As a result, you are not expecting the SAS to be renewed. Tuttavia, se si dispone di un client che esegue periodicamente richieste tramite SAS, viene rilevata la possibilità di scadenza.However, if you have a client that is routinely making requests via SAS, then the possibility of expiration comes into play.

  • Prestare attenzione all'ora di inizio della firma di accesso condiviso.Be careful with SAS start time. Se si imposta l'ora di inizio per una firma di accesso condiviso sull'ora corrente, è possibile che si verifichino errori intermittenti per i primi minuti.If you set the start time for a SAS to the current time, failures might occur intermittently for the first few minutes. Ciò è dovuto a computer diversi con tempi correnti leggermente diversi, noti come sfasamento dell'orologio.This is due to different machines having slightly different current times (known as clock skew). In generale, impostare l'ora di inizio ad almeno 15 minuti prima.In general, set the start time to be at least 15 minutes in the past. Oppure evitare di impostarla, in modo che la firma diventi immediatamente valida in tutti i casi.Or, don't set it at all, which will make it valid immediately in all cases. Le stesse considerazioni sono valide anche per la scadenza, pertanto è consigliabile osservare fino a 15 minuti di sfasamento di orario in entrambe le direzioni per qualsiasi richiesta.The same generally applies to expiry time as well--remember that you may observe up to 15 minutes of clock skew in either direction on any request. Per i client che usano una versione REST precedente alla 2012-02-12, la durata massima di una firma di accesso condiviso che non fa riferimento a criteri di accesso archiviati è di 1 ora.For clients using a REST version prior to 2012-02-12, the maximum duration for a SAS that does not reference a stored access policy is 1 hour. Tutti i criteri che specificano un periodo di tempo più lungo di un'ora avranno esito negativo.Any policies that specify a longer term than 1 hour will fail.

  • Prestare attenzione al formato DateTime SAS.Be careful with SAS datetime format. Per alcune utilità (ad esempio AzCopy), è necessario che i formati DateTime siano ' +% Y-% m-% dT% H:%M:% SZ '.For some utilities (such as AzCopy), you need datetime formats to be '+%Y-%m-%dT%H:%M:%SZ'. Questo formato include in particolare i secondi.This format specifically includes the seconds.

  • Indicare in modo specifico la risorsa cui accedere.Be specific with the resource to be accessed. Una procedura di sicurezza consigliata consiste nel fornire a un utente i privilegi minimi necessari.A security best practice is to provide a user with the minimum required privileges. Se un utente necessita solo dell'accesso in lettura a una singola entità, concedere solo tale tipo di accesso per tale entità e non l'accesso in lettura/scrittura/eliminazione per tutte le entità.If a user only needs read access to a single entity, then grant them read access to that single entity, and not read/write/delete access to all entities. Ciò consente anche di ridurre i danni se una firma di accesso condiviso viene compromessa in quanto la firma è meno potente nelle mani di un utente malintenzionato.This also helps lessen the damage if a SAS is compromised because the SAS has less power in the hands of an attacker.

  • Tenere presente che l'account verrà fatturato per qualsiasi utilizzo, inclusa la firma di accesso condiviso.Understand that your account will be billed for any usage, including via a SAS. Se si fornisce l'accesso in scrittura a un BLOB, un utente può scegliere di caricare un BLOB di 200 GB.If you provide write access to a blob, a user may choose to upload a 200 GB blob. Se si offre anche l'accesso in lettura, l'utente potrebbe scegliere di scaricarlo 10 volte e ciò potrebbe comportare 2 TB di costi in uscita.If you've given them read access as well, they may choose to download it 10 times, incurring 2 TB in egress costs for you. Anche in questo caso, fornire autorizzazioni limitate per ridurre l'impatto potenziale delle azioni di utenti malintenzionati.Again, provide limited permissions to help mitigate the potential actions of malicious users. Per ridurre questa minaccia, usare firme di accesso condiviso di breve durata, prestando però attenzione allo sfasamento di orario per la scadenza.Use short-lived SAS to reduce this threat (but be mindful of clock skew on the end time).

  • Convalida i dati scritti con una firma di accesso condiviso.Validate data written using a SAS. Quando un'applicazione client scrive i dati nell'account di archiviazione, tenere presente che tali dati potrebbero causare problemi.When a client application writes data to your storage account, keep in mind that there can be problems with that data. Se si prevede di convalidare i dati, eseguire la convalida dopo che i dati sono stati scritti e prima che vengano usati dall'applicazione.If you plan to validate data, perform that validation after the data is written and before it is used by your application. Questa procedura consente inoltre di evitare la scrittura di dati danneggiati o dannosi nell'account da parte da un utente che ha acquisito correttamente la firma di accesso condiviso o di un utente che sfrutta una firma diffusa per errore.This practice also protects against corrupt or malicious data being written to your account, either by a user who properly acquired the SAS, or by a user exploiting a leaked SAS.

  • Verificare quando non usare una firma di accesso condiviso.Know when not to use a SAS. A volte i rischi associati a una determinata operazione sull'account di archiviazione superano i vantaggi derivanti dall'uso di una firma di accesso condiviso.Sometimes the risks associated with a particular operation against your storage account outweigh the benefits of using a SAS. Per tali operazioni creare un servizio di livello intermedio che effettui operazioni di scrittura nell'account di archiviazione dopo autenticazione, controllo e convalida di regole di business.For such operations, create a middle-tier service that writes to your storage account after performing business rule validation, authentication, and auditing. Talvolta è inoltre più semplice gestire l'accesso in modi diversi.Also, sometimes it's simpler to manage access in other ways. Se ad esempio si vogliono rendere pubblicamente leggibili tutti i BLOB di un contenitore, è possibile rendere pubblico il contenitore anziché fornire una firma di accesso condiviso a ogni client per l'accesso.For example, if you want to make all blobs in a container publicly readable, you can make the container Public, rather than providing a SAS to every client for access.

  • Usare monitoraggio di Azure e i log di archiviazione di Azure per monitorare l'applicazione.Use Azure Monitor and Azure Storage logs to monitor your application. Gli errori di autorizzazione possono verificarsi a causa di un'interruzione nel servizio del provider SAS.Authorization failures can occur because of an outage in your SAS provider service. Possono anche verificarsi da una rimozione accidentale di criteri di accesso archiviati.They can also occur from an inadvertent removal of a stored access policy. È possibile usare monitoraggio di Azure e la registrazione di analisi archiviazione per osservare eventuali picchi in questi tipi di errori di autorizzazione.You can use Azure Monitor and storage analytics logging to observe any spike in these types of authorization failures. Per altre informazioni, vedere metriche di archiviazione di Azure in monitoraggio di Azure e analisi archiviazione di Azure registrazione.For more information, see Azure Storage metrics in Azure Monitor and Azure Storage Analytics logging.

Nota

L'archiviazione non tiene traccia del numero di firme di accesso condiviso generate per un account di archiviazione e nessuna API può fornire questo dettaglio.Storage doesn't track the number of shared access signatures that have been generated for a storage account, and no API can provide this detail. Se è necessario ottenere informazioni sul numero di firme di accesso condiviso generate per un account di archiviazione, è necessario tenere traccia del numero manualmente.If you need to know the number of shared access signatures that have been generated for a storage account, you must track the number manually.

Introduzione a SASGet started with SAS

Per iniziare a usare le firme di accesso condiviso, vedere gli articoli seguenti per ogni tipo di firma di accesso condiviso.To get started with shared access signatures, see the following articles for each SAS type.

SAS di delega utenteUser delegation SAS

Firma di accesso condiviso del servizioService SAS

Firma di accesso condiviso dell'accountAccount SAS

Passaggi successiviNext steps