昔、構築したAWS EC2 のWindows Serverにログオンしようとしたところ、管理者パスワードがわからなくなってしまった。
もしくは、昔、使っていたWindows Server のAMIをリストアしたところ、パスワードがkeyPairからWindows管理者パスワードの取得が出来なくなってしまった・・・
等で、ログオン出来ないWindows EC2は削除するしかないのでしょうか?
レジュメ
環境・前提条件
今回検証でレスキューしたのは試したのはWindows Server 2016 EC2ですが、環境によっては、Windows管理者パスワードがわからなくなってもまだ諦めるのは早いかもしれませんよ。
結論、「SSM Run Command」もしくは「EC2Rescue for Windows Server」で管理者パスワードできるかも
今回試した方法は、AWSのサービス SSM Run Commandでパスワードリセットが出来ました。
ただ、この場合は、管理者パスワードをリセットしたいEC2に対し、Run Commandが実行できる環境を用意する必要があります。
また、別の手として「EC2Rescue for Windows Server」からレスキューする方法もあります。
こちらの方法を以下を参照してください。
- 忘れたまたは期限切れの Windows 管理者パスワードをリセットする - Amazon Elastic Compute Cloud
- Amazon EC2RescueでEC2 Windows Server instanceを救出する – サーバーワークスエンジニアブログ
SSM Run Commandとは一体何?
SSMとは「Amazon EC2 Simple Systems Manager」の略です。
「Run Command」はSSMから実行命令を出すことにより、リモートのEC2内のSSMエージェントが反応し実行する仕組みです。
つまり、
- リモート実行対象のEC2にSSMエージェントがインストールされ実行されていること
- SSMとリモート実行対象のEC2が通信できること
が実行の条件になります。
SSM Run Commandが実行できれば、あとは
net user administrator <パスワード>
をリモートから実行すれば、管理者パスワードがリセットされるという方法です。
SSM Run Commandを実行するのに必要な環境条件は?
まずは、EC2にSSMエージェントが入っているかどうかなのですが、デフォルトでWindows Server のAMIにはインストールされているとのことです。
確かにサービス一覧を見ますと、
Amazon SSM Agent
サービスが実行されていることがわかります。
また、SSMとSSMエージェント(EC2)の通信には
- ec2messages
- ssmmessages
のエンドポイントが必要になります。詳しくは以下のURLを参照してください。
SSM エージェント のインストールと設定 - AWS Systems Manager