Comment résoudre les problèmes d'application de correctifs liés à l'instance Windows Amazon EC2 lorsque j'utilise le document Patch Manager AWS-RunPatchBaseline ?

Lecture de 7 minute(s)
0

Je tente d'appliquer un correctif à mon instance Windows Amazon Elastic Compute Cloud (Amazon EC2), mais je reçois des erreurs. Je souhaite résoudre les problèmes liés à l'utilisation du document AWS-RunPatchBaseline pour appliquer des correctifs à des nœuds Windows.

Brève description

Vous pouvez rencontrer les problèmes suivants lorsque vous utilisez Patch Manager, une fonctionnalité d'AWS Systems Manager, document AWS-RunPatchBaseline :

  • Le nœud ne peut pas atteindre les points de terminaison Amazon Simple Storage Service (Amazon S3)
  • La demande de jeton n'est pas valide
  • Vous ne pouvez pas rechercher les mises à jour Windows
  • Les mises à jour ne peuvent pas être installées après le téléchargement
  • Il manque un correctif

Résolution

Le nœud ne peut pas atteindre les points de terminaison Amazon S3

Les exemples de messages d'erreur suivants peuvent s'afficher lorsqu'Amazon S3 ne parvient pas à se connecter au serveur distant :

« Invoke-PatchBaselineOperation : The underlying connection was closed: An unexpected error occurred on a send »

-ou-

« An error occurred when executing PatchBaselineOperations: Unable to connect to the remote server »

Les erreurs précédentes se produisent car le nœud ne peut pas se connecter aux points de terminaison S3. Ou bien, le profil AWS Identity and Access Management (IAM) associé à l'instance ne dispose pas des autorisations minimales requises pour la connectivité S3.

Pour résoudre ces problèmes, procédez comme suit :

1.    Vérifiez que les autorisations IAM pour le profil d'instance sont associées au nœud. Pour connaître les autorisations minimales, consultez la section Communications de l’AWS Systems Manager Agent (SSM Agent) avec les compartiments S3 gérés par AWS.

2.    Pour vérifier la connexion au point de terminaison Amazon S3, exécutez la commande suivante dans PowerShell :
Remarque : Remplacez <region_id> par votre ID de région AWS.

tnc s3.<region_id>.amazonaws.com -port 443

3.    Si le test précédent échoue, vérifiez comment l'instance est connectée aux points de terminaison de Systems Manager :

La demande de jeton n'est pas valide

Les exemples de messages d'erreur suivants peuvent s'afficher car la demande de jeton n'est pas valide :

« Invoke-PatchBaselineOperation failed with: The security token included in the request is invalid:

-ou-

« Invoke-PatchBaselineOperation: Instance Id i-00fe5918abcdef12 doesn't match the credentials »

Les erreurs précédentes se produisent lorsque SSM Agent utilise des informations d'identification différentes de celles que vous attendiez. Par exemple, SSM Agent utilise un fichier d'informations d'identification partagé au lieu d'un profil d'instance.

**Remarque :**Pour la version 3.1.1927.0 ou antérieure de SSM Agent, ce dernier recherche les informations d'identification dans l'ordre prescrit pour la chaîne de fournisseurs d'informations d'identification par défaut. Cela s'applique également aux instances de conteneur Amazon Elastic Container Service (Amazon ECS).

À partir de la version 3.2.183.0 de SSM Agent, ce dernier stocke un ensemble d'informations d'identification temporaires dans le fichier /var/lib/amazon/ssm/credentials (Linux et macOS) ou %PROGRAMFILES%\Amazon\SSM\credentials (Windows Server). Les informations d'identification temporaires disposent des autorisations que vous spécifiez pour le rôle IAM que vous avez sélectionné. Le rôle IAM dispose des autorisations issues de la configuration de gestion des hôtes par défaut ou du profil d'instance associé à votre nœud géré.

Pour résoudre ces erreurs, effectuez la mise à jour de SSM Agent vers la version 3.2.183.0 ou ultérieure afin qu'il puisse récupérer les informations d'identification à partir d'un fichier du dossier SSM.

Pour utiliser une version antérieure de SSM Agent, recherchez les informations d'identification partagées, supprimez-les, puis testez à nouveau le correctif.

Pour trouver les informations d'identification, procédez comme suit :

1.    Appuyez sur la clé Windows, puis saisissez les variables d’environnement.

2.    Recherchez les variables nommées AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY.

3.    Supprimez les informations d'identification, puis testez à nouveau le correctif.

Emplacements d'informations d’identification partagées

Voici des exemples d'emplacements d'informations d'identification partagées :

SystemsProfile

  • C:\Windows\System32\config\systemprofile\.aws\
  • C:\Windows\System32\config\systemprofile\AppData\Local\AWSToolkit\RegisteredAccounts.json

