Salvare in modo sicuro la chiave di archiviazione di diagnostica dei Servizi cloud e configurare l'integrazione e la distribuzione continue in Azure usando Visual Studio Online

L'uso di progetti open source è attualmente molto diffuso. Il salvataggio dei segreti dell'applicazione nei file di configurazione non è più considerato sicuro, perché comporta l'esposizione di vulnerabilità della sicurezza a causa della diffusione dei segreti dai controlli di origine pubblica. L'archiviazione del segreto come testo normale in un file in una pipeline di integrazione continua non risulta sicura, perché i server di compilazione potrebbero essere risorse condivise nell'ambiente cloud. Questo articolo illustra il modo in cui Visual Studio e Visual Studio Online consentono di ridurre i problemi di sicurezza durante il processo di sviluppo e di integrazione continua.

Rimuovere il segreto della chiave di archiviazione di diagnostica dal file di configurazione del progetto

L'estensione di diagnostica dei Servizi cloud richiede l'Archiviazione di Azure per il salvataggio dei risultati di diagnostica. La stringa di connessione di archiviazione veniva in precedenza specificata nei file di configurazione dei Servizi cloud (con estensione cscfg) e poteva essere archiviata nel controllo del codice sorgente. Nella versione più recente di Azure SDK il comportamento è stato modificato, in modo che venga archiviata solo una stringa di connessione parziale e che la chiave venga sostituita da un token. La procedura seguente illustra il funzionamento dei nuovi strumenti dei Servizi cloud:

1. Aprire la finestra di progettazione dei ruoli

  • Fare doppio clic o fare clic con il pulsante destro del mouse su un ruolo dei Servizi cloud per aprire la finestra di progettazione dei ruoli

Aprire la finestra di progettazione dei ruoli

2. Nella sezione relativa alla diagnostica è stata aggiunta una nuova casella di controllo "Non rimuovere il segreto della chiave di archiviazione dal file di configurazione del progetto (.cscfg)"

  • Se si usa l'emulatore di archiviazione locale, questa casella di controllo è disabilitata perché non sono presenti segreti da gestire per la stringa di connessione locale, ovvero UseDevelopmentStorage=true.

La stringa di connessione dell'emulatore di archiviazione locale non è segreta

  • Se si crea un nuovo progetto, questa casella di controllo è deselezionata per impostazione predefinita. La sezione relativa alla chiave di archiviazione della stringa di connessione selezionata viene quindi sostituita da un token. Il valore del token sarà disponibile nella cartella AppData\Roaming dell'utente corrente, ad esempio: C:\Users\contosouser\AppData\Roaming\Microsoft\CloudService

Si noti che l'accesso alla cartella user\AppData è controllato tramite gli accessi utente e la cartella viene considerata una posizione sicura per l'archiviazione dei segreti di sviluppo.

La chiave di archiviazione viene salvata nella cartella del profilo utente

3. Selezionare un account di archiviazione di diagnostica

  • Selezionare un account di archiviazione dalla finestra di dialogo visualizzata quando si fa clic sui puntini di sospensione "…" . Si noti che la stringa di connessione di archiviazione generata non avrà la chiave dell'account di archiviazione.
  • Ad esempio: DefaultEndpointsProtocol=https;AccountName=contosostorage;AccountKey=$(clouddiagstrg.key)

4. Debug del progetto

  • Premere F5 per avviare il debug in Visual Studio. Non sono state apportate modifiche rispetto al comportamento precedente. Avviare il debug localmente

5. Pubblicare il progetto da Visual Studio

  • Avviare la finestra di dialogo di pubblicazione e seguire le istruzioni di accesso per pubblicare l'applicazione in Azure.

6. Informazioni aggiuntive

Nota: il pannello Impostazioni nella finestra di progettazione dei ruoli non viene modificato, per il momento. Se si vuole usare la funzionalità di gestione dei segreti per la diagnostica, passare alla scheda Configurazioni.

Aggiungere le impostazioni

