参考
AWS-StartPortForwardingSessionToRemoteHost
以下のようなコマンドでRDSなどにポートフォワードできるが、コマンドを実行している端末からのみ通信を受け付ける。
aws ssm start-session \
--target <my-ec2-instance-id> \
--region <my-region> \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters '{"host":["<my-rds-host>.rds.amazonaws.com"],"portNumber":["5432"], "localPortNumber":["5432"]}'
もし、aws-cliをdockerで利用する場合は、docker内部の通信はフォーワードできるが、ホスト機の通信をフォワードすることができない。
ホスト機の通信もフォーワードしたい場合は、以下のようにする。
socatを使って他からの通信を内部からの通信に見せかける
docker run \
--rm \
-e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_SESSION_TOKEN \
-p 13000:13000 \
-ti \
--entrypoint "" \
awscli-ssm \
bash -c "socat tcp-listen:13000,reuseaddr,fork tcp:localhost:5432 & \
aws ssm start-session \
--target <my-ec2-instance-id> \
--region <my-region> \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters '{\"host\":[\"<my-rds-host>.rds.amazonaws.com\"],\"portNumber\":[\"5432\"], \"localPortNumber\":[\"5432\"]}
[カテゴリ: 仮想化]
[カテゴリ: ネットワーク]
[通知用URL]
Tweet
最終更新時間:2024年04月02日 23時16分01秒