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\"]}"
\第一線のプログラマーの行動原理を学べる!/