Réinitialiser les mots de passe et les clés SSH sur les instances EC2 - AWS Systems Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Réinitialiser les mots de passe et les clés SSH sur les instances EC2

Vous pouvez utiliser le runbook AWSSupport-ResetAccess pour réactiver automatiquement la génération du mot de passe administrateur local sur les instances Amazon Elastic Compute Cloud (Amazon EC2) pour Windows Server et générer une nouvelle clé SSH sur les instances EC2 pour Linux. Le AWSSupport-ResetAccess runbook est conçu pour exécuter une combinaison d' AWS Systems Manager actions, AWS CloudFormation d'actions et de AWS Lambda fonctions qui automatisent les étapes normalement requises pour réinitialiser le mot de passe de l'administrateur local.

Vous pouvez utiliser Automation, une fonctionnalité de AWS Systems Manager, avec le AWSSupport-ResetAccess runbook pour résoudre les problèmes suivants :

Windows

Vous avez perdu la paire de clés EC2 : pour résoudre ce problème, vous pouvez utiliser le AWSSupport- ResetAccess runbook pour créer une instance activée par mot de passe à AMI partir de votre instance actuelle, lancer une nouvelle instance depuis l'AMI et sélectionner une paire de clés qui vous appartient.

Vous avez oublié le mot de passe administrateur local : pour résoudre ce problème, vous pouvez utiliser le runbook AWSSupport-ResetAccess pour générer un nouveau mot de passe que vous pouvez déchiffrer avec la paire de clés EC2 actuelle.

Linux

Vous avez perdu votre paire de clés EC2 ou vous avez configuré l'accès SSH à l'instance avec une clé que vous avez perdue : pour résoudre ce problème, vous pouvez utiliser le runbook AWSSupport-ResetAccess pour créer une clé SSH pour votre instance actuelle, ce qui vous permet de vous reconnecter à l'instance.

Note

