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

La comunicazione tra un'applicazione client e un account di Archiviazione di Azure viene crittografata tramite 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 attualmente tre versioni del protocollo TLS: 1.0, 1.1 e 1.2. Archiviazione di Azure usa TLS 1.2 negli endpoint HTTPS pubblici, ma i protocolli TLS 1.0 e TLS 1.1 sono ancora supportati per la compatibilità con le versioni precedenti.

Suggerimento

Archiviazione di Azure usa l'implementazione Windows di SSL, non basata su OpenSSL, pertanto non esposta alle vulnerabilità correlate a OpenSSL.

Gli account di Archiviazione di Azure consentono ai client di inviare e ricevere dati con la versione meno recente di TLS, TLS 1.0 e versioni successive. Per applicare misure di sicurezza più rigorose, è possibile configurare l'account di archiviazione in modo da richiedere che i client inviino e ricevano i dati con una versione più recente di TLS. Se un account di archiviazione richiede una versione minima di TLS, le richieste effettuate con una versione precedente avranno esito negativo.

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.

Nota

La suite di crittografia usata quando i client inviano e ricevono dati da un account di archiviazione dipende dalla versione di TLS usata. Non è possibile configurare un account di archiviazione per bloccare l'uso di crittografie specifiche. Si può solo richiedere una versione minima di TLS. 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.

Rilevare la versione TLS usata dalle applicazioni client

Quando si applica una versione minima di TLS per l'account di archiviazione, si rischia di rifiutare le richieste dai client che inviano dati con una versione precedente di TLS. Per informazioni sul modo in cui la configurazione della versione minima di TLS può influire sulle applicazioni client, Microsoft consiglia di abilitare la registrazione per l'account di archiviazione di Azure e analizzare i log dopo un intervallo di tempo per rilevare le versioni di TLS in uso nelle applicazioni client.

Per registrare le richieste nell'account di archiviazione di Azure e determinare la versione di TLS usata dal client, è possibile usare la registrazione di Archiviazione di Azure in Monitoraggio di Azure. Per altre informazioni, vedere Monitoraggio di 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 eseguire query sui log, è possibile usare un'area di lavoro 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 saranno disponibili nell'area di lavoro Analisi dei log. Per altre informazioni, vedere Creare un'area di lavoro Log Analytics nel portale di Azure.

  2. Passare all'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, se si sceglie StorageRead e StorageWrite le richieste di lettura e scrittura verranno registrate nel 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 di diagnostica, le richieste all'account di archiviazione vengono successivamente registrate in base a tale impostazione. Per altre informazioni, vedere Creare un'impostazione di diagnostica per raccogliere i log e le metriche delle risorse 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. Incollare quindi 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 dell'agente utente utili per valutare quali applicazioni client hanno eseguito l'accesso all'account di archiviazione. È possibile analizzare questi valori per decidere se le applicazioni client devono essere aggiornate per usare una versione più recente di TLS o se è possibile non eseguire la richiesta di un client se questa non viene inviata con la versione minima di 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 usano versioni precedenti di TLS sia minimo o che è possibile non eseguire le richieste effettuate con una versione precedente di TLS, allora è possibile iniziare ad applicare una versione minima di TLS nell'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 si usa un servizio che si connette ad Archiviazione di Azure, assicurarsi che il servizio usi la versione appropriata di TLS per inviare richieste ad Archiviazione di Azure prima di impostare la versione minima necessaria per un account di archiviazione.

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 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 archiviazione con PowerShell, l'interfaccia della riga di comando di Azure o un modello di Azure Resource Manager, la proprietà MinimumTlsVersion non viene impostata per impostazione predefinita e non restituisce un valore finché non viene impostata in modo esplicito.

Quando la proprietà MinimumTlsVersion non è impostata, il suo valore può essere visualizzato come null o come una stringa vuota, a seconda del contesto. L'account di archiviazione consentirà le richieste inviate con una versione 1.0 di TLS o successiva, 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. Passare all'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.

Nota

Dopo aver aggiornato la versione minima di TLS per l'account di archiviazione, potrebbero essere necessari fino a 30 secondi prima che la modifica venga propagata in modo completo.

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 controllare la versione minima di TLS necessaria in un set di account di archiviazione con prestazioni ottimali, è possibile usare Azure Resource Graph Explorer nel portale di 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 testare che la versione minima di TLS necessaria per un account di archiviazione impedisca le chiamate effettuate con una versione precedente, è possibile configurare un client per l'uso di una versione precedente 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 di archiviazione usando una versione di TLS che non soddisfa la versione minima di TLS configurata per l'account, Archiviazione di Azure restituisce il codice errore 400 (Richiesta non valida) e un messaggio che indica che la versione di TLS usata non è consentita per effettuare richieste in questo account di archiviazione.

