Applicare una versione minima obbligatoria di Transport Layer Security (TLS) per le richieste a un account di archiviazione

✔️ Si applica a: Archiviazione BLOB di Azure, Azure Data Lake Storage, archiviazione code di Azure, Archiviazione tabelle di Azure

✖️ Non si applica a: File di Azure (Microsoft.Storage o Microsoft.FileShares)

La comunicazione tra un'applicazione client e un account Archiviazione di Azure viene criptata utilizzando Transport Layer Security (TLS). TLS è un protocollo di crittografia standard che assicura la privacy e l'integrità dei dati tra client e servizi su Internet. Per altre informazioni su TLS, vedere Transport Layer Security.

Archiviazione di Azure supporta due versioni del protocollo TLS: 1.2 e 1.3. Sebbene Archiviazione di Azure ora supporti TLS 1.3, attualmente non supporta l'applicazione di TLS 1.3 come versione TLS minima per gli account Archiviazione di Azure. La versione minima consigliata di TLS è TLS 1.2. I client che utilizzano le versioni più recenti di TLS negoziano automaticamente l'uso di TLS 1.3 se disponibile.

Suggerimento

Archiviazione di Azure si basa sull'implementazione di Windows di SSL non basata su OpenSSL e pertanto non è esposta alle vulnerabilità correlate a OpenSSL.

Gli account di archiviazione di Azure consentono ai client di inviare e ricevere dati con TLS versioni 1.2 e successive. Quando un account di storage richiede una versione TLS minima, qualsiasi richiesta che utilizza una versione precedente fallisce.

Questo articolo descrive come usare un framework DRAG (Detection-Remediation-Audit-Governance, Rilevamento-Correzione-Controllo-Governance) per gestire in modo continuo e sicuro TLS per gli account di archiviazione.

Per informazioni su come indicare una versione specifica di TLS quando si invia una richiesta da un'applicazione client, vedere Configurare Transport Layer Security (TLS) per un'applicazione client.

Note

La suite di cifratura utilizzata quando i client inviano dati e ricevono dati da un account di archiviazione dipende dalla versione TLS utilizzata. Non puoi configurare un account di archiviazione per bloccare l'uso di cifrari specifici, se non richiedendo una versione TLS minima. Se è necessario consentire solo pacchetti di crittografia specifici durante la connessione all'account di archiviazione, è consigliabile usare il gateway applicazione di Azure. Per altre informazioni sull'uso del gateway applicazione a questo scopo, vedere Configurare le versioni dei criteri TLS e i pacchetti di crittografia nel gateway applicazione di Azure.

Per File di Azure, vedi crittografia FileREST in transito. Gli account di archiviazione che contengono condivisioni file Azure utilizzano la stessa impostazione, ma l'articolo File di Azure descrive considerazioni per File di Azure.

Rilevare la versione TLS usata dalle applicazioni client

Quando imposti una versione minima TLS per il tuo account storage, rischi di rifiutare richieste da client che utilizzano una versione più vecchia di TLS. Per capire come la configurazione della versione minima TLS influisce sulle applicazioni client, Microsoft consiglia di abilitare il logging per il tuo account Archiviazione di Azure e analizzare i log dopo un certo periodo di tempo per rilevare quali versioni delle applicazioni client TLS utilizzano.

Per registrare le richieste sul tuo account Archiviazione di Azure e determinare la versione TLS usata dal client, usa la registrazione di Archiviazione di Azure in Monitoraggio di Azure. Per altre informazioni, vedere Monitorare Archiviazione di Azure.

La registrazione di Archiviazione di Azure in Monitoraggio di Azure supporta l'uso delle query sui log per analizzarne i dati. Per interrogare i log, usa uno spazio di lavoro di Log Analytics di Azure. Per altre informazioni sulle query di log, vedere Esercitazione: Introduzione alle query di Log Analytics.

