セッションマネージャーを使ってWindows serverのEC2インスタンスにアクセスする
はじめに
こんにちは、おのやんです。
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の権限には気をつけましょう。では!