Nota

Quando si configura una versione minima di TLS per un account di archiviazione, tale versione minima viene applicata a livello di applicazione. Gli strumenti che tentano di determinare il supporto di TLS a livello di protocollo possono restituire le versioni di TLS oltre alla versione minima richiesta quando vengono eseguiti direttamente sull'endpoint dell'account di archiviazione.

Usare Criteri di Azure per controllare la conformità

Se si dispone di un numero elevato di account di archiviazione, è possibile eseguire un controllo per assicurarsi che tutti gli account siano configurati per la versione minima di TLS richiesta dall'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 consente di mantenere la conformità delle risorse con gli standard aziendali e i contratti 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 è conforme, ma non arresta la richiesta. Per altre informazioni sugli effetti, vedere Informazioni sugli effetti di Criteri di Azure.

Per creare un criterio con effetto Audit per la versione minima di TLS con il portale di Azure, seguire questa procedura:

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

  2. Nella sezione Creazione selezionare Definizioni.

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

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

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

  6. In Regola dei criteri aggiungere la definizione di criteri seguente alla 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 altre informazioni sull'assegnazione dei criteri, vedere Struttura di 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 Assegnare criteri per creare una nuova assegnazione di criteri.
  4. Per il campo Ambito selezionare l'ambito dell'assegnazione di criteri.
  5. Per il campo Definizione di 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 Applicazione dei criteri impostato su Abilitata. Questa impostazione non ha alcun effetto sui criteri di controllo.
  8. Selezionare Rivedere e creare per creare l'assegnazione.

Visualizzare il report di conformità

Dopo aver assegnato i criteri, è possibile visualizzare il report 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 i dati di conformità ai criteri.

Potrebbero essere necessari alcuni minuti dopo la creazione dell'assegnazione dei criteri affinché il report di conformità risulti disponibile.

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. È possibile eseguire il drill-down nel report per altri dettagli, incluso un elenco di account di archiviazione non 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 applicare un requisito di versione minima di TLS per gli account di archiviazione dell'organizzazione, è possibile creare criteri che impediscono la creazione di un nuovo account di archiviazione che imposta il requisito di versione minima di TLS su una versione precedente di TLS rispetto a quella indicata dai criteri. Questo criterio impedirà inoltre tutte le modifiche della configurazione in un account esistente se l'impostazione della versione minima di TLS per tale account non è conforme ai criteri.

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

Per creare un criterio con effetto Deny per una versione minima di TLS precedente a TLS 1.2, seguire la stessa procedura descritta in Usare Criteri di Azure per controllare la conformità, ma specificare il codice JSON seguente nella sezione policyRule della definizione dei criteri:

{
  "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 il criterio con l'effetto Deny e averlo assegnarlo a un ambito, un utente non può creare un account di archiviazione con una versione minima di TLS precedente alla versione 1.2. Né può apportare modifiche alla configurazione di un account di archiviazione esistente che attualmente richiede una versione minima di TLS precedente alla versione 1.2. Se tenta di eseguire queste operazioni viene generato 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, un utente deve disporre delle autorizzazioni 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 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. Con questa autorizzazione, un utente può usare le chiavi di accesso dell'account per accedere a tutti i dati in un account di archiviazione.

Le assegnazioni di ruolo devono avere come ambito il livello dell'account di archiviazione o un livello superiore per consentire a un utente 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à. Usare il principio dei privilegi minimi per assicurarsi che gli utenti abbiano le autorizzazioni minime necessarie per eseguire le attività. 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.

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 e gestire gli account di archiviazione. Per altre informazioni, vedere Ruoli di Azure, ruoli di Microsoft Entra e ruoli di amministratore della sottoscrizione classica.

Considerazioni per la rete

Quando un client invia una richiesta all'account di archiviazione, il client stabilisce una connessione con l'endpoint pubblico dell'account di archiviazione prima di elaborare le richieste. L'impostazione della versione minima di TLS viene controllata dopo aver stabilito la connessione. Se la richiesta usa una versione precedente di TLS rispetto a quella specificata dall'impostazione, la connessione continuerà ad avere esito positivo, ma la richiesta avrà infine esito negativo. Per altre informazioni sugli endpoint pubblici per Archiviazione di Azure, vedere Sintassi dell'URI della risorsa.

Passaggi successivi