Per registrare Archiviazione di Azure dati con Monitoraggio di Azure e analizzarli con Analisi dei log di Azure, è prima necessario creare un'impostazione di diagnostica che indica quali tipi di richieste e per quali servizi di archiviazione si vogliono registrare i dati. Per creare un'impostazione di diagnostica nel portale di Azure, seguire questa procedura:

  1. Creare una nuova area di lavoro Analisi dei log nella sottoscrizione contenente l'account Archiviazione di Azure. Dopo aver configurato la registrazione per l'account di archiviazione, i log sono disponibili nell'area di lavoro Log Analytics. Per altre informazioni, vedere Creare un'area di lavoro Log Analytics nel portale di Azure.

  2. Accedi al tuo account di archiviazione nel portale di Azure.

  3. Nella sezione Monitoraggio selezionare Impostazioni di diagnostica.

  4. Selezionare il servizio Archiviazione di Azure per il quale si desidera registrare le richieste. Ad esempio, scegliere BLOB per registrare le richieste nell'archiviazione BLOB.

  5. Selezionare Aggiungi impostazione di diagnostica.

  6. Immettere un nome per le impostazioni di diagnostica.

  7. In Dettagli categoria, nella sezione log, scegliere i tipi di richieste da registrare. È possibile registrare richieste di lettura, scrittura ed eliminazione. Ad esempio, scegliendo StorageRead e StorageWrite si registrano nei log le richieste di lettura e scrittura al servizio selezionato.

  8. In Dettagli destinazione, selezionare Invia ad Analisi dei log. Selezionare la sottoscrizione e l'area di lavoro Log Analytics creata in precedenza, come illustrato nell'immagine seguente.

    Screenshot che mostra come creare un'impostazione di diagnostica per la registrazione delle richieste

Dopo aver creato l'impostazione diagnostica, l'account di archiviazione registra le richieste in base a quell'impostazione. Per maggiori informazioni, consultare la sezioneCreare un'impostazione di diagnostica per acquisire i log delle risorse e le metriche in Azure.

Per informazioni di riferimento sui campi disponibili nei log di Archiviazione di Azure in Monitoraggio di Azure, vedere Log delle risorse.

Eseguire query sulle richieste registrate per versione di TLS

I log di Archiviazione di Azure in Monitoraggio di Azure includono la versione di TLS usata per inviare una richiesta a un account di archiviazione. Usare la proprietà TlsVersion per controllare la versione di TLS di una richiesta registrata.

Per determinare il numero di richieste effettuate nell'archivio BLOB con versioni diverse di TLS negli ultimi sette giorni, aprire l'area di lavoro Log Analytics. Quindi, incollare la query seguente in una nuova query di log ed eseguirla. Ricordare di sostituire i valori segnaposto tra parentesi con i valori personalizzati:

StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>"
| summarize count() by TlsVersion

I risultati mostrano il conteggio del numero di richieste effettuate con ciascuna versione di TLS:

Screenshot che mostra i risultati della query di Log Analytics per restituire la versione di TLS

Eseguire query sulle richieste registrate per indirizzo IP del chiamante e dall'intestazione dell'agente utente

I log di Archiviazione di Azure in Monitoraggio di Azure includono anche l'indirizzo IP del chiamante e l'intestazione user agent per aiutarti a valutare quali applicazioni client hanno accedito all'account storage. Puoi analizzare questi valori per decidere se le applicazioni client devono essere aggiornate per usare una versione più recente di TLS, o se è accettabile fallire la richiesta di un client se non viene inviata con la versione minima TLS.

Per determinare quali client hanno effettuato richieste con una versione di TLS precedente a TLS 1.2 negli ultimi sette giorni, incollare la query seguente in una nuova query di log ed eseguirla. Ricordare di sostituire i valori segnaposto tra parentesi con i valori personalizzati:

StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>" and TlsVersion != "TLS 1.2"
| project TlsVersion, CallerIpAddress, UserAgentHeader

Correggere i rischi di sicurezza con una versione minima di TLS

Quando si è certi che il traffico proveniente dai client che utilizzano versioni precedenti di TLS sia minimo o che sia accettabile rifiutare le richieste effettuate con una versione precedente di TLS, è possibile iniziare ad applicare una versione minima di TLS all'account di archiviazione. Richiedere che i client usino una versione minima di TLS per effettuare le richieste in un account di archiviazione fa parte di una strategia per ridurre al minimo i rischi di sicurezza per i dati.

