![[アップデート] WindowsインスタンスにAWS Systems Manager Fleet ManagerからRDP接続できるようになりました](https://devio2023-media.developers.io/wp-content/uploads/2019/05/aws-systems-manager-ssm.png)
[アップデート] WindowsインスタンスにAWS Systems Manager Fleet ManagerからRDP接続できるようになりました
この記事は公開されてから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クライアントタブを選択し、パスワードを取得をクリックします。

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

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

以上で下準備は完了です。
Fleet ManagerからRDP接続
Systems ManagerのコンソールからFleet Managerを開きます。正しくマネージドインスタンスとして登録されていたら、一覧に表示されるはずです。
対象のEC2インスタンスを選択して、Node actions - Connect with Remote Desktopをクリックします。

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

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

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

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

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

また、ブラウザでクリップボードのアクセスを許可してあげれば、RDP接続しているEC2インスタンスとクリップボードを共有することができます。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インスタンスの認証情報入力画面が表示されました。

全ての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)でした!






