Passer au contenu

Comment résoudre les erreurs d'authentification lorsque j'utilise le protocole RDP pour me connecter à une instance Windows EC2 ?

Lecture de 8 minute(s)
0

Lorsque j'utilise le protocole RDP (Remote Desktop Protocol) pour essayer de me connecter à mon instance Windows Amazon Elastic Compute Cloud (Amazon EC2), je reçois des erreurs d'authentification.

Brève description

Les erreurs d'authentification suivantes peuvent s'afficher lorsque vous utilisez le protocole RDP pour vous connecter à une instance Windows Amazon EC2 :

« An authentication error has occurred. The Local Security Authority cannot be contacted. »

« The remote computer that you are trying to connect to requires Network Level Authentication (NLA), but your Windows domain controller cannot be contacted to perform NLA. If you are an administrator on the remote computer, you can disable NLA by using the options on the Remote tab of the System Properties dialog box. »

Cette erreur peut se produire dans les scénarios suivants :

  • L'authentification au niveau du réseau (NLA) est activée pour le serveur.
  • La relation d’approbation entre votre domaine et l'instance EC2 jointe à ce domaine échoue lorsque RDP se connecte.

Vous pouvez utiliser le dossier d'exploitation AWSSupport-TroubleshootRDP ou résoudre les erreurs manuellement.

Résolution

L’authentification NLA est activée pour le serveur

Des erreurs d’authentification NLA se produisent lorsqu'une instance perd sa connectivité à un contrôleur de domaine parce que les informations d'identification du domaine ne sont pas authentifiées. Pour résoudre ce problème, utilisez l'une des méthodes suivantes pour désactiver l’authentification NLA sur une instance inaccessible :

  • Exécutez l'automatisation AWSSupport-TroubleshootRDP d’AWS Systems Manager pour modifier les paramètres de l'instance.
  • Utilisez Systems Manager Session Manager ou la commande aws:runPowerShellscript.
  • Modifiez manuellement le registre hors ligne.

Remarque : vous devez modifier le registre lorsque vous modifiez l’authentification NLA. Avant de commencer, créez une Amazon Machine Image (AMI) à partir de votre instance. Une sauvegarde est alors créée avant que vous ne modifiiez le registre.

Exécuter l'automatisation AWSSupport-TroubleshootRDP

Prérequis :

  • Passez en revue les modifications apportées aux paramètres RDP, au service RDP et aux profils de pare-feu Windows.
  • Assurez-vous que l'instance EC2 cible utilise un rôle de profil d'instance de Gestion des identités et des accès AWS (AWS IAM) auquel est associée la politique gérée par Amazon AmazonSSMManagedInstanceCore.
  • Vérifiez que votre utilisateur ou rôle IAM actuel dispose des autorisations requises. Pour plus d'informations, consultez la section Autorisations IAM requises de la rubrique AWSSupport-TroubleshootRDP.
    Remarque : Si vous choisissez l'option AllowOffline, ce dossier d'exploitation appelle le dossier d'exploitation AWSSupport-ExecuteEC2Rescue pour effectuer une correction hors ligne. Pour démarrer le dossier d'exploitation, la politique gérée par IAM AmazonSSMAutomationRole doit être associée. Pour plus d'informations, consultez la section AWSSupport-StartEC2RescueWorkflow.

Pour exécuter le dossier d'exploitation Systems Manager, procédez comme suit :

  1. Ouvrez la console Systems Manager.
  2. Dans le volet de navigation, sélectionnez Documents.
  3. Dans la barre de recherche, saisissez AWSSupport-TroubleshootRDP.
  4. Sélectionnez le document AWSSupport-TroubleshootRDP.
  5. Sélectionnez Exécuter l'automatisation.
  6. Sélectionnez Exécuter.

Pour voir les résultats détaillés une fois l’automatisation terminée, examinez la section Sorties.

Utiliser Systems Manager Session Manager

Important : Systems Manager (SSM Agent) doit être installé sur l'instance et celle-ci doit être en ligne. L'instance doit également avoir un rôle IAM qui accorde des autorisations pour le gestionnaire de sessions. Pour plus d'informations, consultez la section Remplir les prérequis pour Session Manager.

Pour ajouter des clés de registre et désactiver l’authentification NLA à l'aide de Session Manager, procédez comme suit :

  1. Ouvrez la console Systems Manager.
  2. Dans le volet de navigation, sélectionnez Fleet Manager.
  3. Sélectionnez l'instance gérée à laquelle vous souhaitez vous connecter.
  4. Dans le menu Actions du nœud, sélectionnez Démarrer la session de terminal.
  5. Exécutez les commandes suivantes dans la session de terminal :
    reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0 /f  
    reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
    reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fAllowSecProtocolNegotiation /t REG_DWORD /d 0 /f
    

Utilisez la commande aws:runPowerShellscript

Important : SSM Agent doit être installé sur l'instance et celle-ci doit être en ligne. L'instance doit également avoir un rôle IAM qui accorde des autorisations pour le gestionnaire de sessions. Pour plus d'informations, consultez la section Remplir les prérequis pour Session Manager.

Pour ajouter des clés de registre et désactiver l’authentification NLA à l'aide du document de commande aws:runPowerShellscript, procédez comme suit :

  1. Ouvrez la console Systems Manager.
  2. Dans le volet de navigation, choisissez Exécuter des commandes, puis sélectionnez Exécuter une commande.
    Dans Document de commande, choisissez AWS-RunPowerShellScript.
    Dans Paramètres de commande, saisissez les commandes suivantes :
    reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0 /f  
    reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
    reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fAllowSecProtocolNegotiation /t REG_DWORD /d 0 /f
    Pour Sélection de la cible, choisissez Choisir les instances manuellement, puis sélectionnez votre instance.
  3. Choisissez Exécuter.
  4. Attendez que le Statut général passe à Succès. Actualisez la page au bout de 2 minutes.
  5. Redémarrez l'instance.
  6. Utilisez le protocole RDP pour vous connecter à l'instance.