Importante

Se stai usando un servizio che si collega ad Archiviazione di Azure, assicurati che quel servizio stia usando la versione appropriata di TLS per inviare richieste ad Archiviazione di Azure prima di impostare la versione minima richiesta per un account storage.

Configurare la versione minima di TLS per un account di archiviazione

Per configurare la versione minima di TLS per un account di archiviazione, impostare la versione MinimumTlsVersion per l'account. Questa proprietà è disponibile per tutti gli account di archiviazione creati con il modello di distribuzione di Azure Resource Manager. Per altre informazioni sul modello di distribuzione Azure Resource Manager, vedere Panoramica dell'account di archiviazione.

Il valore predefinito della proprietà MinimumTlsVersion è diverso a seconda di come viene impostato. Quando si crea un account di archiviazione con il portale di Azure, la versione minima di TLS è impostata su 1.2 per impostazione predefinita. Quando si crea un account di storage usando PowerShell, interfaccia della riga di comando di Azure o un template Azure Resource Manager, la MinimumTlsVersion proprietà non è impostata di default e non restituisce un valore finché non la configuri esplicitamente.

Quando la proprietà MinimumTlsVersion non è impostata, il suo valore può essere visualizzato come null o come stringa vuota, a seconda del contesto. L'account di archiviazione consente richieste inviate con TLS versione 1.0 o superiore se la proprietà non è impostata.

Quando si crea un account di archiviazione con il portale di Azure, la versione minima di TLS è impostata su 1.2 per impostazione predefinita.

Per configurare la versione minima di TLS per un account di archiviazione esistente con il portale di Azure, seguire questa procedura:

  1. Accedi al tuo account di archiviazione nel portale di Azure.

  2. In Impostazioni selezionare Configurazione.

  3. In Versione TLS minima usare l'elenco a discesa per selezionare la versione minima di TLS necessaria per accedere ai dati in questo account di archiviazione.

    Screenshot che mostra come configurare la versione minima di TLS nel portale di Azure.

Note

Dopo aver aggiornato la versione minima TLS per l'account storage, potrebbero volerci fino a 30 secondi prima che la modifica venga completamente propagata.

La configurazione della versione minima di TLS richiede 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.

Controllare la versione minima di TLS necessaria per più account

Per verificare la versione minima richiesta di TLS su un insieme di account di storage con prestazioni ottimali, usa Azure Resource Graph Explorer nel portale Azure. Per altre informazioni sull'uso di Resource Graph Explorer, vedere Avvio rapido: Eseguire la prima query di Resource Graph usando Azure Resource Graph Explorer.

L'esecuzione della query seguente in Resource Graph Explorer restituisce un elenco di account di archiviazione e mostra la versione minima di TLS per ogni account:

resources
| where type =~ 'Microsoft.Storage/storageAccounts'
| extend minimumTlsVersion = parse_json(properties).minimumTlsVersion
| project subscriptionId, resourceGroup, name, minimumTlsVersion

Testare la versione minima di TLS in un client

Per verificare che la versione minima richiesta di TLS per un account di archiviazione vieta le chiamate effettuate con una versione più vecchia, configura un client per utilizzare una versione più vecchia di TLS. Per altre informazioni sulla configurazione di un client per l'uso di una versione specifica di TLS, vedere Configurare Transport Layer Security (TLS) per un'applicazione client.

Quando un client accede a un account storage utilizzando una versione TLS che non soddisfa la versione TLS minima configurata per l'account, Archiviazione di Azure restituisce il codice di errore 400 (Richiesta cattiva) e un messaggio che indica che la versione TLS non è consentita per effettuare richieste su questo account storage.

Note

Quando configuri una versione minima TLS per un account storage, il livello applicativo applica quella versione minima. Gli strumenti che cercano di determinare il supporto TLS al livello protocollo possono restituire versioni TLS oltre alla versione minima richiesta quando eseguiti direttamente sull'endpoint dell'account di storage.

