ITエンジニアの成長ブログ

ITエンジニアとして行う勉強の発信&日々の生活で体験した楽しいことをゆるく発信

AWSのセッションマネージャーを使って、EC2のWindows Serverにアクセスしてみる

今更ながら、AWSのSystem Managerのセッションマネージャーと呼ばれる機能を知りましたので、今回はとりあえず触ってみるくらいの気持ちで記事を書いてみます。

今回やりたいことにドンピシャな、以下のブログ記事を参考にしています。
セッションマネージャーを使ってWindows serverのEC2インスタンスにアクセスする | DevelopersIO

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

簡単に言えばAWSマネジメントコンソールから、構築したEC2インスタンスにアクセスするためのサービスです。

別にAWSマネジメントコンソールからアクセスしなくても、SSHリモートデスクトップ接続でログインできるからこんな機能いらないのではないか、と思いますが実はこのセッションマネージャーを使えばSSHリモートデスクトップ接続用のポートの穴あけ作業も不要でEC2に簡単に、しかも安全にアクセスできるサービスみたいです。

詳細の説明等は、公式サイトや他の有志のブログ記事にお任せします。

IAMロールを作成する

AWSマネジメントコンソールから、セッションマネージャーを使用してEC2にアクセスするためには、適切なIAMロールをアクセスするEC2インスタンスに設定する必要があるようです。

まずは、IAMにアクセスして左のペインから「アクセス管理」-「ロール」を選択して、「ロールを作成」ボタンをクリックします。

IAMロールの作成画面1

信頼されたエンティティタイプは、「AWSのサービス」を選択して、ユースケースは「EC2」を選択します。

IAMロールの作成画面2

EC2はさらに複数のサービス毎のユースケースを選択できるようですが、デフォルトのまま「次へ」を押下します。

IAMロールの作成画面3

ロールに付与する許可ポリシーを指定する画面が開きますので、AmazonSSMManagedInstanceCoreを検索して選択して、「次へ」を押下します。

IAMロールの作成画面4

次にロールの名前を入力する画面が開きますので、任意の値を入力し画面下の「ロールの作成」ボタンを押下します。

IAMロールの作成画面5

これで必要なIAMロールの作成が完了します。次は、このIAMロールをEC2に付与します。

IAMロールをEC2に付与する

上記までで、IAMロールを作成しましたので今度はそのIAMロールをEC2に付与します。

今回は、既にEC2インスタンスは作成済みの状態で進めたいと思います。また、セッションマネージャーを使って接続するためには、もう一つ必要な準備として、EC2インスタンスにSSMエージェントをインストールしておく必要があります。今回は既にインストール済の状態として進めたいと思います。

EC2の画面に遷移して、対象のEC2インスタンスを選択してから「アクション」-「セキュリティ」-「IAMロールを変更」を押下します。

EC2にIAMロールを付与する1

IAMロール変更画面に遷移するので、先ほど作成したIAMロールを選択してから「IAMロールの変更」を押下します。

EC2にIAMロールを付与する2

これで準備が整いました。次は、実際にセッションマネージャーを使ってEC2インスタンスにアクセスしてみます。

EC2インスタンスにセッションマネージャーでアクセスする

それでは、今までの手順でようやく準備が整いましたので実際にセッションマネージャーを使って、EC2にアクセスしてみましょう。

対象のEC2インスタンスを選択してから、「接続」を押下します。

EC2にセッションマネージャーでアクセスする1

するとこんな画面が開きます。むむむ、参考のURLの手順通りやっているのですが何やら接続ができないようです。

EC2にセッションマネージャーでアクセスする2

少々調べてみたら、「起動中のEC2にIAMロールを割り当てた場合はEC2インスタンスの再起動が必要」という記載をどこかの記事で見かけたので再起動してからもう一度アクセスしてみました。

すると、今回は以下のように先ほどの警告メッセージが表示されませんでした。同じような方がおりましたら、再起動をして少々時間をおいてから試すとうまくいくかもしれません。

それでは、気を取り直して「接続」を押下してみましょう。

EC2にセッションマネージャーでアクセスする3

「接続」ボタンを押下したら、別タブが開き以下のようなコンソール画面が表示されました。成功です!今回は接続先のEC2は、Windows ServerであるためPowerShellが自動的に起動して接続する形になりました。

セッションマネージャーでEC2に接続した様子

おわりに

いかがでしょうか。AWSのセッションマネージャーで、実際にEC2のWindows Serverへ接続することができました。

Windows Serverの場合は、普段はリモートデスクトップ接続で作業するのですがこのような選択肢があることを知っておくことは大事かなと思いました。

今回はこの辺で失礼いたします。最後までお読みいただきありがとうございました。