ちょっと話題の記事

[アップデート] WindowsインスタンスにAWS Systems Manager Fleet ManagerからRDP接続できるようになりました

WindowsインスタンスにマネージメントコンソールからRDP接続できるようになりました。わざわざSSM Session Managerでポートフォワーディングしなくても、お手軽にRDP接続できるようになった神アップデートです。
2021.11.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

マネージメントコンソールからWindowsインスタンスにRDP接続できるようになりました!!

こんにちは、のんピ(@non____97)です。

皆さんはマネージメントコンソールからRDP接続したいなぁと思ったことはありますか? 私はあります。

前職ではvSphereおじさんだったので、初めてAWSを触った時は、「vSphere Web ClientのWebコンソールみたいにVMのデスクトップにアクセスできないのかぁ」と思ったことがあります。

今回のアップデートで、待望のマネージメントコンソールからWindowsインスタンスへのRDP接続ができるようになりました!

いきなりまとめ

  • マネージドインスタンスとして登録されているWindowsインスタンスにマネージメントコンソールからRDP接続できる
  • RDP接続をする際はSession Managerからではなく、Fleet Managerから行う
  • 最大4つのEC2インスタンスを同時にRDP接続できる
  • RDP接続をする際の認証タイプは、ユーザー認証情報もしくは、キーペアを選択できる
  • ブラウザでクリップボードへのアクセスを許可してあげれば、ローカルマシンとRDP接続しているEC2インスタンスとクリップボードを共有することができる
  • セッションを終了してもログアウト(サインアウト)されない
  • 内部的にはSession Managerのポートフォワーディングが使用されている

やってみた

下準備

接続は簡単です。

まずは下準備として、接続したいEC2インスタンスがマネージドインスタンスとして登録されるように設定します。

参考:

今回、EC2インスタンスにアタッチしているIAMロールにはAmazonSSMManagedInstanceCoreのIAMポリシーのみアタッチしています。

次にWindows ServerのAdministratorユーザーのパスワードを取得します。

EC2のコンソールから対象のEC2インスタンスを選択し、インスタンスに接続をクリックします。

RDPクライアントタブを選択し、パスワードを取得をクリックします。

Windows Serverのパスワードの取得

インスタンスに関連付けたキーペアを参照して、パスワードを復号します。

Windows Serverのパスワードの復号

表示されたパスワードを控えておきます。

Windows Serverのパスワードの確認

以上で下準備は完了です。

Fleet ManagerからRDP接続

Systems ManagerのコンソールからFleet Managerを開きます。正しくマネージドインスタンスとして登録されていたら、一覧に表示されるはずです。

対象のEC2インスタンスを選択して、Node actions - Connect with Remote Desktopをクリックします。

Fleet ManagerからRDP接続

すると、認証情報を入力する画面が表示されます。

ユーザー認証情報

認証タイプとしてユーザー認証情報キーペアの2つがありますが、今回はパスワードを下準備で復号していたのでユーザー認証情報を選択します。

ユーザーネームとパスワードを入力して、Connectをクリックします。

 EC2インスタンスへの接続

RDP接続できました!! 最大4個のインスタンスに接続できる関係で、すべてのセッションタブを選択していると、ウィンドウがこじんまりと表示されます。

Fleet Manager - リモートデスクトップ すべてのセッション

ウィンドウを大きく表示したい場合は、対象のEC2インスタンスIDのタブを選択します。

Fleet Manager - リモートデスクトップ 特定のインスタンス

ブラウジングも正常に行えました。

また、ブラウザでクリップボードのアクセスを許可してあげれば、RDP接続しているEC2インスタンスとクリップボードを共有することができます。Chromeの場合は、以下のように許可を行いました。

Chromeクリップボード設定

ローカルマシンで表示している手順書内のコマンドをコピーして、接続先のEC2インスタンスのコマンドプロンプトにペーストして実行」といった操作も問題なくできそうです。

セッションの終了

セッションを終了したい場合は、右上のセッションの終了をクリックします。

セッションの終了

セッションを終了してよろしいですか ? セッションを終了してもインスタンスからログアウトされません。インスタンスに再接続するには、再認証する必要があります。と表示されるので、セッションの終了をクリックします。

セッション終了確認

セッションを終了すると、以下のように、アクティブなセッションがありませんと表示されます。

アクティブなセッションがありません

セッション終了後、Session Managerからセッション履歴を確認すると、作業していた時間帯にAWS-StartPortForwardingSessionというドキュメントを使ったセッションがあったことが確認できます。どうやら内部的にはSession Managerのポートフォワーディングを使用しているようですね。

セッション履歴の確認

複数のEC2インスタンスへのRDP接続

最後に複数のEC2インスタンスにRDP接続をする場合、どのような挙動になるのか確認してみます。

同じ設定のWindows Serverを追加で2台作成しました。Fleet Managerで全てのEC2インスタンスを選択して、Node actions - Connect with Remote Desktopをクリックします。

複数のEC2インスタンスへのRDP接続

各EC2インスタンスの認証情報入力画面が表示されました。

すべてのセッションの認証画面

全てのEC2インスタンスは同じキーペアを使用しているので、今回は認証タイプキーペアを選択して、接続をしてみます。ローカルにあるキーペアファイルを参照して、Connectをクリックします。

認証タイプ キーペア

全てのEC2インスタンスで認証を行うと以下のように表示されました。i-0c9135ad85d5247aeのEC2インスタンスは先の検証でセッションの終了をしたEC2インスタンスなので、セッション終了時に表示したウィンドウがそのまま残っています。

すべてのセッション

複数のEC2インスタンスを同時に操作したいといった場合でも、対応できそうですね。

どこのリージョンで使用できるの?

AWS Systems Managerが提供されているすべてのAWSリージョン(中国リージョンおよびGovCloud [US]を除く)で利用できます。

これぞ神アップデート

WindowsインスタンスにAWS Systems Manager Fleet Managerから簡単にRDP接続できるようになりました。

今までもSSM Session ManagerでポートフォワーディングをすることでセキュアにRDP接続できました。しかし、ローカルマシンにAWS CLIのセットアップをしたり、アクセスキーを発行したりと一手間必要でした。

今回のアップデートでは、更にお手軽にRDP接続できるようになったのは、まさに神アップデートです。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!