トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

AWS-StartPortForwardingSessionToRemoteHostをdockerで使う

参考

https://stackoverflow.com/questions/76007040/how-can-i-make-ports-forwarded-via-aws-ssm-available-to-connections-not-originat

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]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2024年04月02日 23時16分01秒