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

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

Archiviazione di Azure attualmente supporta tre versioni del protocollo TLS: 1.0, 1.1 e 1.2. Archiviazione di Azure usa TLS 1.2 su endpoint HTTPS pubblici, ma TLS 1.0 e TLS 1.1 sono ancora supportati per la compatibilità con le versioni precedenti.

Archiviazione di Azure gli account 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 ai client di inviare e ricevere dati con una versione più recente di TLS. Se un account di archiviazione richiede una versione minima di TLS, tutte le richieste effettuate con una versione precedente avranno esito negativo.

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

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

Rilevare la versione di 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 comprendere in che modo la configurazione della versione minima di TLS può influire sulle applicazioni client, Microsoft consiglia di abilitare la registrazione per l'account Archiviazione di Azure e analizzare i log dopo un intervallo di tempo per rilevare le versioni delle applicazioni client TLS in uso.

Per registrare le richieste all'account Archiviazione di Azure e determinare la versione TLS usata dal client, è possibile usare la registrazione Archiviazione di Azure in Monitoraggio di Azure (anteprima). Per altre informazioni, vedere Monitorare Archiviazione di Azure.

Archiviazione di Azure registrazione in Monitoraggio di Azure supporta l'uso di query di log per analizzare i dati di log. Per eseguire query nei 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 Azure Log Analytics, è prima di tutto necessario creare un'impostazione di diagnostica che indichi quali tipi di richieste e per quali servizi di archiviazione si vogliono registrare i dati. I log di Archiviazione di Azure in Monitoraggio di Azure si trovano in anteprima pubblica ed è possibile verificare l'anteprima in tutte le aree del cloud pubblico. Questa anteprima abilita i log per BLOB (tra cui Azure Data Lake Archiviazione Gen2), file, code e tabelle. Per creare un'impostazione di diagnostica nel portale di Azure, seguire questa procedura:

  1. Creare una nuova area di lavoro Log Analytics nella sottoscrizione che contiene l Archiviazione di Azure account. Dopo aver configurato la registrazione per l'account di archiviazione, i log saranno disponibili nell'area di lavoro Log Analytics. 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 (anteprima).

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

  5. Selezionare Aggiungi impostazione di diagnostica.

  6. Specificare un nome per l'impostazione di diagnostica.

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

  8. In Dettagli destinazione selezionare Invia a Log Analytics. 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 registrate successivamente in base a tale impostazione. Per altre informazioni, vedere Creare un'impostazione di diagnostica per raccogliere log delle risorse e metriche in Azure.

Per informazioni di riferimento su campi disponibili nei log Archiviazione di Azure in Monitoraggio di Azure, vedere Log delle risorse (anteprima).

Eseguire query su richieste registrate in base alla versione TLS

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

Per determinare il numero di richieste effettuate sull'archiviazione 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. Ricordarsi di sostituire i valori segnaposto tra parentesi quadre con valori personalizzati:

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

I risultati mostrano il numero di richieste effettuate con ogni versione di TLS:

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

Eseguire query su richieste registrate in base all'indirizzo IP del chiamante e all'intestazione dell'agente utente

Archiviazione di Azure log in Monitoraggio di Azure includono anche l'indirizzo IP del chiamante e l'intestazione dell'agente utente per valutare le applicazioni client che 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 è accettabile non inviare una richiesta client se 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. Ricordarsi di sostituire i valori segnaposto tra parentesi quadre con 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 sia accettabile non riuscire le richieste effettuate con una versione precedente di TLS, è possibile iniziare l'imposizione di una versione minima di TLS nell'account di archiviazione. La necessità che i client usino una versione minima di TLS per effettuare richieste su un account di archiviazione fa parte di una strategia per ridurre al minimo i rischi per la sicurezza per i dati.

Importante

Se si usa un servizio che si connette a Archiviazione di Azure, assicurarsi che il servizio utilizzi la versione appropriata di TLS per inviare richieste a Archiviazione di Azure prima di impostare la versione minima richiesta 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 Azure Resource Manager distribuzione. Per altre informazioni sul modello di Azure Resource Manager distribuzione, vedere panoramica Archiviazione'account.

Il valore predefinito della proprietà MinimumTlsVersion è diverso a seconda della modalità di impostazione. Quando si crea un account di archiviazione con 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 Azure Resource Manager, la proprietà MinimumTlsVersion non viene impostata per impostazione predefinita e non restituisce un valore finché non viene impostato in modo esplicito.

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

Quando si crea un account di archiviazione con 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 portale di Azure, seguire questa procedura:

  1. Passare all'account di archiviazione nel portale di Azure.

  2. In Impostazioni selezionare Configurazione.

  3. In Versione minima TLS 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, la propagazione completa della modifica potrebbe richiedere fino a 30 secondi.

La configurazione della versione minima di TLS richiede la versione 2019-04-01 o successiva del provider Archiviazione di Azure risorse. Per altre informazioni, vedere l'Archiviazione di Azure API REST del provider di risorse.

