踏み台ホストなしで Systems Manager Session Manager のポート転送を使用して RDP 経由で EC2 インスタンスに接続する方法

所要時間2分
0

リモートデスクトッププロトコル (RDP) を使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに接続したいと考えています。この接続には、踏み台ホストなしで、AWS Systems Manager Session Manager のポート転送を使用したいと考えています。

解決策

ポート転送は Systems Manager Session Manager の機能です。この機能により、ローカルシステムと、プライベートサブネットにデプロイされたインスタンスとの間にトンネルを作成できます。インバウンドポートを開いたり、踏み台ホストを設定したりする必要はありません。セキュリティグループでインバウンドアクセスをブロックしたままにしておけば、この機能を使用して RDP 経由で Amazon EC2 Windows インスタンスに接続できます。

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新バージョンの AWS CLI を使用しているかどうかを確認してください

前提条件を確認

前提条件:

接続を確立

  1. ローカルコンピュータから EC2 インスタンスへのポート転送セッションを確立します。

ローカルコンピュータで次のコマンドを実行してください。

aws ssm start-session --target <instanceid> --document-name AWS-StartPortForwardingSession --parameters "localPortNumber=55678,portNumber=3389"

これにより、ローカルコンピュータのポート 55678 からリモート EC2 インスタンスのポート 3389 (RDP ポート) へのトンネルが作成されます。

また、このコマンドは、EC2 インスタンスのオペレーティングシステムがデフォルトポート 3389 で RDP 接続を受け入れるように設定されていることも前提としています。LocalPortNumberportNumber の値を当該の値に置き換えてください。

セッション接続が成功すると、次のメッセージが表示されます。

Starting session with SessionId: xxxxx-01234567891011abc
Port 55678 opened for sessionId xxxxx-01234567891011abc
Waiting for connections...
  1. トンネルを使用して RDP 経由でリモート EC2 インスタンスに接続します。手順は次のとおりです。

ローカル RDP クライアントを使用して、localhost:55678 に接続します。これにより、トラフィックが EC2 インスタンスのリモートポート 3389 に転送されます。

AWS CLI は、RDP セッションに接続した後、接続がトンネル経由で確立されたことを次のメッセージで示します。

Connection accepted for session [xxxxx-01234567891011abc]
  1. ポート転送セッションを終了します。手順は次のとおりです。

RDP セッションを閉じた後で、AWS CLI で Ctrl+C を押すことで、ポート転送セッションを終了できます。または、AWS Systems Manager コンソールを使用してセッションを終了することもできます。

上記の操作を実行すると、次のようなメッセージが表示されます。

Terminate signal received, exiting.  
Exiting session with sessionId: xxxxx-01234567891011abc.

接続をトラブルシューティング

セッションに接続できない場合は、次の原因が考えられます。

  • アクセス権限が不十分 (AccessDeniedException): セッションを開始するユーザーに、必要な Session Manager アクセス権限を持たせます。
  • インスタンスが接続されていない (TargetNotConnected): 指定されたターゲットノードが Session Manager 用に設定されていません。ターゲットノードが Session Manager 用に完全に設定されており、Systems Manager Fleet Manager コンソール[オンライン] と表示トされていることを確認します。詳細については、「Managed node not available or not configured for Session Manager」を参照してください。このエラーは、異なる AWS アカウントまたは AWS リージョンにあるマネージドノードでセッションを開始しようとした場合にも発生します。
  • Session Manager プラグインが見つからない: Session Manager プラグインがローカルマシンにインストールされていることを確認します。詳細については、「Install the Session Manager plugin for the AWS CLI」を参照してください。
  • セッションに接続することはできるが、RDP クライアントに接続できない: ターゲットインスタンスでデフォルトの RDP ポートが変更されていないかどうかを確認します。PortNumber パラメータの値を当該の値に置き換えます。詳細については、Microsoft ウェブサイトの「Check the RDP listener port」を参照してください。

詳細については、「Troubleshooting Session Manager」を参照してください。

AWS公式
AWS公式更新しました 1年前
コメントはありません