Aplicación de revisiones al sistema operativo y al entorno de tiempo de ejecución en Azure App Service

En este artículo se explica cómo obtener información de versión determinada sobre el sistema operativo o el software en App Service.

App Service es una plataforma como servicio, lo que significa que Azure administra en nombre del usuario el sistema operativo y la pila de aplicaciones; el usuario solo se encarga de administrar la aplicación y sus datos. Hay disponible más control sobre el sistema operativo y la pila de aplicaciones en Azure Virtual Machines. Teniendo en cuenta esto, no obstante, es importante, como usuario de App Service, que conozca más información, como:

  • ¿Cómo y cuándo se aplican las actualizaciones del sistema operativo?
  • ¿Cómo se aplican las revisiones de App Service frente a vulnerabilidades importantes (por ejemplo, día cero)?
  • ¿Qué versiones del sistema operativo y de tiempo de ejecución ejecutan las aplicaciones?

Por motivos de seguridad, no se publican determinados detalles específicos sobre seguridad. Sin embargo, el artículo pretende mitigar los problemas al maximizar la transparencia del proceso y, además, se aborda cómo estar al tanto de las actualizaciones de tiempo de ejecución o los anuncios sobre seguridad.

¿Cómo y cuándo se aplican las actualizaciones del sistema operativo?

Azure administra la aplicación de revisiones del sistema operativo a dos niveles, es decir, los servidores físicos y las máquinas virtuales invitadas que ejecutan los recursos de App Service. Ambos se actualizan mensualmente, de tal forma que se produce una alineación con el programa Patch Tuesday mensual. Estas actualizaciones se aplican automáticamente, de una forma que garantiza el SLA de Servicios de Azure de alta disponibilidad.

Para obtener información detallada sobre cómo se aplican las actualizaciones, consulte Demystifying the magic behind App Service OS updates (Desmitificar la magia que hay detrás de las actualizaciones del sistema operativo de App Service).

¿Cómo trata Azure las vulnerabilidades importantes?

Si las vulnerabilidades del servidor precisan de una aplicación de revisiones inmediata, como las vulnerabilidades de día cero, las actualizaciones de alta prioridad se administran caso por caso.

Manténgase al día con anuncios de seguridad críticos en Azure en el blog de seguridad de Azure.

¿Cuándo se actualizan, agregan o dejan de usar los tiempos de ejecución de los lenguajes admitidos?

Las nuevas versiones estables de los tiempos de ejecución de lenguajes admitidos (principales, secundarios o aplicación de revisiones) se agregan periódicamente a las instancias de App Service. Algunas actualizaciones sobrescriben la instalación existente, mientras que otras se instalan en paralelo a las versiones existentes. Una instalación de sobrescritura significa que la aplicación se ejecuta automáticamente en el tiempo de ejecución actualizado. Una instalación en paralelo significa que debe migrar manualmente la aplicación para beneficiarse de una versión en tiempo de ejecución nueva. Para más información, vea una de las subsecciones.

Nota

Esta información se aplica a tiempos de ejecución de lenguaje integrados en una aplicación de App Service. Un tiempo de ejecución personalizado cargado en App Service, por ejemplo, no varía, a menos que lo actualice manualmente.

Nuevas actualizaciones de revisiones

Las actualizaciones de .NET, PHP, SDK de Java o la versión de Tomcat se aplican automáticamente al sobrescribir la instalación existente con la versión más reciente. Las actualizaciones de revisión de Node.js se instalan en paralelo con las versiones existentes (de forma similar a las versiones principales y secundarias en la siguiente sección). Las nuevas versiones de revisión de Python pueden instalarse manualmente mediante extensiones de sitio, en paralelo con las instalaciones de Python integradas.

Nuevas versiones principales y secundarias

Cuando se agrega una nueva versión principal o secundaria, se instala en paralelo con las versiones existentes. Puede actualizar manualmente la aplicación a la nueva versión. Si configuró la versión en tiempo de ejecución en un archivo de configuración (como web.config y package.json), debe actualizarla con el mismo método. Si usó algún ajuste de App Service para configurar la versión en tiempo de ejecución, puede cambiarla en Azure Portal o mediante la ejecución de un comando de la CLI de Azure en Cloud Shell, como se muestra en los ejemplos siguientes:

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

En este ejemplo se usa la "sintaxis de tilde" recomendada para tener como destino la versión más reciente disponible del runtime Node.js 16 en App Service de Windows.

¿Cómo puedo consultar el estado de actualización del sistema operativo y en tiempo de ejecución en mis instancias?

Aunque el acceso a información crítica sobre el sistema operativo está bloqueada (vea Funcionalidad del sistema operativo en Azure App Service), la consola de Kudu le permite consultar las versiones del sistema operativo y en tiempo de ejecución en la instancia de App Service.

En la tabla siguiente se muestra cómo consultar las versiones de Windows y del tiempo de ejecución de lenguaje que ejecutan las aplicaciones:

Information Dónde encontrarla
Versión de Windows Consulte https://<appname>.scm.azurewebsites.net/Env.cshtml (en Información del sistema)
Versión de .NET En https://<appname>.scm.azurewebsites.net/DebugConsole, ejecute el siguiente comando en el símbolo del sistema:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"
Versión de .NET Core En https://<appname>.scm.azurewebsites.net/DebugConsole, ejecute el siguiente comando en el símbolo del sistema:
dotnet --version
Versión de PHP En https://<appname>.scm.azurewebsites.net/DebugConsole, ejecute el siguiente comando en el símbolo del sistema:
php --version
Versión de Node.js predeterminada En Cloud Shell, ejecute el comando siguiente:
az webapp config appsettings list --resource-group <groupname> --name <appname> --query "[?name=='WEBSITE_NODE_DEFAULT_VERSION']"
Versión de Python En https://<appname>.scm.azurewebsites.net/DebugConsole, ejecute el siguiente comando en el símbolo del sistema:
python --version
Versión de Java En https://<appname>.scm.azurewebsites.net/DebugConsole, ejecute el siguiente comando en el símbolo del sistema:
java -version

Nota:

El acceso a la ubicación del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages, donde se almacena la información sobre las revisiones "KB", está bloqueado.

Más recursos

Centro de confianza: seguridad
ASP.NET Core de 64 bits en Azure App Service