Modifier manuellement le registre hors ligne

Procédez comme suit :

  1. Arrêtez l'instance inaccessible, puis détachez le volume racine.

  2. Lancez une nouvelle instance dans la même zone de disponibilité que l'instance inaccessible que vous avez arrêtée. La nouvelle instance devient alors votre instance de secours.

    Important : pour éviter les problèmes de signature de disque, il est recommandé de lancer une instance Windows différente de l'instance inaccessible.

  3. Attachez le volume détaché à l'instance de secours en tant que /dev/xvdf.

  4. Utilisez le protocole RDP pour vous connecter à l'instance de secours, puis mettez en ligne le volume que vous venez de connecter dans le Gestionnaire de disques.

  5. Dans une invite de commande, saisissez regedit.exe, puis appuyez sur Entrée pour ouvrir l'éditeur de registre.

  6. Sélectionnez HKEY_LOCAL_MACHINE, choisissez Fichier, puis Charger Hive.

  7. Accédez au dossier Windows sur le volume associé, puis sélectionnez le fichier SYSTEM. Le chemin par défaut est D:\Windows\System32\config.

  8. Nommez le fichier SYSTEM. Par exemple, badsys.

  9. Le fichier système badsys apparaît désormais sous HKEY_LOCAL_MACHINE. Sous badsys, accédez à ControlSet001, Contrôle, Serveur de Terminal, WinStations, RDP-TCP.

  10. Double-cliquez sur SecurityLayer, puis définissez les données de valeur à 0.
    Sélectionnez UserAuthentication, puis définissez les données de valeur à 0.
    Sélectionnez fAllowSecProtocolNegotiation, puis définissez les données de valeur à 0.

  11. Sélectionnez badsys, choisissez Fichier, puis Décharger Hive.

  12. Une fois le déchargement de Hive terminé, ouvrez le Gestionnaire de disques et mettez le disque hors ligne.

  13. Détachez le volume de l'instance de secours et attachez-le à l'instance inaccessible en tant que volume racine (/dev/sda1).

  14. Démarrez l'instance, puis testez le RDP.

La relation d’approbation échoue pendant la connexion RDP

Utilisez les informations d'identification utilisateur mises en cache pour essayer de vous connecter à l'instance inaccessible.

Prérequis :

  • Un compte local capable de s'authentifier avec succès auprès de l'instance EC2.
  • (Facultatif) Au moins un compte de domaine qui était connecté lorsque l'instance a communiqué avec le contrôleur de domaine. Pour que le compte de domaine fonctionne, les informations d'identification du compte de domaine doivent être mises en cache sur le serveur.
    Remarque : il est recommandé d'utiliser un compte local.
  • Lorsque le contrôleur de domaine n'est pas disponible, assurez-vous que le paramètre du nombre de connexions précédentes à mettre en cache est défini sur au moins 1. Vous devez effectuer cette opération pour utiliser les connexions interactives. Vous pouvez définir la politique sur la valeur par défaut de 10. Par défaut, la politique n'est pas définie et vous pouvez utiliser la politique locale du serveur.

Pour utiliser les informations d'identification utilisateur mises en cache pour vous connecter, procédez comme suit :

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation, choisissez Groupes de sécurité.
  3. Choisissez Créer un groupe de sécurité.
  4. Ajoutez un nom et une description du groupe de sécurité.
  5. Sous Règles entrantes, choisissez Ajouter une règle.
    Dans Type, sélectionnez RDP. Puis, saisissez des informations sur la source à partir de laquelle vous souhaitez utiliser le protocole RDP pour vous connecter.
  6. Sous Règles sortantes, supprimez tous les accès sortants.
  7. Choisissez Créer un groupe de sécurité.
  8. Dans le volet de navigation, choisissezInstances, puis sélectionnez l'instance inaccessible.
  9. Choisissez Actions, sélectionnez Sécurité, puis Modifier les groupes de sécurité. Supprimez les groupes de sécurité existants, puis attribuez le groupe de sécurité que vous venez de créer.
  10. Utilisez le compte de domaine normal pour utiliser le protocole RDP afin de vous connecter à l'instance EC2. Dans la mesure où vous avez supprimé l’accès sortant d'Amazon EC2, RDP utilise les informations d'identification mises en cache stockées sur le serveur.

Remarque : l'authentification est initialement tentée via le contrôleur de domaine. Étant donné qu'il n’existe aucun accès sortant depuis Amazon EC2, l'authentification finit par vérifier les informations d'identification mises en cache stockées sur le serveur. L'authentification est à nouveau tentée avec les informations d'identification mises en cache et la connexion réussit. Une fois connecté, vous pouvez rétablir l'état d'origine des paramètres du groupe de sécurité. Puis, continuez à résoudre tous les problèmes liés à votre domaine.

Résolution de problèmes supplémentaires

Si vous ne parvenez toujours pas à vous connecter à l'instance, consultez la section Comment résoudre les problèmes de connexion RDP à mon instance Windows EC2 ?

Informations connexes

AWS Systems Manager Run Command

Gestionnaire de session d'AWS Systems Manager

Exécuter une opération automatisée optimisée par Systems Manager Automation

Configuration d’Automation

Référence du dossier d’exploitation de Systems Manager Automation