Che cos'è Azure Key Vault?
Azure Key Vault è un archivio segreto: un servizio cloud centralizzato per l'archiviazione dei segreti delle app, ad esempio valori di configurazione come password e stringa di connessione che devono rimanere sempre protetti. Key Vault consente di controllare i segreti delle app mantenendoli in un'unica posizione centrale. Fornisce accesso sicuro, controllo delle autorizzazioni e registrazione degli accessi.
I vantaggi principali dell'uso di Key Vault sono:
- Separazione delle informazioni sensibili dell'app da altre configurazioni e codice, riducendo il rischio di perdite accidentali
- Accesso ai segreti limitato con criteri di accesso su misura per le app e gli utenti che hanno necessità di usarli
- Archiviazione privata centralizzata, ovvero le modifiche necessarie devono essere apportate solo in un'unica posizione
- Accesso a funzionalità di registrazione e monitoraggio per una migliore comprensione di come e quando avvengono gli accessi ai segreti
I segreti vengono archiviati in singoli insiemi di credenziali, ovvero le risorse di Azure usate per raggruppare i segreti. L'accesso segreto e la gestione dell'insieme di credenziali viene eseguita usando un'API REST. Tutti gli strumenti di gestione di Azure e le librerie client disponibili per molti linguaggi comuni supportano anche questa API. Ogni insieme di credenziali ha un URL univoco in cui è ospitata la relativa API.
Importante
Il servizio Key Vault è stato progettato per archiviare i segreti della configurazione per le app server. Non è destinato all'archiviazione dei dati appartenenti agli utenti dell'app. Non deve essere usato nella parte lato client di un'app. Questo comportamento si riflette nelle caratteristiche di prestazioni, nell'API e nel modello di costo.
I dati utente dovranno essere archiviati altrove, ad esempio in un database SQL di Azure con Transparent Data Encryption o in un account di archiviazione con la crittografia del servizio di archiviazione. I segreti usati dall'app per accedere a tali archivi dati possono essere conservati in Key Vault.
Informazioni sui segreti in Key Vault
In Key Vault, un segreto è una coppia di stringhe nome-valore. I nomi dei segreti devono avere una lunghezza compresa tra 1 e 127 caratteri, contenere solo caratteri alfanumerici e trattini ed essere univoci all'interno di un insieme di credenziali. Il valore di un segreto può essere qualsiasi stringa UTF-8 di dimensioni fino a 25 KB.
Suggerimento
I nomi dei segreti non devono necessariamente essere considerati a propria volta segreti. Possono essere archiviati nella configurazione dell'app, se necessario per l'implementazione. Lo stesso vale per gli URL e i nomi degli insiemi di credenziali.
Nota
Key Vault supporta due tipi aggiuntivi di segreti oltre le stringhe: chiavi e certificati. Key Vault offre funzionalità utili specifiche per i relativi casi d'uso. Questo modulo non illustra tali funzionalità e si concentra sui segreti stringa, come le password e le stringhe di connessione.
Autenticazione e autorizzazioni per gli insiemi di credenziali
L'API di Key Vault usa Microsoft Entra ID per autenticare utenti e app. I criteri di accesso agli insiemi di credenziali sono basati su azioni e vengono applicati in un intero insieme di credenziali. Ad esempio, un'app con Get
(leggere i valori dei segreti), List
(elencare i nomi di tutti i segreti) e Set
(creare o aggiornare i valori dei segreti) a un insieme di credenziali può creare segreti, elencare tutti i nomi dei segreti e ottenere e impostare tutti i valori dei segreti in tale insieme di credenziali.
Tutte le azioni eseguite in un insieme di credenziali richiedono l'autenticazione e l'autorizzazione. Non è possibile concedere alcun tipo di accesso anonimo.
Suggerimento
Quando si concede l'accesso all'insieme di credenziali a sviluppatori e app, concedere solo il set minimo di autorizzazioni necessarie. Le limitazioni delle autorizzazioni consentono di evitare gli incidenti causati da bug nel codice e di ridurre l'impatto del furto di credenziali o dell'inserimento di codice dannoso nell'app.
Gli sviluppatori necessitano Get
in genere solo di autorizzazioni e List
per un insieme di credenziali dell'ambiente di sviluppo. Alcuni tecnici necessitano di autorizzazioni complete per modificare e aggiungere segreti, quando necessario.
Per le app, spesso sono necessarie solo Get
le autorizzazioni. Alcune app potrebbero richiedere List
a seconda del modo in cui viene implementata l'app. L'app nell'esercizio di questo modulo richiede l'autorizzazione List
a causa della tecnica usata per leggere i segreti dall'insieme di credenziali.