セッションマネージャーを使ってWindows serverのEC2インスタンスにアクセスする

セッションマネージャーを経由して、EC2 Windows Serverインスタンスに接続します。この際、適切にIAMロールを設定することが重要です。今回は、IAMロールの設定やEC2インスタンスの構築・接続について紹介していきます。
2023.07.20

はじめに

こんにちは、おのやんです。

EC2インスタンスを建てた後に、少し中に入って作業したいこと、ありませんか?私はあります。

内部の情報を取得したり、ちょっとした設定を変更したり、etc...

そういったときはセッションマネージャーを使うことで、AWSのマネジメントコンソールからEC2インスタンスに接続できます。SSH鍵を使う必要もないので、非常にラクできます。

ネット上で探してみると、Amazon LinuxのEC2インスタンスで同じ状況を解決している記事はヒットします。しかしWindows Server版の情報はあまり多くない印象でした。ということで、今回はセッションマネージャーを使ったEC2インスタンス接続 〜Windows Server編〜を紹介したいと思います。

セッションマネージャーとは

セッションマネージャーを使えば、AWSのマネジメントコンソール上からSSH鍵を使わずにEC2インスタンスにアクセスできます。

ブラウザ上にターミナルが表示されて、そこで任意のコマンドを実行することができます。ブラウザ上でぽちぽちしていれば接続できるので、自前のPCからSSH接続するよりも圧倒的に楽です。

後述しますが、セッションマネージャーを使ってAWSのマネジメントコンソールからEC2インスタンスにアクセスする際には、IAMロールを適切に設定する必要があります(ここ重要!)。これがないとEC2インスタンスにアクセスできませんので、これからの説明の中で改めて紹介したいと思います。

接続してみる

それでは、実際にWindows ServerのEC2インスタンスを建ててセッションマネージャーから接続してみましょう。

IAMロールの設定

一番重要です。IAMロールを正しく設定して、セッションマネージャーのアクセスを許可するロールを作成します。

まず、AWSのマネジメントコンソールからIAMにアクセスします。上部の検索ボックスから「IAM」を入力すれば出てくると思います。

IAMに移動すると、IAMのダッシュボードが出てくるかと思います。ここで一番左の「ロール」に移動します。

ここの「ロールを作成」から、実際にIAMロールを作成していきます。

今回IAMロールを付与する対象はEC2インスタンスですので、こちらのように「AWSのサービス」「EC2」を選択します。そして「次に」を選択します。

するとこちらのロール検索画面に移動しますので、AmazonSSMManagedInstanceCoreを検索して選択してください。そして「次へ」から次に進みましょう。

ここで作成したいIAMロールの名前をつけるので、わかりやすい名前をつけておきましょう。

名前をつけた後はロールを作成をクリックします。

これでIAMロールが作成されました!このIAMロールを、EC2インスタンスに付与する形になります。

Windows ServerのEC2インスタンスを作成

それでは、次にWindows ServerのEC2インスタンスを作成していきましょう。AWSのマネジメントコンソールの検索ボックスからEC2を検索し、EC2のページに移動しましょう。

EC2インスタンス作成の際に、適切な名前とOSを選択します。今回はWindows ServerのEC2インスタンスを建てるので、Microsoft Windows Server 2022 Base を選択します。

ちなみに、セッションマネージャーを使って接続する際には、EC2インスタンスにSSMエージェントがインストールされている必要があります。今回のMicrosoft Windows Server 2022 BaseのAMIには、あらかじめSSMエージェントがインストールされています。そのため特別な操作なしに、セッションマネージャーを使うことができます。

今回は検証用途ですので、インスタンスタイプはt2.microに留めておきましょう。キーペアも今回は生成しないで進めます。セキュリティグループは、今回はデフォルトのものを適用していきます。

ここです、ここが重要です。先ほど作成したIAMロールをEC2インスタンスにアタッチしていきます。

今回はwindows-decoyというIAMロールを作成したので、こちらを選択します。

残りの設定は特に必要ないため、このままEC2インスタンスを起動させます。

インスタンスに接続

インスタンス一覧画面を見てみましょう。このように、「インスタンスの状態」と「ステータスチェック」の2つのステータスにチェックが付いたら、EC2インスタンスが正常に起動できたことになります。

これができたら、画面上部の「接続」をクリックします。

接続画面はこんな感じになっています。IAMロールを適切に設定できていると、このように「接続」ボタンがアクティブになっているはずです。

 

こちらをクリックすることで、EC2インスタンスにアクセスできます!今回はWindows ServerをAMIに選択したため、シェルはPowerShellになっていますね。コマンドも正常に実行できています!

さいごに

今回は、Windows ServerをAMIとしてEC2インスタンスを建てたのち、セッションマネージャー経由でコンソールに接続しました。

やって分かったのですが、Windows ServerのEC2インスタンスであっても、やることはAmazon Linuxとほぼ同じです。Amazon LinuxもWindows Serverも、SSMエージェントはデフォルトでインストールされています。そのため、今回のプロセスの中では、IAMロールを適切に設定することが最も重要です(私はIAMロールが間違っていたため、けっこう時間を溶かしました)。

AWSにおけるIAMの重要性を再確認できました。みなさんもIAMの権限には気をつけましょう。では!

参考資料