リモートデスクトッププロトコル (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 を使用しているかどうかを確認してください。
前提条件を確認
前提条件:
接続を確立
- ローカルコンピュータから EC2 インスタンスへのポート転送セッションを確立します。
ローカルコンピュータで次のコマンドを実行してください。
aws ssm start-session --target <instanceid> --document-name AWS-StartPortForwardingSession --parameters "localPortNumber=55678,portNumber=3389"
これにより、ローカルコンピュータのポート 55678 からリモート EC2 インスタンスのポート 3389 (RDP ポート) へのトンネルが作成されます。
また、このコマンドは、EC2 インスタンスのオペレーティングシステムがデフォルトポート 3389 で RDP 接続を受け入れるように設定されていることも前提としています。LocalPortNumber と portNumber の値を当該の値に置き換えてください。
セッション接続が成功すると、次のメッセージが表示されます。
Starting session with SessionId: xxxxx-01234567891011abc
Port 55678 opened for sessionId xxxxx-01234567891011abc
Waiting for connections...
- トンネルを使用して RDP 経由でリモート EC2 インスタンスに接続します。手順は次のとおりです。
ローカル RDP クライアントを使用して、localhost:55678 に接続します。これにより、トラフィックが EC2 インスタンスのリモートポート 3389 に転送されます。
AWS CLI は、RDP セッションに接続した後、接続がトンネル経由で確立されたことを次のメッセージで示します。
Connection accepted for session [xxxxx-01234567891011abc]
- ポート転送セッションを終了します。手順は次のとおりです。
RDP セッションを閉じた後で、AWS CLI で Ctrl+C を押すことで、ポート転送セッションを終了できます。または、AWS Systems Manager コンソールを使用してセッションを終了することもできます。
上記の操作を実行すると、次のようなメッセージが表示されます。
Terminate signal received, exiting.
Exiting session with sessionId: xxxxx-01234567891011abc.
接続をトラブルシューティング
セッションに接続できない場合は、次の原因が考えられます。
詳細については、「Troubleshooting Session Manager」を参照してください。