Usare Criteri di Azure per controllare la conformità

Se hai un gran numero di account di storage, potresti voler effettuare un audit per assicurarti che tutti gli account siano configurati per la versione minima di TLS richiesta dalla tua organizzazione. Per controllare la conformità di un set di account di archiviazione, usare Criteri di Azure. Criteri di Azure è un servizio che è possibile usare per creare, assegnare e gestire criteri che applicano regole alle risorse di Azure. Criteri di Azure ti aiuta a mantenere queste risorse conformi agli standard aziendali e agli accordi di livello di servizio. Per altre informazioni, vedere Panoramica di Criteri di Azure.

Creare un criterio con un effetto Audit

Criteri di Azure supporta effetti che determinano quello che accade quando una regola dei criteri viene valutata rispetto a una risorsa. L'effetto Audit crea un avviso quando una risorsa non è in conformità, ma non ferma la richiesta. Per altre informazioni sugli effetti, vedere Informazioni sugli effetti di Criteri di Azure.

Per creare una policy con un effetto Audit per la versione minima TLS utilizzando il portale Azure, segui questi passaggi:

  1. Nel portale di Azure, andare al servizio Criteri di Azure.

  2. Nella sezione Creazione selezionare Definizioni.

  3. Selezionare Aggiungi definizione criteri per creare una nuova definizione di criteri.

  4. Per il campo Percorso definizione, selezionare il pulsante Altro per specificare dove si trova la risorsa dei criteri di controllo.

  5. Immetti un nome per il criterio. Facoltativamente, è possibile specificare una descrizione e una categoria.

  6. In Regola dei criteri, aggiungere la seguente definizione del criterio nella sezione policyRule.

    {
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "anyOf": [
                  {
                    "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                    "notEquals": "TLS1_2"
                  },
                  {
                    "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                    "exists": "false"
                  }
                ]
            }
          ]
        },
        "then": {
          "effect": "audit"
        }
      }
    }
    
  7. Salvare il criterio.

Assegnare i criteri

Assegnare quindi il criterio a una risorsa. L'ambito dei criteri corrisponde a tale risorsa e a tutte le risorse sottostanti. Per maggiori informazioni sull'assegnazione dei criteri, consultare la sezione Struttura assegnazione di Criteri di Azure.

Per assegnare il criterio con il portale di Azure, seguire questa procedura:

  1. Nel portale di Azure, andare al servizio Criteri di Azure.
  2. Nella sezione Creazione, selezionare Assegnazioni.
  3. Selezionare Assegna criteri per creare una nuova assegnazione di criteri.
  4. Per il campo Ambito, selezionare l'ambito dell'assegnazione dei criteri.
  5. Per il campo Definizione criteri selezionare il pulsante Altro, quindi selezionare il criterio definito nella sezione precedente nell'elenco.
  6. Immettere un nome per l'assegnazione del criterio. La descrizione è facoltativa.
  7. Lasciare Imposizione dei criteri su Abilitata. Questa impostazione non ha alcun effetto sui criteri di controllo.
  8. Selezionare Rivedi e crea per creare l'assegnazione.

Visualizzare il report di conformità

Dopo aver assegnato la politica, visualizza il rapporto di conformità. Il report di conformità per un criterio di controllo fornisce informazioni su quali account di archiviazione non sono conformi ai criteri. Per altre informazioni, vedere Ottenere dati sulla conformità dei criteri.

Potrebbero volerci diversi minuti prima che il rapporto di conformità diventi disponibile dopo aver creato l'assegnazione della politica.

Per visualizzare il report di conformità nel portale di Azure, seguire questa procedura:

  1. Nel portale di Azure, andare al servizio Criteri di Azure.

  2. Selezionare Conformità.

  3. Filtrare i risultati in base al nome dell'assegnazione dei criteri creata nel passaggio precedente. Il report mostra il numero di risorse non conformi ai criteri.

  4. Puoi approfondire il report per maggiori dettagli, incluso un elenco degli account di archiviazione che non sono conformi.

    Screenshot che mostra il report di conformità dei criteri di controllo per la versione minima di TLS

