参考
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秒