カスタム AMI から Windows Server を起動してログインできなくなったときの解決方法
カスタマーサクセス部 運用支援チームのいたくらです。
うっかり EC2(Windows Server)にログインできなくなったこと、ありませんか?私はあります。
そんなときに便利な Run Command のコマンドドキュメントがあるのでご紹介します。
はじめに
なぜ EC2 にログインできなくなったのかを簡単にご説明します。
検証で AWS 上に Windows Server を起動し、AMI を取得し、取得した AMI を使用して新たに Windows Server を起動する、といったことを繰り返していました。
あるとき、その AMI から起動した Windows Server に RDP 接続しようと思い、EC2 のインスタンス一覧から EC2 を選択し、いつも通り接続しようとしたところ、以下の画面が表示されました。
「インスタンスはカスタム AMI から作成されたか、デフォルトパスワードが変更されています。」…はい、カスタム AMI から起動しました。
というわけで、カスタム AMI から起動したため、初期パスワードが取得できない状況となり EC2 にログインできなくなりました。
今回は下記 re:Post を元にパスワードを再設定・ログインまで実施してみました。
前提条件
- 当該 EC2 には Systems Manager エージェントがインストールされていること
- 当該 EC2 はインターネットにアクセスできること
- 今回の EC2 はプライベートサブネットに存在するが、NAT Gateway 経由でインターネットアクセス可能
やってみた
IAM ポリシーの準備
暗号化された新しいパスワードをパラメータストアに書き込むために、当該 EC2 に対して IAM ポリシーを追加アタッチします。
まず以下のように IAM ポリシーを新規作成します。
IAM ポリシー(JSON)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:PutParameter"
],
"Resource": [
"arn:aws:ssm:*:*:parameter/EC2Rescue/Passwords/i-*"
]
}
]
}
作成した IAM ポリシーを、EC2 にアタッチしている IAM ロールに追加アタッチします。
コマンドドキュメントを実行
AWS Systems Manager のサービスページに移動し、「Run Command」を開き、右上の「Run Command」をクリックします。
コマンドドキュメントで AWSSupport-RunEC2RescueForWindowsTool
を検索し、選択します。
Command が ResetAccess
になっていることを確認します。
ターゲットは インスタンスを手動で選択する
を選択し、当該 EC2 を選択します。
その他のパラメータは変更せず、「実行」をクリックします。
すると、「コマンドが正常に送信されました」と表示され、ステータスが「進行中」となります。
少し待つと、ステータスが「成功」となります。
「ターゲットと出力」に表示されている「インスタンス ID」をクリックします。
「ステップ 2 - コマンドの説明とステータス」の「Output」のトグルを開くと、新しいパスワードの URL が記載されているので、その URL に移動します。
新しいパスワードで EC2 にログイン
URL に移動すると、パラメータストアの /EC2Rescue/Passwords/インスタンスID
のページが表示されます。
「値」のトグルボタンをクリックし、表示された文字列をコピーします。
Systems Manager の「フリートマネージャー」に移動し、当該 EC2 を選択 >「ノードアクション」>「接続」>「リモートデスクトップで接続」の順にクリックします。
ユーザー名は Administrator
、パスワードは先ほどコピーした文字列を入力し、「接続」をクリックします。
無事にログインできました!
パスワードを再設定
ベストプラクティスに沿ってパスワードをローテーションします。
Windows メニューから「サーバーマネージャー」を開きます。
「ツール」>「コンピューターの管理」の順にクリックします。
「ユーザー」内の「Administrator」を選択し、「パスワードの設定」をクリックします。
警告画面が表示されるので記載を確認し、「続行」をクリックします。
新しいパスワードを入力し、「OK」をクリックします。
「パスワードは設定されました。」と表示されたことを確認し、「OK」をクリックします。
右上の「アクション」>「接続を終了」の順にクリックし、フリートマネージャーでの接続を終了します。
再設定したパスワードでログイン確認
念の為、再設定したパスワードでログイン確認を実施します。
接続を終了した直後だと以下のような画面だと思うので、「接続の追加」をクリックします。
ノードとして当該 EC2 を選択し、「追加」をクリックします。
ユーザー名は Administrator
、パスワードは先ほど再設定したパスワードを入力し、「接続」をクリックします。
先ほど接続を終了したときと同じ画面が表示されるはずです。
パラメータストアからパラメータを削除
ベストプラクティスに沿ってパラメータを削除します。
パラメータストアの /EC2Rescue/Passwords/インスタンスID
のページに戻り、「削除」をクリックします。
あとはキャプチャを撮り忘れてしまいましたが、一時的にアタッチした IAM ポリシーもデタッチしましょう。
不要であれば IAM ポリシーも削除してしまいましょう。
あとがき
とても便利なコマンドドキュメントのご紹介でした。
カスタム AMI から EC2 を起動すること自体はよくあることだと思いますので、Windows Server の場合はこういうことも起きうるよ、でも便利なコマンドドキュメントがあるから何とかなるよ、と頭の片隅に置いておいていただけると良いかもしれません。
あとはこのような便利機能を使用できるため、積極的に SSM エージェントはインストールしておいた方が良いと感じました。
この記事がどなたかのお役に立てれば幸いです。
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。
サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。