Controllare la versione minima richiesta di TLS per più account

Per controllare la versione minima richiesta di TLS 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 Guida introduttiva: 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 visualizza 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 da un client

Per verificare che la versione minima richiesta di TLS per un account di archiviazione proibi 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 di errore 400 (richiesta non valida) e un messaggio che indica che la versione TLS usata non è consentita per l'invio di richieste a questo 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 tali risorse conformi agli standard aziendali e ai contratti di servizio. Per altre informazioni, vedere Panoramica di Criteri di Azure.

Creare un criterio con un effetto Controllo

Criteri di Azure supporta gli effetti che determinano cosa accade quando una regola dei criteri viene valutata rispetto a una risorsa. L'effetto Controllo crea un avviso quando una risorsa non è conforme, ma non arresta la richiesta. Per altre informazioni sugli effetti, vedere Informazioni Criteri di Azure effetti.

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

  1. Nel portale di Azure passare al servizio Criteri di Azure.

  2. Nella sezione Creazione selezionare Definizioni.

  3. Selezionare Aggiungi definizione di 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 criteri di controllo.

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

  6. In Regola criteri aggiungere la definizione di criteri seguente alla sezione policyRule.

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

Assegnare i criteri

Assegnare quindi i criteri a una risorsa. L'ambito dei criteri corrisponde alla risorsa e alle risorse sottostanti. Per altre informazioni sull'assegnazione di criteri, vedere Criteri di Azure di assegnazione.

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

  1. Nel portale di Azure passare al servizio Criteri di Azure.
  2. Nella sezione Creazione selezionare Assegnazioni.
  3. Selezionare Assegna criterio 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 e quindi selezionare i criteri definiti nella sezione precedente nell'elenco.
  6. Specificare un nome per l'assegnazione dei criteri. La descrizione è facoltativa.
  7. Lasciare l'opzione Imposizione criteri impostata su Abilitato. 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 i criteri, è possibile visualizzare il report di conformità. Il report di conformità per i criteri di controllo fornisce informazioni sugli account di archiviazione che non sono conformi ai criteri. Per altre informazioni, vedere Ottenere i dati di conformità dei criteri.

La disponibilità del report di conformità dopo la creazione dell'assegnazione dei criteri può richiedere alcuni minuti.

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

  1. Nel portale di Azure passare al servizio Criteri di Azure.

  2. Selezionare Conformità.

  3. Filtrare i risultati in base al nome dell'assegnazione di 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à per i 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 assicurando 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 nell'organizzazione, è possibile creare un criterio che impedisce la creazione di un nuovo account di archiviazione che imposta il requisito minimo di TLS su una versione precedente di TLS rispetto a quella determinata dai criteri. Questo criterio impedirà anche tutte le modifiche di configurazione a 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 Nega 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 Criteri di Azure effetti.

Per creare un criterio con un effetto Deny per una versione minima di TLS inferiore a TLS 1.2, seguire la stessa procedura descritta in Usare Criteri di Azureper 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"
        },
        {
          "not": {
            "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
            "equals": "TLS1_2"
          }
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  }
}

Dopo aver creato i criteri con l'effetto Nega e averli assegnati a un ambito, un utente non può creare un account di archiviazione con una versione minima di TLS precedente alla 1.2. Né un utente può apportare modifiche di configurazione a un account di archiviazione esistente che attualmente richiede una versione minima di TLS precedente alla 1.2. Il tentativo di eseguire questa operazione comporta un errore. La versione minima di TLS richiesta 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 durante la creazione di un account di archiviazione in violazione dei criteri

Autorizzazioni necessarie per richiedere una versione minima di TLS

Per impostare la proprietà MinimumTlsVersion per l'account di archiviazione, un utente deve avere le 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.Archiviazione/storageAccounts/write o Microsoft.Archiviazione/storageAccounts/. * I ruoli predefiniti con questa azione includono:

Questi ruoli non forniscono l'accesso ai dati in un account di archiviazione tramite Azure Active Directory (Azure AD). Tuttavia, includono Microsoft.Archiviazione/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.

L'ambito delle assegnazioni di ruolo deve essere il livello dell'account di archiviazione o 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 peril controllo degli accessi in base al ruolo di Azure.

Prestare attenzione a limitare l'assegnazione di questi ruoli solo a coloro 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 abbia il minor numero di autorizzazioni 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 Co-Administrator includono l'equivalente del ruolo Azure Resource Manager proprietario. Il ruolo 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 amministratore sottoscrizione classico, ruoli di Azure e ruoli di amministratore di Azure AD.

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. Dopo aver stabilito la connessione, viene verificata l'impostazione della versione minima di TLS. 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à esito negativo. Per altre informazioni sugli endpoint pubblici per Archiviazione di Azure, vedere Sintassi dell'URI di risorsa.

Passaggi successivi