Usare Criteri di Azure per applicare la versione minima di TLS

Criteri di Azure supporta la governance del cloud assicurandosi che le risorse di Azure rispettino i requisiti e gli standard. Per far rispettare un requisito minimo di versione TLS per gli account di archiviazione nella tua organizzazione, puoi creare una policy che impedisca la creazione di un nuovo account di archiviazione che imposti il requisito TLS minimo a una versione più vecchia di TLS rispetto a quella imposta dalla policy. Questa politica impedisce anche tutte le modifiche alla configurazione di un account esistente se l'impostazione minima di TLS per quell'account non è conforme alla politica.

Il criterio di applicazione usa l'effetto Deny per impedire una richiesta che creerebbe o modificherebbe un account di archiviazione in modo tale che la versione minima di TLS non sia più conforme agli standard dell'organizzazione. Per altre informazioni sugli effetti, vedere Informazioni sugli effetti di Criteri di Azure.

Per creare una policy con effetto Deny per una versione minima di TLS inferiore a TLS 1.2, segui gli stessi passaggi descritti in Use Criteri di Azure per verificare la conformità, ma fornisci il seguente JSON nella sezione policyRule della definizione della policy:

{
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Storage/storageAccounts"
        },
        {
            "anyOf": [
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "notEquals": "TLS1_2"
              },
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "exists": "false"
              }
            ]
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  }
}

Dopo aver creato la policy con l'effetto Negazione e averla assegnata a un ambito, un utente non può creare un account storage con una versione TLS minima precedente alla 1.2. Né un utente può apportare modifiche alla configurazione di un account di archiviazione esistente che attualmente richiede una versione TLS minima vecchia della 1.2. Tentativi in tal senso generano un errore. La versione minima di TLS necessaria per l'account di archiviazione deve essere impostata su 1.2 per procedere con la creazione o la configurazione dell'account.

L'immagine seguente mostra l'errore che si verifica se si tenta di creare un account di archiviazione con la versione minima di TLS impostata su TLS 1.0 (impostazione predefinita per un nuovo account) quando un criterio con effetto Deny richiede che la versione minima di TLS sia impostata su TLS 1.2.

Screenshot che mostra l'errore che si verifica quando si crea un account di archiviazione che viola i criteri

Autorizzazioni necessarie per richiedere una versione minima di TLS

Per impostare la proprietà MinimumTlsVersion 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 o Microsoft.Storage/storageAccounts/*. I ruoli predefiniti con questa azione includono:

Questi ruoli non forniscono 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. Con questa autorizzazione, puoi usare le chiavi di accesso dell'account per accedere a tutti i dati in un account di archiviazione.

Le assegnazioni dei ruoli devono essere limitate al livello dell'account di archiviazione o superiore per permettere di richiedere una versione minima di TLS per l'account di archiviazione. Per altre informazioni sull'ambito del ruolo, vedere Informazioni sull'ambito per il controllo degli accessi in base al ruolo di Azure.

Prestare attenzione a limitare l'assegnazione di questi ruoli solo agli utenti che richiedono la possibilità di creare un account di archiviazione o di 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 sulla gestione dell'accesso con il controllo degli accessi in base al ruolo di Azure, vedere Procedure consigliate per il controllo degli accessi in base al ruolo di Azure.

Note

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 e gestire gli account di archiviazione. Per maggiori informazioni, consultare la sezione Ruoli di amministratore sottoscrizione classico, ruoli di Azure e ruoli di Microsoft Entra.

Considerazioni per la rete

Quando un client invia una richiesta a un account di storage, il client si collega prima all'endpoint pubblico dell'account di storage prima di elaborare qualsiasi richiesta. L'impostazione della versione minima di TLS viene controllata dopo aver stabilito la connessione. Se la richiesta utilizza una versione di TLS precedente rispetto a quella specificata dall'impostazione, la connessione continua ad avere successo, ma alla fine la richiesta fallisce. Per altre informazioni sugli endpoint pubblici per Archiviazione di Azure, vedere Sintassi dell'URI della risorsa.

Passaggi successivi