図解で、もう踏み台要らずAWS SSM経由Windowsサーバーにリモートデスクトップ接続

AWSなら、踏み台サーバー無しでWindowsサーバにRDP接続できるようになった。便利だけど、設定方法をすぐ忘れちゃうのでメモ。

今まで:

Linux 踏み台サーバーを経由して、AWS Windowsサーバーにリモートデスクトップ接続していた(RDP over SSH)。

  • メリット:使い慣れている。SSH鍵を所有する人だけがOSにログインできた。
  • デメリット:会社のHTTP/HTTPSプロキシ経由では、RDPがブロックされて接続できない。

これから:

AWS Systems Manager (SSM)のセッションマネージャー経由でEC2 Windowsサーバーにリモートデスクトップ接続したい。

  • メリット:会社のHTTP/HTTPSプロキシ経由でも、クラウドのサーバーOSにSSHクライアントやRD接続でログインできるかも。
  • デメリット:AzureやIBM Cloudなどの他クラウドと異なるアクセス方法を運用することになる。

システム構成図

PCの[AWS CLI]とAWS管理ポータルの[SSM]を経由して、PCからWindowsサーバーにRD接続する。

image.png

(1) AWSコンソールでSSMを準備する

AWS管理コンソールのSystems Manager を有効にしたら、セッションマネージャーでRD接続するVMを選択する。クイックセットアップでまとめて設定できる。これ、設定してから[保留中][成功]になるまで数十分かかるので、別の作業をしてから戻った方がいいみたいです。

image.png

対象のVM(EC2)に、IAMロール(AmazonSSMRoleForInstancesQuickSetup)を割り当てする
image.png

(2) EC2にSSMエージェントをインストールする

EC2をデプロイすると、AWSデフォルトでSSMエージェントがインストール済み。

  • 対象:Windows Server 2016, 2019のAMIから作成した場合。
  • 条件:System Manager エージェントのバージョン 2.3.672.0以上
  •    Session Manager プラグインのバージョン 1.1.26.0以上

(3) 保守PC側の準備(AWS CLIをインストール)

AWS CLIをインストールして、"aws configure"を実行して以下のユーザ情報をPCに登録しておく
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html
image.png

PS C:\> aws configure
AWS Access Key ID [None]: xxxxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: JSON

(4) 保守PC側の準備(SSM用のプラグインを追加する)

インストーラーをダウンロードして実行
https://s3.amazonaws.com/session-manager-downloads/plugin/latest/windows/SessionManagerPluginSetup.exe

実行した時、ディレクトリの指定ができないので、自分でAWSコマンドと同じフォルダに複写するか、PATHを指定すること。

(5) 保守PC側でポートフォワードを実行する

PowerShellでコマンドを実行する。--targetのi-xxxxは対象のインスタンスIDを書く。"\"は¥マークに置き換えてください。

PS C:\> aws ssm start-session --target i-0exxxxxxx4f --document-name AWS-StartPortForwardingSession --parameters '{\"portNumber\":[\"3389\"], \"localPortNumber\":[\"13389\"]}'

Starting session with SessionId: username-xxxxxxxxx
Port 13389 opened for sessionId username-xxxxxxxxx.
Connection accepted for session username-xxxxxxxxx.

(6) 保守PC側でリモートデスクトップ接続を実行

リモートデスクトップの接続先は自分PCのポート「localhost:13389」を指定する。OSログインのIDとパスワードは、AWS管理ポータルで取得するやつ。Windows標準の"リモートデスクトップ接続"そのものなので、[Ctrl+C][Ctrl+V]も実行可能(PCからサーバーに、クリップボード経由でファイルをアップロードできた)。
image.png

その他

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away