aws ssmコマンドでポートフォワード
AWS CLIのサブコマンドaws ssm start-sessionではログインだけでなくポートフォワードもできる。
セッションマネージャーをセッションマネージャーでポートフォワードができるので、SSHのポートを公開する必要が無くなる。
セッションマネージャーでポートフォワードするには--document-nameにAWS-StartPortForwardingSessionToRemoteHostを指定して以下のように実行する。
$ aws ssm start-session \
--target インスタンスID \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters "{\"portNumber\":[\"リモートポート番号\"], \"localPortNumber\":[\"ローカルポート番号\"]}"
プロファイルやリージョンなどは--profileオプションや--regionオプションなどで適宜追加して指定する。
–parameterに指定できる値
--parameterに指定できる値は以下の通り。
| パラメータ名 | 説明 |
|---|---|
| host | リモートホスト名 |
| portNumber | リモートポート番号 |
| localPortNumber | ローカルポート番号 |
実行例
EC2を介してRDSの5432番ポートに接続するには以下のように実行する。
($rds_hostはRDSインスタンスのエンドポイント名)
$ aws ssm start-session --target "$instanceid" \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters "{\"host\":[\"$rds_host\"],\"portNumber\":[\"5432\"], \"localPortNumber\":[\"15432\"]}"
\第一線のプログラマーの行動原理を学べる!/