Profil utilisateur

  • %USERPROFILE%\.aws\
  • %USERPROFILE%\AppData\Local\AWSToolkit\RegisteredAccounts.json

Vous ne pouvez pas rechercher les mises à jour Windows

Les exemples de messages d'erreur suivants peuvent s'afficher lorsque vous ne parvenez pas à rechercher des mises à jour Windows :

« Invoke-PatchBaselineOperation : Exception Details: An error occurred when attempting to search Windows Update. Error Message: Exception from HRESULT: 0x80240437 »

-ou-

« Invoke-PatchBaselineOperation : Exception Details: An error occurred when attempting to search Windows Update. Error Message: Exception from HRESULT: 0x80072EE2 »

Les erreurs précédentes sont liées aux composants de Windows Update, à un manque de connectivité à Windows Update Catalog ou à Windows Server Update Services (WSUS).

Pour résoudre ces problèmes, procédez comme suit :

1.    Vérifiez la connexion à Windows Update. Déterminez si l'instance dispose d'une connexion Internet directe à la source de correctifs Microsoft via un proxy ou via WSUS.

2.    Vous pouvez utiliser une politique de groupe ou des clés de registre pour configurer les serveurs WSUS. Pour vérifier la configuration WSUS, exécutez les commandes suivantes :

Vérifiez la politique de groupe :

gpresult /H %USERPROFILE%\Desktop\report.html

Vérifiez les clés de registre qui peuvent être définies manuellement :

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

Pour vérifier les configurations du proxy, exécutez les commandes suivantes :

Remarque : Vous devez obtenir les configurations du proxy dans le contexte du compte utilisateur système S-1-5-18 sur lequel vous effectuez les opérations de correction. Pour obtenir les configurations, utilisez Exécuter la commande, une fonctionnalité d'AWS Systems Manager, avec le document AWS-RunPowerShellScript.

Téléchargez PSExec sur le site Web de Microsoft et exécutez la commande suivante pour lancer une nouvelle invite PowerShell dans le contexte du compte utilisateur système :

psexec -i -s C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Pour voir les paramètres du registre AmazonSSMAgent, exécutez la commande suivante :

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent'

Pour voir les variables d'environnement système (http_proxy, https_proxy, no_proxy), exécutez les commandes suivantes :

Get-Item -Path Env:http_proxy  
Get-Item -Path Env:https_proxy  
Get-Item -Path Env:no_proxy

Pour voir les paramètres d'Internet Explorer (HTTP, sécurité, exceptions), exécutez la commande suivante :

Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | Select-Object ProxyServer,  ProxyEnable

Pour voir le proxy WinINet, exécutez la commande suivante :

[System.Net.WebRequest]::DefaultWebProxy

Pour voir les paramètres du proxy WinHTTP (http=, https=, bypass-list=), exécutez la commande suivante :

netsh winhttp show proxy

Si le proxy est configuré uniquement pour SSM Agent, le gestionnaire de correctifs ne fonctionnera pas. Cela est dû au fait que le client Windows Update utilise des paramètres proxy à l'échelle du système pour analyser et télécharger les mises à jour. Pour configurer le proxy à l'échelle du système, exécutez la commande suivante :

netsh winhttp set proxy proxy-server="hostname:port" bypass-list="169.254.169.254"

S'il existe une connexion, réinitialisez les composants de Windows Update et réessayez d'appliquer les correctifs.

Les mises à jour ne peuvent pas être installées après le téléchargement

Pour résoudre le problème d'une mise à jour qui ne s'installe pas après le téléchargement, procédez comme suit :

1.    Consultez les journaux d'installation des correctifs sur C:\Windows\Logs\CBS et faites correspondre l'horodatage de la commande en cours d'exécution. Consultez ensuite les journaux pour détecter les messages d'erreur.

2.    Si le correctif nécessite un redémarrage, mais ne peut pas être installé après le redémarrage, faites une capture d'écran Amazon EC2 pour voir le message sur l'écran de connexion.

Remarque : Les correctifs pourraient être annulés avec le message suivant sur l'écran de démarrage : « Nous n'avons pas pu terminer les mises à jour. Annulation des modifications en cours. N'éteignez pas votre ordinateur »

3.    Recherchez le code HResult dans le fichier journal CBS (Component-Based Servicing), puis recherchez le code d’erreur dans la documentation Erreur de Windows Update.

4.    Réinitialisez les composants de Windows Update, puis retentez l'installation.

Il manque un correctif

S’il manque un correctif, consultez la section Comment résoudre les problèmes liés à un correctif KB manquant après une correction réussie sur des instances Windows EC2 via Patch Manager ?

Informations connexes

Installation des correctifs

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an