Si votre instance EC2 pour Windows Server est configurée pour Systems Manager, vous pouvez aussi réinitialiser votre mot de passe administrateur local à l'aide d'EC2Rescue et de AWS Systems Manager Run Command. Pour de plus amples informations, consultez Using EC2Rescue for Windows Server with Systems Manager Run Command (Utilisation d'EC2Rescue for Windows Server avec la commande Run (Exécution) de Systems Manager) dans le Guide de l'utilisateur Amazon EC2 pour instances Windows.

Informations connexes

Se connecter à votre instance Linux à partir de Windows à l'aide de PuTTY dans le Guide de l'utilisateur pour les instances Linux Amazon EC2

Comment ça marche

Le dépannage d'une instance avec Automation et le runbook AWSSupport-ResetAccess fonctionne le la façon suivante :

  • Vous spécifiez l'ID de l'instance et vous exécutez le runbook.

  • Le système crée un VPC temporaire, puis exécute une série de fonctions Lambda pour configurer le VPC.

  • Le système identifie un sous-réseau pour votre VPC temporaire dans la même zone de disponibilité que votre instance d'origine.

  • Le système lance une instance d'assistant SSM temporaire.

  • Le système arrête l'instance originale et crée une sauvegarde. Ensuite, il rattache le volume racine original à l'instance d'assistant.

  • Le système utilise l'action Run Command pour exécuter EC2Rescue sur l'instance d'assistant. Sous Windows, EC2Rescue active la génération de mot de passe pour l'administrateur local grâce à EC2Config ou EC2Launch sur le volume racine original attaché. Sous Linux, EC2Rescue génère et injecte une nouvelle clé SSH, et enregistre la clé privée, chiffrée, dans Parameter Store. Lorsque vous avez terminé, EC2Rescue rattache le volume racine à l'instance d'origine.

  • Le système crée une Amazon Machine Image (AMI) de votre instance, maintenant que la génération de mot de passe est activée. Vous pouvez utiliser cette AMI pour créer une instance EC2 et lui associer une nouvelle paire de clés le cas échéant.

  • Le système redémarre votre instance originale et met fin à l'instance temporaire. Le système met également fin au VPC temporaire et aux fonctions Lambda créés au début de l'automatisation.

  • Windows : Votre instance génère un nouveau mot de passe que vous pouvez décoder à partit de la console Amazon EC2 grâce à la paire de clés actuelle affectée à l'instance.

    Linux : vous pouvez accédez à l'instance via SSH à l'aide de la clé SSH stockée dans Systems Manager Parameter Store sous /ec2rl/openssh/instance ID/key (/ec2rl/openssh/ID de l'instance/key).

Avant de commencer

Avant d'exécuter l'automatisation suivante, veillez à exécuter les actions suivantes :

  • Copiez l'ID de l'instance sur laquelle vous souhaitez réinitialiser le mot de passe administrateur. Vous spécifierez cet ID au cours de la procédure.

  • Vous pouvez également recueillir l'ID d'un sous-réseau dans la même zone de disponibilité que votre instance inaccessible. L'instance EC2Rescue sera créée dans ce sous-réseau. Si vous ne spécifiez aucun sous-réseau, Automation crée un nouveau VPC temporaire dans votre. Compte AWS Vérifiez que vous Compte AWS disposez d'au moins un VPC. Par défaut, vous pouvez créer cinq VPC par région. Si vous avez déjà créé cinq VPC dans la région, l'automatisation échoue sans apporter les modifications à votre instance. Pour de plus amples informations sur les quotas Amazon VPC, consultez VPC et sous-réseaux dans le Guide de l'utilisateur Amazon VPC.

  • Vous pouvez éventuellement créer et spécifier un rôle AWS Identity and Access Management (IAM) pour Automation. Si vous ne spécifiez pas ce rôle, Automation s'exécute dans le contexte de l'utilisateur qui a exécuté l'automatisation.

Octroi d'autorisations à AWSSupport -EC2Rescue pour effectuer des actions sur vos instances

EC2Rescue a besoin d'autorisation pour réaliser une série d'action sur vos instances pendant l'automatisation. Ces actions font appel aux AWS Lambda services IAM et Amazon EC2 pour tenter de résoudre en toute sécurité les problèmes liés à vos instances. Si vous disposez d'autorisations de niveau administrateur dans votre VPC et/ou Compte AWS votre VPC, vous pourrez peut-être exécuter l'automatisation sans configurer les autorisations, comme décrit dans cette section. Si vous ne possédez pas les autorisations niveau administrateur, donc vous, ou un administrateur, devez configurer les autorisations en utilisant l'une des options suivantes.

Attribution des autorisations en utilisant les politiques IAM

Vous pouvez attacher la politique IAM suivante à votre utilisateur, groupe ou rôle IAM en tant que politique en ligne, ou vous pouvez créer une nouvelle politique IAM gérée et la relier à votre utilisateur, groupe ou rôle. Pour plus d'informations au sujet de l'ajout d'une politique en ligne à votre compte utilisateur, groupe ou rôle, consultez la page Utilisation de politiques en ligne. Pour plus d'informations sur la création d'une nouvelle politique gérée, consultez la page Utilisation de politiques gérées.

Note

Si vous créez une nouvelle politique gérée par IAM, vous devez également y associer la politique AutomationRole gérée AmazonSSM afin que vos instances puissent communiquer avec l'API Systems Manager.

Politique IAM pour AWSSupport-ResetAccess

Remplacez account ID (ID du compte) par vos propres informations.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:account ID:function:AWSSupport-EC2Rescue-*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::awssupport-ssm.*/*.template", "arn:aws:s3:::awssupport-ssm.*/*.zip" ], "Effect": "Allow" }, { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile" ], "Resource": [ "arn:aws:iam::account ID:role/AWSSupport-EC2Rescue-*", "arn:aws:iam::account ID:instance-profile/AWSSupport-EC2Rescue-*" ], "Effect": "Allow" }, { "Action": [ "lambda:CreateFunction", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DeleteVpc", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:DetachInternetGateway", "ec2:DeleteInternetGateway", "ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:CreateRoute", "ec2:DeleteRoute", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:DisassociateRouteTable", "ec2:DeleteRouteTable", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }

Octroi d'autorisations à l'aide d'un AWS CloudFormation modèle

AWS CloudFormation automatise le processus de création de rôles et de politiques IAM à l'aide d'un modèle préconfiguré. Utilisez la procédure suivante pour créer les rôles et les politiques IAM pour l'automatisation EC2Rescue à l'aide d' AWS CloudFormation.

Pour créer les rôles et les politiques IAM obligatoire pour EC2Rescue
  1. Téléchargez AWSSupport-EC2RescueRole.zip et extrayez le fichier AWSSupport-EC2RescueRole.json pour l'enregistrer dans un répertoire de votre machine locale.

  2. Si vous Compte AWS vous trouvez dans une partition spéciale, modifiez le modèle pour remplacer les valeurs de l'ARN par celles de votre partition.

    Par exemple, pour les régions de Chine, remplacez toutes les occurrences de arn:aws par arn:aws-cn.

  3. Connectez-vous à la AWS CloudFormation console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudformation.

  4. Sélectionnez Créer une pile, Avec de nouvelles ressources (standard).

  5. Sur la page Créer une pile, pour Prérequis - Préparer le modèle, sélectionnez Le modèle est prêt.

  6. Dans Spécifier le modèle, sélectionnez Charger un modèle de fichier.

  7. Sélectionnez Choisir le fichier, puis recherchez et sélectionnez le fichier AWSSupport-EC2RescueRole.json dans le répertoire où vous l'avez extrait.

  8. Sélectionnez Suivant.

  9. Dans la page Spécifier les détails de la pile, pour le champ Nom de la pile, entrez un nom pour identifier cette pile, puis sélectionnez Suivant.

  10. (Facultatif) Dans la zone Balises, appliquez une ou plusieurs paires nom/valeur de clé de balise à la pile.

    Les balises sont des métadonnées facultatives que vous affectez à une ressource. Les balises vous permettent de classer une ressource de différentes façons, par exemple, par objectif, par propriétaire ou par environnement. Par exemple, vous pouvez baliser une pile pour identifier le type de tâches qu'elle exécute, les types de cibles ou d'autres ressources concernées, et l'environnement dans lequel elle est exécutée.

  11. Choisissez Next (Suivant)

  12. Sur la page de révision, passez en revue les détails de la pile, puis faites défiler la page vers le bas et choisissez l'option Je reconnais que cela AWS CloudFormation pourrait créer des ressources IAM.

  13. AWS CloudFormation affiche l'état de CREATE_IN_PROGRESS pendant quelques minutes. Le statut passe à CREATE_COMPLETE après la création de la pile. Vous pouvez également choisir l'icône d'actualisation pour vérifier le statut du processus de création.

  14. Dans la liste des piles, sélectionnez l'option en regard de la pile que vous venez de créer, puis sélectionnez l'onglet Sorties.

  15. Copiez la Valeur. Il s'agit de l'ARN du AssumeRole. Vous spécifierez cet ARN lorsque vous exécuterez l'automatisation.

Exécution d'Automation

La procédure suivante explique comment exécuter le runbook AWSSupport-ResetAccess à l'aide de la console AWS Systems Manager .

Important

L'automatisation suivante arrête l'instance. L'arrêt de l'instance peut entraîner la perte de données sur des volumes de stockage d'instance attachés (le cas échéant). L'arrêt de l'instance peut aussi causer le changement de l'adresse IP publique, si aucune adresse IP Elastic n'est associée. Pour éviter ces changements de configuration, utilisez Run Command pour réinitialiser l'accès. Pour de plus amples informations, consultez Using EC2Rescue for Windows Server with Systems Manager Run Command (Utilisation d'EC2Rescue for Windows Server avec la commande Run (Exécution) de Systems Manager) dans le Guide de l'utilisateur Amazon EC2 pour instances Windows.

Pour exécuter le AWSSupport - ResetAccess Automation
  1. Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/.

  2. Dans le panneau de navigation de gauche, sélectionnez Automation (Automatisation).

    -ou-

    Si la page d' AWS Systems Manager accueil s'ouvre en premier, choisissez l'icône du menu ( 
    The menu icon
  ) pour ouvrir le volet de navigation, puis choisissez Automation.

  3. Sélectionnez Execute automation (Exécuter l'automatisation).

  4. Dans la section Document d'automatisation, sélectionnez M'appartenant ou appartenant à Amazon dans la liste.

  5. Dans la liste des runbooks, cliquez sur le bouton sur la carte correspondant à AWSSupport- ResetAccess, puis sur Next.

  6. Sur la page Exécuter le document d'automatisation, sélectionnez Exécution simple.

  7. Dans la section Détails du document, vérifiez que l'option Version du document est définie sur la version par défaut la plus importante. Par exemple, $DEFAULT ou 3 (par défaut).

  8. Dans la section Paramètres d'entrée, spécifiez les paramètres suivants :

    1. Pour InstanceId, spécifiez l'ID de l'instance inaccessible.

    2. Pour SubnetId, spécifiez un sous-réseau dans un VPC existant dans la même zone de disponibilité que l'instance que vous avez spécifiée. Par défaut, Systems Manager crée un VPC, mais vous pouvez spécifier un sous-réseau dans un VPC existant si vous le souhaitez.

      Note

      Si vous ne voyez pas l'option permettant de spécifier un ID de sous-réseau, vérifiez que vous utilisez la version Par défaut la plus récente du runbook.

    3. Pour EC2 RescueInstanceType, spécifiez un type d'instance pour l'instance EC2Rescue. Le type d'instance par défaut est t2.medium.

    4. En AssumeRoleeffet, si vous avez créé des rôles pour cette automatisation à l'aide de la AWS CloudFormation procédure décrite plus haut dans cette rubrique, spécifiez l' AssumeRole ARN que vous avez noté dans la AWS CloudFormation console.

  9. (Facultatif) Dans la section Tags (Balises), appliquez une ou plusieurs paires nom/valeur de clé de balise pour aider à identifier l'automatisation, par exemple, Key=Purpose,Value=ResetAccess.

  10. Sélectionnez Execute (Exécuter).

  11. Pour contrôler les progrès de l'automatisation, sélectionnez l'automatisation en cours d'exécution, puis sélectionnez l'onglet Steps (Étapes). Lorsque l'automatisation est terminée, sélectionnez l'onglet Descriptions, puis sélectionnez View Output (Afficher la sortie) pour consulter les résultats. Pour consulter la sortie des étapes individuelles, sélectionnez l'onglet Étapes, puis sélectionnez Afficher les sorties en regard d'une étape.

Le runbook crée une AMI de sauvegarde et une AMI activée par mot de passe dans le cadre de l'automatisation. Toutes les autres ressources créées par le flux de travail d'automatisation sont automatiquement supprimées, mais ces AMIs restent dans votre compte. Les AMIs sont nommées selon les conventions suivantes :

  • AMI de sauvegarde : AWSSupport-EC2Rescue:InstanceID

  • AMI activée par mot de passe AWSSupport : -EC2Rescue : AMI activée par mot de passe à partir de l'ID d'instance

Vous pouvez localiser ces AMIs en recherchant l'ID d'exécution d'Automation.

Pour Linux, la nouvelle clé privée SSH pour votre instance est enregistrée, chiffrée, dans Parameter Store. Le nom du paramètre est /ec2rl/openssh/instance ID/key (/ec2rl/openssh/ID de l'instance/key).