はじめに
なんとなくわかったつもりで、全くわかっていなかったRDP接続について、今回改めて調べたことをまとめてみました。
RDP接続とは
リモートデスクトッププロトコル (RDP) は、デスクトップコンピューターをリモートで使用するためのプロトコルまたは技術的な規格です。
リモートデスクトップは、別のコンピューターから遠く離れたデスクトップコンピューターに接続して使用する機能です。リモートデスクトップを使用するユーザーは、実際にデスクトップコンピューターの前に座っているかのように、デスクトップにアクセスし、ファイルを開いたり編集したり、アプリケーションを使用したりできます。従業員が、出張時や在宅勤務時に、リモートデスクトップソフトウェアを使用して職場のコンピューターにアクセスすることがよくあります。
参照:https://www.cloudflare.com/ja-jp/learning/access-management/what-is-the-remote-desktop-protocol/
RDPのイメージがつかめない人は、ラジコンを操作するところを想像してみるといいとのことで、以下の例がとても分かりやすかったので、載せておきます。
リモコンから出る電波とラジコンで受ける電波は同じじゃないと困りますよね。
ラジコンがリモコン以外の電波までガンガンに受け付けてしまったら誤作動しまくりです。
そのため、ラジコン用の電波が「どんなものか」は事前に決まっています。
リモコンは、どんなものか決まっているラジコン用の電波を出すことで、ラジコンとやり取りします。
言い換えると「ラジコンと、やり取りする際のルール」が決まっているわけです。
その「やり取りする際のルール」のリモートデスクトップ版がRDPです。
リモートデスクトップ接続するときは、RDPというルールに従って、コンピュータ同士がやり取りします
参照:https://wa3.i-3-i.info/word1679.html
RDP接続をAWSで実現するには
AWSでRDP接続をするための方法をいくか紹介します。
① RDPクライアント
おすすめ度:★☆☆☆☆
Public Subnetに配置したEC2インスタンスへのアクセスは、セキュリティグループによって、特定のIPアドレスのみに制限します。
しかし、パブリックサブネットにEC2を配置しているため、特定のIPアドレスのみに制限していたとしても、DDoSとIPスプーフィングの攻撃を受ける(特定のIPアドレスになりすまし、悪意のある攻撃を仕掛けられる)ことがあります。AWSの管理するグローバルIPアドレスは世界中で把握されており、この攻撃を受けやすいため、おすすめできません。
② ポートフォワーディングでのRDP接続
セキュリティグループの設定や、踏み台サーバの管理が必要となり、運用の手間が多くなります。
そのため、ポートフォワーディングでRDP接続をする場合は、③のSession Managerを利用したRDP接続をおすすめします。
③ Session ManagerでポートフォワーディングしてRDP接続
おすすめ度:★★★☆☆
②と比べ、踏み台サーバが不要になるため、ポート(22、3389)を開く必要がなくなります。
また、AWSコンソールかCLIベースでアクセスでき、CloudTrailやS3、CloudWatch Logsにログを残すことができます。
しかし、ポートフォワーディングには前準備が必要で、少し面倒です。
④ Fleet ManagerでRDP接続
おすすめ度:★★★★☆
Fleet Managerを利用することで、Windows上の様々な操作をWeb GUIから行うことができます。
①、②、③と比べ、EC2インスタンスのポートを開放する必要がないため、よりセキュアになります。
Fleet Managerは日本語キーボードに対応しておらず、例えばローカルのメモアプリで日本語を打ち、リモートサーバにコピペするというひと工夫が必要であったり、RDP接続での画面操作になるためロギングツールを入れないとログを取得できないなどのデメリットもあります。
おわりに
自分の勉強したことをまとめる備忘録として残しておきます。