Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
È consigliabile accedere ad Azure Cosmos DB usando un'identità gestita assegnata dal sistema. Se la soluzione delle identità gestite e quella basata su certificato non soddisfano le proprie esigenze, usare la soluzione con Azure Key Vault illustrata in questo articolo.
Se si usa Azure Cosmos DB come database, ci si connette a database, contenitori ed elementi usando un SDK, l'endpoint dell'API e la chiave primaria o secondaria.
Non è consigliabile archiviare l'URI dell'endpoint e le chiavi di lettura/scrittura sensibili direttamente all'interno del codice dell'applicazione o del file di configurazione. Idealmente, questi dati vengono letti dalle variabili di ambiente all'interno dell'host. In Servizio app di Azure le impostazioni dell'app consentono di inserire le credenziali di runtime per l'account Azure Cosmos DB senza che gli sviluppatori debbano archiviare queste credenziali in modo non sicuro in testo non crittografato.
Azure Key Vault migliora ulteriormente questa procedura consigliata consentendo di archiviare queste credenziali in modo sicuro e concedendo a servizi come Servizio app di Azure l'accesso gestito alle credenziali. Servizio app di Azure leggerà in modo sicuro le credenziali da Azure Key Vault e inserirà tali credenziali nell'applicazione in esecuzione.
Con questa procedura consigliata, gli sviluppatori possono archiviare le credenziali per strumenti come l'emulatore di Azure Cosmos DB durante lo sviluppo. Il team operativo può quindi assicurarsi che le impostazioni di produzione corrette vengano inserite in fase di esecuzione.
In questa esercitazione apprenderai a:
- Creare un'istanza di Azure Key Vault
- Aggiungere le credenziali di Azure Cosmos DB come segreti all'insieme di credenziali delle chiavi.
- Creare e registrare una risorsa del Servizio app di Azure e concedere le autorizzazioni "chiave di lettura"
- Inserire i segreti del Key Vault nella risorsa del Servizio App
Annotazioni
Questa esercitazione e l'applicazione di esempio usano un account Azure Cosmos DB for NoSQL. È possibile eseguire molti degli stessi passaggi anche usando altre API.
Prerequisiti
- Un account già esistente di Azure Cosmos DB per NoSQL.
- Se si dispone di una sottoscrizione di Azure, creare un nuovo account.
- Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- Account GitHub.
Prima di iniziare: Ottenere le credenziali di Azure Cosmos DB
Prima di iniziare si otterranno le credenziali per l'account esistente.
Passare alla pagina del portale di Azure per l'account Azure Cosmos DB for NoSQL esistente.
Nella pagina dell'account Azure Cosmos DB for NoSQL, seleziona l'opzione Chiavi nel menu di navigazione.
Registrare i valori dei campi URI e PRIMARY KEY. Questi valori verranno usati più avanti nell'esercitazione.
Creare una risorsa di Azure Key Vault
Per prima cosa, creare un nuovo Key Vault per archiviare le credenziali dell'API per NoSQL.
Accedi al portale di Azure.
Selezionare Crea una risorsa > Key Vault > di Sicurezza.
Nella pagina Crea un insieme di chiavi, inserisci le informazioni seguenti:
Impostazione Description Abbonamento Selezionare la sottoscrizione di Azure che si desidera utilizzare per questo account Azure Cosmos. Gruppo di risorse Selezionare un gruppo di risorse oppure fare clic su Crea nuovo, quindi immettere un nome univoco per il nuovo gruppo di risorse. Nome dell'insieme di credenziali delle chiavi Immettere un nome univoco globale per il key vault. Area geografica Selezionare una posizione geografica in cui ospitare l'account Azure Cosmos DB. Usare la località più vicina agli utenti per offrire loro la massima velocità di accesso ai dati. Piano tariffario Selezionare Standard. Lasciare i valori predefiniti per le altre impostazioni.
Selezionare Rivedi e crea.
Rivedere le impostazioni specificate e quindi selezionare Crea. La creazione dell'account richiede alcuni minuti. Attendere che la pagina del portale mostri il messaggio La distribuzione è stata completata prima di continuare.
Aggiungere chiavi di accesso di Azure Cosmos DB all'Azure Key Vault
Ora, archivia le credenziali di Azure Cosmos DB come segreti nel Key Vault.
Selezionare Vai alla risorsa per passare alla pagina delle risorse di Azure Key Vault.
Nella pagina delle risorse di Azure Key Vault selezionare l'opzione del menu di spostamento Segreti.
Selezionare Genera/Importa dal menu.
Nella pagina Crea un segreto immettere le informazioni seguenti:
Impostazione Description Opzioni di caricamento Manuale Nome cosmos-endpoint Valore del segreto Immettere l'URI copiato in precedenza in questa esercitazione.
Selezionare Crea per creare il nuovo segreto cosmos-endpoint.
Selezionare di nuovo Genera/Importa dal menu. Nella pagina Crea un segreto immettere le informazioni seguenti:
Impostazione Description Opzioni di caricamento Manuale Nome cosmos-readwrite-key Valore del segreto Immettere il valore del campo PRIMARY KEY copiato in precedenza in questa esercitazione.
Selezionare Crea per creare il nuovo segreto cosmos-readwrite-key.
Dopo aver creato i segreti, visualizzarli nell'elenco dei segreti all'interno della pagina Segreti.
Selezionare ogni chiave, selezionare la versione più recente e quindi copiare il valore di Identificatore segreto. Utilizzerai l'identificatore per i segreti cosmos-endpoint e cosmos-readwrite-key più avanti in questa esercitazione.
Suggerimento
L'identificatore del segreto è in questo formato
https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<version-id>. Ad esempio, se il nome dell'insieme di credenziali è msdocs-key-vault, il nome della chiave è cosmos-readwrite-key, e la versione è aaaaaaaa-0b0b-1c1c-2d2d-333333333333; quindi l'identificativo segreto èhttps://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/aaaaaaaa-0b0b-1c1c-2d2d-333333333333.
Creare e registrare un'app Web di Azure con Azure Key Vault
In questa sezione si creerà una nuova app Web di Azure, si distribuirà un'applicazione di esempio e quindi si registrerà l'identità gestita dell'app Web con Azure Key Vault.
Creare un nuovo repository GitHub usando il modello cosmos-db-nosql-dotnet-sample-web-environment-variables.
Nel portale di Azure selezionare Crea una risorsa > Web > App Web.
Nella pagina Crea app Web, all'interno della scheda Informazioni di base, immettere le informazioni seguenti:
Impostazione Description Abbonamento Selezionare la sottoscrizione di Azure che si desidera utilizzare per questo account Azure Cosmos. Gruppo di risorse Selezionare un gruppo di risorse oppure fare clic su Crea nuovo, quindi immettere un nome univoco per il nuovo gruppo di risorse. Nome Inserisci un nome univoco a livello globale per la tua app web. Pubblicare Seleziona Codice. Stack di esecuzione Selezionare .NET 6 (LTS). Sistema operativo Selezionare Windows. Area geografica Selezionare una posizione geografica in cui ospitare l'account Azure Cosmos DB. Usare la località più vicina agli utenti per offrire loro la massima velocità di accesso ai dati. Lasciare i valori predefiniti per le altre impostazioni.
Selezionare Successivo: Distribuzione.
Nella scheda Distribuzione immettere le informazioni seguenti:
Impostazione Description Distribuzione continua Seleziona Abilita. Account GitHub Seleziona Autorizza. Seguire le richieste di autorizzazione dell'account GitHub per concedere ad Azure l'autorizzazione per leggere il repository GitHub appena creato. Organizzazione Selezionare l'organizzazione per il nuovo repository GitHub. Repository Selezionare il nome del nuovo repository GitHub. Ramo Selezionare main. Selezionare Rivedi e crea.
Rivedere le impostazioni specificate e quindi selezionare Crea. La creazione dell'account richiede alcuni minuti. Attendere che la pagina del portale mostri il messaggio La distribuzione è stata completata prima di continuare.
Potrebbe essere necessario attendere qualche minuto in più per la distribuzione iniziale dell'applicazione Web nell'app Web. Nella pagina della risorsa App Web di Azure selezionare Sfoglia per visualizzare lo stato predefinito dell'app.
Selezionare l'opzione Identità nel menu di spostamento.
Nella pagina Identità selezionare Attiva per l'identità gestita Assegnata dal sistema e quindi selezionare Salva.
Inserire i segreti di Azure Key Vault come impostazioni di App Web di Azure
Infine, inserisci i segreti archiviati nel vault delle chiavi come impostazioni dell'applicazione web. Le impostazioni dell'app inseriranno, a loro volta, le credenziali nell'applicazione in fase di esecuzione senza archiviare le credenziali in testo non crittografato.
Torna alla pagina di Key Vault nel portale di Azure. Selezionare Criteri di accesso dal menu di navigazione.
Nel menu della pagina Criteri di accesso selezionare Crea.
Nella scheda Autorizzazioni della pagina Creare un criterio di accesso selezionare l'opzione Ottieni nella sezione Autorizzazioni segrete. Seleziona Avanti.
Nella scheda Principale selezionare il nome dell'app Web creata in precedenza nel presente tutorial. Seleziona Avanti.
Annotazioni
In questo screenshot di esempio l'app Web è denominata msdocs-dotnet-web.
Selezionare di nuovo Avanti per ignorare la scheda Applicazione. Nella scheda Rivedi e crea rivedere le impostazioni fornite e quindi selezionare Crea.
Tornare alla pagina dell'app Web nel portale di Azure. Selezionare Configurazione nel menu di spostamento.
Nella pagina Configurazione selezionare Nuova impostazione applicazione. Nella finestra di dialogo Aggiungi/Modifica impostazione applicazione immettere le seguenti informazioni:
Impostazione Description Nome CREDENTIALS__ENDPOINTChiave Ottenere l'identificatore del segreto per cosmos-endpoint nel Key Vault creato in precedenza in questa esercitazione. Immettere l'identificatore nel formato seguente: @Microsoft.KeyVault(SecretUri=<secret-identifier>).Suggerimento
Assicurarsi che la variabile di ambiente abbia un valore di sottolineatura doppia (
__) anziché un singolo carattere di sottolineatura. Il carattere di sottolineatura doppia è un delimitatore di chiave supportato da .NET in tutte le piattaforme. Per altre informazioni, vedere Configurazione delle variabili di ambiente.Annotazioni
Ad esempio, se l'identificatore del segreto è
https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/AB0CD1EF2GH3IJ4KL5MN6OP7QR8ST9, il riferimento è@Microsoft.KeyVault(SecretUri=https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/AB0CD1EF2GH3IJ4KL5MN6OP7QR8ST9):
Selezionare OK per salvare in modo permanente la nuova impostazione dell'app
Selezionare di nuovo Nuova impostazione applicazione. Nella finestra di dialogo Aggiungi/Modifica impostazione applicazione immettere le seguenti informazioni e quindi scegliere OK:
Impostazione Description Nome CREDENTIALS__KEYChiave Ottieni l'identificatore del segreto per cosmos-readwrite-key nel Key Vault che hai creato in precedenza in questo tutorial. Immettere l'identificatore nel formato seguente: @Microsoft.KeyVault(SecretUri=<secret-identifier>).Tornare alla pagina Configurazione e selezionare Salva per aggiornare le impostazioni dell'app Web.
Dopo alcuni minuti l'app Web si riavvierà con le nuove impostazioni. A questo punto, nelle nuove impostazioni dell'app dovrà essere indicato se sono Informazioni di riferimento sull'insieme di credenziali delle chiavi.
Selezionare Panoramica nel menu di spostamento. Selezionare Sfoglia per visualizzare l'app con le credenziali impostate.
Passaggi successivi
- Per configurare un firewall per Azure Cosmos DB, vedere l'articolo Supporto del firewall di Azure Cosmos DB.
- Per configurare l'endpoint di servizio di rete virtuale, vedere l'articolo relativo alla protezione dell'accesso tramite l'endpoint di servizio VNet.