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 di archiviazione di Azure viene crittografata tramite 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 supporta attualmente tre versioni del protocollo TLS: 1.0, 1.1 e 1.2. Archiviazione di Azure usa TLS 1.2 sugli endpoint HTTPS pubblici, ma TLS 1.0 e TLS 1.1 sono ancora supportati per la compatibilità con le versioni precedenti.

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 per richiedere che i client inviino e ricevano 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) per gestire continuamente TLS sicuro per gli account di archiviazione.

Per informazioni su come specificare una versione specifica di TLS durante l'invio di 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 dipendono dalla versione TLS usata. Non è possibile configurare un account di archiviazione per bloccare l'uso di crittografie specifiche, diversamente dalla richiesta di una versione minima di TLS. Se è necessaria la possibilità di consentire solo pacchetti di crittografia specifici durante la connessione all'account di archiviazione, è consigliabile usare gateway applicazione di Azure. Per altre informazioni sull'uso di gateway applicazione a questo scopo, vedere Configurare le versioni dei criteri TLS e i pacchetti di crittografia in 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 comprendere come configurare la 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 delle applicazioni client TLS in uso.

Per registrare le richieste all'account di archiviazione di Azure e determinare la versione TLS usata dal client, è possibile usare 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 di query di log per analizzare i dati di log. 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 i dati di Archiviazione di Azure con Monitoraggio di Azure e analizzarli con Azure Log Analytics, è innanzitutto necessario creare un'impostazione di diagnostica che indica i tipi di richieste e per i servizi di archiviazione da registrare. Per creare un'impostazione di diagnostica nella portale di Azure, seguire questa procedura:

  1. Creare una nuova area di lavoro Log Analytics nella sottoscrizione contenente l'account di archiviazione di Azure. 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.

  4. Selezionare il servizio 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, la scelta di StorageRead e StorageWrite registra le richieste di lettura e scrittura nel 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 successivamente registrate in base a tale impostazione. Per altre informazioni, vedere Creare un'impostazione di diagnostica per raccogliere i log delle risorse e le metriche in Azure.

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

Eseguire query su richieste registrate in base alla versione tls

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

Per determinare il numero di richieste effettuate nell'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 i propri valori:

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

I risultati mostrano il conteggio del 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

I log di Archiviazione di Azure in Monitoraggio di Azure includono anche l'intestazione dell'indirizzo IP del chiamante e dell'agente utente 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 è accettabile che una richiesta del client non venga 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 i propri valori:

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 richiesta 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 di sicurezza per i dati.

Importante

Se si usa un servizio che si connette ad Archiviazione di Azure, assicurarsi che tale 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 di Azure Resource Manager. Per altre informazioni sul modello di distribuzione di Azure Resource Manager, vedere Panoramica dell'account di archiviazione.

Il valore predefinito della proprietà MinimumTlsVersion è diverso a seconda della modalità di impostazione. 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 impostato in modo esplicito.

Quando la proprietà MinimumTlsVersion non è impostata, il relativo valore può essere visualizzato come null o una stringa vuota, a seconda del contesto. L'account di archiviazione consentirà le richieste inviate con TLS versione 1.0 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 minima di 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 TLS per l'account di archiviazione, potrebbe richiedere fino a 30 secondi prima della propagazione completa della modifica.

La configurazione della versione minima 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 tls minima richiesta per più account

Per controllare la versione TLS minima richiesta in un set di account di archiviazione con prestazioni ottimali, è possibile usare Esplora Resource Graph di Azure nell'portale di Azure. Per altre informazioni sull'uso di Esplora Resource Graph, vedere Avvio rapido: Eseguire la prima query Resource Graph usando Azure Resource Graph Explorer.

L'esecuzione della query seguente in Esplora Resource Graph restituisce un elenco di account di archiviazione e visualizza la versione minima 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 TLS da un client

Per verificare che la versione tls minima richiesta per un account di archiviazione impedisca le chiamate effettuate con una versione precedente, è possibile configurare un client per usare 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 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 effettuare richieste con questo account di archiviazione.

Nota

Quando si configura una versione TLS minima per un account di archiviazione, tale versione minima viene applicata a livello di applicazione. Gli strumenti che tentano di determinare il supporto TLS a livello di protocollo possono restituire versioni TLS oltre alla versione minima richiesta quando vengono eseguite 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 un set di account di archiviazione per la conformità, usare Criteri di Azure. Criteri di Azure è un servizio che è possibile usare per creare, assegnare e gestire i criteri che applicano regole alle risorse di Azure. Criteri di Azure consente di mantenere le 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 Audit

Criteri di Azure supporta gli effetti che determinano cosa 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 Criteri di Azure.

Per creare un criterio con un effetto Audit per la versione TLS minima con il 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 dei criteri per creare una nuova definizione dei criteri.

  4. Per il campo Percorso 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 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 del criterio corrisponde a tale risorsa e a qualsiasi risorsa sotto di essa. Per altre informazioni sull'assegnazione dei criteri, vedere Criteri di Azure struttura di assegnazione.

Per assegnare i criteri con la 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 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 dall'elenco.
  6. Specificare un nome per l'assegnazione di criteri. La descrizione è facoltativa.
  7. Lasciare abilitatal'applicazione dei criteri. 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 il criterio, è 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à dei criteri.

Il report di conformità potrebbe richiedere diversi minuti dopo la creazione dell'assegnazione dei criteri.

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 per il 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 ulteriori dettagli, incluso un elenco di account di archiviazione che non sono 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 tls minima

Criteri di Azure supporta la governance del cloud garantendo che le risorse di Azure siano conformi ai requisiti e agli standard. Per applicare un requisito minimo di versione 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 TLS minimo 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 minima della versione TLS per tale account non è conforme ai criteri.

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

Per creare un criterio con un effetto Deny per una versione TLS minima minore di 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 assegnarlo a un ambito, un utente non può creare un account di archiviazione con una versione TLS minima precedente a 1.2. Né un utente può apportare modifiche di configurazione a un account di archiviazione esistente che attualmente richiede una versione TLS minima precedente a 1.2. Il tentativo di eseguire questa operazione comporta un errore. La versione minima 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 tls minima impostata su TLS 1.0 (impostazione predefinita per un nuovo account) quando un criterio con un effetto Deny richiede che la versione TLS minima 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 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 Azure Active Directory (Azure AD). 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 essere con ambito al 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 per il 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 aggiornarne le proprietà. Usare il principio dei privilegi minimi per garantire che gli utenti dispongano delle autorizzazioni più poche necessarie per eseguire le attività. Per altre informazioni sulla gestione dell'accesso in base al ruolo di Azure, vedere Procedure consigliate per il controllo degli accessi in base al ruolo di Azure.

Nota

L'amministratore della sottoscrizione classica ruoli amministratore del servizio e Co-Administrator includono l'equivalente del ruolo proprietario di Azure Resource Manager. 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 Azure, ruoli di Azure AD 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 eventuali richieste. L'impostazione minima della versione TLS viene selezionata dopo la definizione della connessione. Se la richiesta usa una versione precedente di TLS rispetto a quella specificata dall'impostazione, la connessione continuerà a avere esito positivo, ma la richiesta avrà esito negativo. Per altre informazioni sugli endpoint pubblici per Archiviazione di Azure, vedere Sintassi dell'URI delle risorse.

Passaggi successivi