Nota: se abilitata, la chiave di Application Insights verrà archiviata come testo normale. La chiave viene usata solo per caricare contenuti, quindi non si correrà alcun rischio di compromissione di dati sensibili.

Compilare e pubblicare un progetto di Servizi cloud usando i modelli di attività di Visual Studio Online

  • La procedura seguente illustra come configurare l'integrazione continua per un progetto di Servizi cloud usando le attività di Visual Studio Online: ### 1. Ottenere un account VSO
  • Creare un account Visual Studio Online, se non è già disponibile
  • Creare un progetto team nell'account Visual Studio Online

2. Configurare il controllo del codice sorgente in Visual Studio

  • Connettersi a un progetto team

Connettersi a un progetto team

Selezionare il progetto team a cui connettersi

  • Aggiungere il progetto al controllo del codice sorgente

Aggiungere il progetto al controllo del codice sorgente

Eseguire il mapping del progetto a una cartella del controllo del codice sorgente

  • Archiviare il progetto da Team Explorer

Archiviare il progetto nel controllo del codice sorgente

3. Configurare il processo di configurazione

  • Passare al progetto team e aggiungere un nuovo processo di compilazione ai modelli

Aggiungere una nuova compilazione

  • Selezionare un'attività di compilazione

Aggiungere un'attività di compilazione

Selezionare il modello di attività di compilazione di Visual Studio

  • Modificare l'input dell'attività di compilazione. Personalizzare i parametri di compilazione in base alle esigenze specifiche

Configurare l'attività di compilazione

/t:Publish /p:TargetProfile=$(targetProfile) /p:DebugType=None /p:SkipInvalidConfigurations=true /p:OutputPath=bin\ /p:PublishDir="$(build.artifactstagingdirectory)\\"

  • Configurare le variabili di compilazione

Configurare le variabili di compilazione

  • Aggiungere un'attività per caricare la destinazione finale della compilazione

Scegliere l'attività di pubblicazione della destinazione finale della compilazione

Configurare l'attività di pubblicazione della destinazione finale della compilazione

  • Eseguire la compilazione

Accodare la nuova compilazione

Visualizzare il riepilogo della compilazione

  • se la compilazione viene completata correttamente, verrà visualizzato un risultato simile a questo

Risultato della compilazione

4. Configurare il processo di rilascio

  • Creare una nuova versione

Creare una nuova versione

  • Selezionare l'attività di distribuzione dei Servizi cloud di Azure

Selezionare l'attività di distribuzione dei Servizi cloud di Azure

  • Poiché la chiave dell'account di archiviazione non viene archiviata nel controllo del codice sorgente,è necessario specificare la chiave privata per la configurazione delle estensioni di diagnostica. Espandere la sezione Opzioni avanzate per la creazione del nuovo servizio e modificare l'input del parametro Chiavi dell'account di archiviazione di diagnostica. L'input accetta più righe della coppia chiave-valore con formato [NomeRuolo]:$(ChiaveAccountArchiviazione)

Nota: se l'account di archiviazione di diagnostica si trova nella stessa sottoscrizione in cui verrà pubblicata l'applicazione di Servizi cloud, non è necessario immettere la chiave nell'input dell'attività di distribuzione. La distribuzione otterrà le informazioni di archiviazione a livello di codice dalla sottoscrizione.

Configurare l'attività di distribuzione dei Servizi cloud di Azure

  • Usare le variabili di compilazione del segreto per salvare le chiavi di archiviazione. Per mascherare una variabile come segreto, fare clic sull'icona a forma di lucchetto a destra dell'input Variabili

Salvare le chiavi di archiviazione nelle variabili di compilazione del segreto

  • Creare una versione e distribuire il progetto in Azure

Creare una nuova versione

Passaggi successivi

Per altre informazioni sulla configurazione delle estensioni di diagnostica per i Servizi cloud di Azure, vedere Abilitare la diagnostica nei servizi Cloud di Azure tramite PowerShell