Applicazione di patch a sistema operativo e runtime in Servizio app di Azure

Questo articolo illustra come ottenere determinate informazioni sulla versione per il sistema operativo o il software nel servizio app.

Il servizio app è una soluzione PaaS (piattaforma distribuita come servizio), che significa che il sistema operativo e lo stack di applicazioni sono gestiti da Azure, mentre l'utente gestisce solo l'applicazione e i relativi dati. È disponibile un maggiore controllo sul sistema operativo e sullo stack di applicazioni in Azure Macchine virtuali. Tenendo presente questo aspetto, per un utente del servizio app è comunque utile conoscere informazioni come:

  • Come e quando vengono applicati gli aggiornamenti del sistema operativo?
  • Come vengono applicate nel servizio app le patch per le vulnerabilità significative (ad esempio per gli attacchi zero-day)?
  • Quali versioni del sistema operativo e del runtime eseguono le app?

Per motivi di sicurezza, alcuni dati relativi alle informazioni di sicurezza non vengono pubblicati. Lo scopo dell'articolo è però quello di mitigare le preoccupazioni offrendo la massima trasparenza sul processo e informazioni su come mantenersi aggiornati sugli annunci correlati alla sicurezza o sugli aggiornamenti del runtime.

Come e quando vengono applicati gli aggiornamenti del sistema operativo?

Azure gestisce l'applicazione di patch del sistema operativo su due livelli, i server fisici e le macchine virtuali (VM) guest che eseguono le risorse del servizio app. In entrambi i casi l'aggiornamento avviene mensilmente, in linea con la pianificazione mensile per le patch. Questi aggiornamenti vengono applicati automaticamente in modo da garantire il contratto di servizio a disponibilità elevata di Azure.

Per informazioni dettagliate su come vengono applicati gli aggiornamenti, vedere Demystifying the magic behind App Service OS updates (I segreti sugli aggiornamenti del sistema operativo del servizio app svelati).

Come vengono gestite in Azure le vulnerabilità significative?

Quando gravi vulnerabilità richiedono l'applicazione immediata di patch, ad esempio in caso di vulnerabilità zero-day, gli aggiornamenti ad alta priorità vengono gestiti valutando caso per caso.

Per tenersi aggiornati sugli annunci di sicurezza critici in Azure, visitare il blog sulla sicurezza di Azure.

Quando vengono aggiornati, aggiunti o deprecati i runtime di linguaggio supportati?

Nuove versioni stabili dei runtime di linguaggio supportati (principale, secondaria o patch) vengono aggiunte periodicamente alle istanze del servizio app. Alcuni aggiornamenti sovrascrivono l'installazione esistente, mentre altri vengono installati affiancati alle versioni esistenti. In caso di sovrascrittura, l'app viene eseguita automaticamente nel runtime aggiornato. In caso di installazione affiancata, è necessario eseguire manualmente la migrazione dell'app per sfruttare i vantaggi di una nuova versione del runtime. Per altre informazioni, vedere una delle sezioni secondarie.

Nota

Le informazioni fornite si applicano ai runtime di linguaggio integrati in un'app del servizio app. Un runtime personalizzato caricato nel servizio app, ad esempio, rimane invariato a meno che non lo si aggiorni manualmente.

Nuove patch di aggiornamento

Gli aggiornamenti delle patch per .NET, PHP, Java SDK o Tomcat vengono applicati automaticamente sovrascrivendo l'installazione esistente con la versione più recente. Le patch di aggiornamento di Node.js vengono installate affiancate alle versioni esistenti (in modo analogo alle versioni principale e secondaria nella sezione successiva). Le nuove versioni delle patch Python possono essere installate manualmente tramite le estensioni del sito, affiancate alle installazioni python predefinite.

Nuove versioni principali e secondarie

Quando viene aggiunta una nuova versione principale o secondaria, questa viene installata affiancata alle versioni esistenti. È possibile aggiornare manualmente l'app alla nuova versione. Se la versione del runtime è stata definita in un file di configurazione (ad esempio web.config e package.json), è necessario eseguire l'aggiornamento con lo stesso metodo. Se per configurare la versione del runtime è stata usata un'impostazione del servizio app, è possibile modificare la versione nel portale di Azure o eseguendo un comando dell'interfaccia della riga di comando di Azure in Cloud Shell, come illustrato negli esempi seguenti:

az webapp config set --net-framework-version v4.7 --resource-group <groupname> --name <appname>
az webapp config set --php-version 7.0 --resource-group <groupname> --name <appname>
az webapp config appsettings set --settings WEBSITE_NODE_DEFAULT_VERSION=~14 --resource-group <groupname> --name <appname>
az webapp config set --python-version 3.8 --resource-group <groupname> --name <appname>
az webapp config set --java-version 1.8 --java-container Tomcat --java-container-version 9.0 --resource-group <groupname> --name <appname>

Nota

Questo esempio usa la "sintassi tilde" consigliata per specificare la versione più recente disponibile di Node.js 16 runtime in Windows servizio app.

Come è possibile eseguire query relative allo stato di aggiornamento del sistema operativo e del runtime nelle istanze in uso?

Mentre l'accesso alle informazioni critiche del sistema operativo non è consentito (vedere Funzionalità del sistema operativo in Servizio app di Azure), la console Kudu consente di eseguire query sull'istanza del servizio app relative alla versione del sistema operativo e alle versioni del runtime.

La tabella seguente illustra come ottenere informazioni sulle versioni di Windows e del runtime di linguaggio che le app eseguono:

Informazioni Posizione
Versione di Windows Vedere https://<appname>.scm.azurewebsites.net/Env.cshtml (nelle informazioni di sistema)
Versione di .NET In https://<appname>.scm.azurewebsites.net/DebugConsole eseguire il comando seguente al prompt dei comandi:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"
Versione di .NET Core In https://<appname>.scm.azurewebsites.net/DebugConsole eseguire il comando seguente al prompt dei comandi:
dotnet --version
Versione di PHP In https://<appname>.scm.azurewebsites.net/DebugConsole eseguire il comando seguente al prompt dei comandi:
php --version
Versione predefinita di Node.js Nella Cloud Shell eseguire il comando seguente:
az webapp config appsettings list --resource-group <groupname> --name <appname> --query "[?name=='WEBSITE_NODE_DEFAULT_VERSION']"
Versione Python In https://<appname>.scm.azurewebsites.net/DebugConsole eseguire il comando seguente al prompt dei comandi:
python --version
Versione Java In https://<appname>.scm.azurewebsites.net/DebugConsole eseguire il comando seguente al prompt dei comandi:
java -version

Nota

L'accesso al percorso del Registro di sistema HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages, dove sono archiviate le informazioni sulle patch "KB", è bloccato.

Altre risorse

Centro protezione: Sicurezza
64 bit ASP.NET Core on Azure App Service (ASP.NET Core a 64 bit in Servizio app di Azure)