¿Cómo puedo solucionar los problemas de aplicación de parches relacionados con la instancia de Windows de Amazon EC2 cuando utilizo el documento AWS-RunPatchBaseline de Patch Manager?
Estoy intentando aplicar un parche a mi instancia de Windows de Amazon Elastic Compute Cloud (Amazon EC2), pero recibo errores. Quiero solucionar los problemas que surgen al utilizar el documento AWS-RunPatchBasline para aplicar parches a los nodos de Windows.
Breve descripción
Puede encontrar los siguientes problemas al utilizar Patch Manager, una función de AWS Systems Manager, documento AWS-RunPatchBaseline:
- El nodo no puede comunicarse con los puntos de conexión de Amazon Simple Storage Service (Amazon S3)
- La solicitud de token no es válida
- No puede buscar actualizaciones de Windows
- Las actualizaciones no se instalan después de la descarga
- Falta un parche
Solución
El nodo no puede comunicarse con los puntos de conexión de Amazon S3
Es posible que vea los siguientes mensajes de error de ejemplo cuando Amazon S3 no pueda conectarse al servidor remoto:
«Invoke-PatchBaselineOperation: Se ha cerrado la conexión subyacente: Se ha producido un error inesperado en un envío».
-o-
«Se ha producido un error al ejecutar PatchBaselineOperations: No se puede conectar al servidor remoto».
Los errores anteriores se producen porque el nodo no puede conectarse a los puntos de conexión de S3. O bien, al perfil de AWS Identity and Access Management (IAM) adjunto a la instancia le faltan los permisos mínimos necesarios para la conectividad de S3.
Para resolverlo, siga los pasos a continuación:
1. Compruebe que los permisos de IAM para el perfil de instancia estén adjuntos al nodo. Para conocer los permisos mínimos, consulteComunicaciones de AWS Systems Manager (SSM Agent) con los buckets de S3 administrados por AWS.
2. Para comprobar la conexión al punto de conexión de Amazon S3, ejecute el siguiente comando en PowerShell:
Nota: Sustituya <region_id> por su ID de región de AWS.
tnc s3.<region_id>.amazonaws.com -port 443
3. Si se produce un error en la prueba anterior, compruebe cómo está conectada la instancia a los puntos de conexión de Systems Manager:
- Si la instancia está en una subred pública, asegúrese de que la tabla de enrutamiento adjunta a la instancia utilice una puerta de enlace de Internet para enrutar a 0.0.0.0/0.
- Si la instancia está en una subred privada, utilice una puerta de enlace NAT para conectarse, cree un punto de conexión de VPC de puerta de enlace S3 o cree un punto de conexión de VPC de interfaz.
La solicitud de token no es válida
Es posible que vea los siguientes mensajes de error de ejemplo porque la solicitud de token no es válida:
«La operación Invoke-PatchBaselineOperation ha dado error con: El token de seguridad incluido en la solicitud no es válido:
-o-
«Invoke-PatchBaselineOperation: El identificador de instancia i-00fe5918abcdef12 no coincide con las credenciales».
Los errores anteriores se producen cuando SSM Agent usa credenciales diferentes de las credenciales que usted espera que utilice. Por ejemplo, SSM Agent utiliza un archivo de credenciales compartido en lugar de un perfil de instancia.
Nota: Para SSM Agent, versión 3.1.1927.0 o anterior, SSM Agent busca las credenciales en el orden prescrito para la cadena de proveedores de credenciales predeterminada. Esto también se aplica a las instancias de contenedores de Amazon Elastic Container Service (Amazon ECS).
A partir de la versión 3.2.183.0 de SSM Agent, SSM Agent almacena un conjunto de credenciales temporales en /var/lib/amazon/ssm/credentials (Linux y macOS) o %PROGRAMFILES%\Amazon\SSM\credentials (Windows Server). Las credenciales temporales tienen los permisos que usted especifica para el rol de IAM que ha seleccionado. El rol de IAM tiene los permisos de la configuración de administración de hosts predeterminada o del perfil de instancia adjunto al nodo administrado.
Para resolver estos errores, actualice SSM Agent a la versión 3.2.183.0 o posterior para que pueda obtener las credenciales de un archivo en la carpeta SSM.
Para usar una versión anterior de SSM Agent, encuentre las credenciales compartidas, elimínelas y vuelva a probar el parche.
Para localizar las credenciales, siga estos pasos:
1. Pulse la tecla Windows y escriba variables de entorno.
2. Busque las variables denominadas AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY.
3. Elimine las credenciales y, a continuación, vuelva a probar el parche.
Ubicaciones de credenciales compartidas
Los siguientes son ejemplos de ubicaciones de credenciales compartidas:
SystemsProfile
- C:\Windows\System32\config\systemprofile\.aws\
- C:\Windows\System32\config\systemprofile\AppData\Local\AWSToolkit\RegisteredAccounts.json
Perfil de usuario
- %USERPROFILE%\.aws\
- %USERPROFILE%\AppData\Local\AWSToolkit\RegisteredAccounts.json
No puede buscar actualizaciones de Windows
Es posible que vea los siguientes mensajes de error de ejemplo cuando no pueda buscar actualizaciones de Windows:
«Invoke-PatchBaselineOperation: Detalles de la excepción: Se ha producido un error al intentar buscar Windows Update. Mensaje de error: Excepción de HRESULT: 0x80240437»
-o-
«Invoke-PatchBaselineOperation: Detalles de la excepción: Se ha producido un error al intentar buscar Windows Update. Mensaje de error: Excepción de HRESULT: 0x80072EE2»
Los errores anteriores están relacionados con los componentes de Windows Update, la falta de conectividad con el catálogo de Windows Update o con Windows Server Update Services (WSUS).
Para resolverlo, siga los pasos a continuación:
1. Compruebe la conexión a Windows Update. Determine si la instancia tiene una conexión directa de Internet a la fuente de parches de Microsoft a través de un proxy o mediante WSUS.
2. Puede usar una política de grupo o claves de registro para configurar los servidores WSUS. Para comprobar la configuración de WSUS, ejecute el siguiente comando:
Consulte la política del grupo:
gpresult /H %USERPROFILE%\Desktop\report.html
Compruebe las claves de registro que pueden configurarse manualmente:
Get-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' | Select-Object AUOptions, NoAutoUpdate, UseWUServer
Get-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate' | Select-Object DisableWindowsUpdateAccess, WUServer, WUStatusServer
Para comprobar las configuraciones del proxy, ejecute los siguientes comandos:
Nota: Debe obtener las configuraciones de proxy en el contexto de la cuenta de usuario del sistema S-1-5-18 donde realiza las operaciones de aplicación de parches. Para obtener las configuraciones, utilice Run Command, una función de AWS Systems Manager, junto con el documento AWS-RunPowerShellScript.
Descargue PSExec en el sitio web de Microsoft y ejecute el siguiente comando para iniciar una nueva línea de comandos de PowerShell en el contexto del usuario del sistema:
psexec -i -s C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Para ver la configuración del registro de AmazonSSMAgent, ejecute el siguiente comando:
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent'
Para ver las variables de entorno del sistema (http_proxy, https_proxy, no_proxy), ejecute los siguientes comandos:
Get-Item -Path Env:http_proxy Get-Item -Path Env:https_proxy Get-Item -Path Env:no_proxy
Para ver la configuración de Internet Explorer (HTTP, seguro, excepciones), ejecute el siguiente comando:
Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | Select-Object ProxyServer, ProxyEnable
Para ver el proxy de WinINet ejecute el siguiente comando:
[System.Net.WebRequest]::DefaultWebProxy
Para ver la configuración del proxy de WinHTTP (http=, http=, bypass-list=), ejecute el siguiente comando:
netsh winhttp show proxy
Si el proxy está configurado solo para SSM Agent, Patch Manager no funciona. Esto se debe a que el cliente de Windows Update usa la configuración de proxy de todo el sistema para analizar y descargar las actualizaciones. Para configurar el sistema proxy en todo el sistema, ejecute el siguiente comando:
netsh winhttp set proxy proxy-server="hostname:port" bypass-list="169.254.169.254"
Si hay una conexión, restablezca los componentes de Windows Update y vuelva a intentar aplicar los parches.
Las actualizaciones no se instalan después de la descarga
Para resolver una actualización que no se instala después de la descarga, siga estos pasos:
1. Revise los registros de instalación del parche en C:\Windows\Logs\CBS y haga coincidir la fecha y hora del comando que se está ejecutando. A continuación, revise los registros para ver si hay mensajes de error.
2. Si el parche requiere un reinicio, pero no se instala después de reiniciarlo, utilice una captura de pantalla de Amazon EC2 para ver el mensaje en la pantalla de inicio de sesión.
Nota: Es posible que los parches se anulen con el siguiente mensaje en la pantalla de inicio: «No se han podido completar las actualizaciones. Deshaciendo los cambios. No apague el ordenador».
3. Encuentre el código HResult en el archivo de registro del Servicio basado en componentes (CBS) y, a continuación, busque el código en la documentación de errores de Windows Update.
4. Restablezca los componentes de Windows Update y vuelva a intentar la instalación.
Falta un parche
Para solucionar la falta de parches, consulte ¿Cómo puedo solucionar los problemas por un parche de KB que falta después de una operación de aplicación de parches correcta en instancias Windows de EC2 mediante Patch Manager?
Información relacionada
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 10 meses
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 4 años