SSM Session ManagerのSSHをWindowsで使う方法

SSM Session Managerで待望のSSHが使える様になりましたね! めでたい!

しかし、公式マニュアルにはどうやらLinuxやMacでの設定方法しか書いてないので、Windowsでも簡単に使う方法を検証しました。

料金も無料だし、アクセス先制限もできるしもう使うしか無いですね!!


前提条件


  • windows 10

  • EC2インスタンスはSSMが使える様エージェント、ロール設定済み


インストール

たったの3ステップ!

1. AWS CLIインストール

公式にあるとおりインストーラーをダウンロードしてきてインストールする。


https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe


2. Session Manager Pluginインストール

公式にあるとおりインストーラーをダウンロードしてきてインストールする。


https://s3.amazonaws.com/session-manager-downloads/plugin/latest/windows /SessionManagerPluginSetup.exe


3. SSHの設定を追加する。

Windowsの場合、C:\Users\【UserName】\.ssh\configに以下を追加、もしくは追記する。


config

    # SSH over Session Manager

host i-* mi-*
ProxyCommand C:\Program Files\Amazon\AWSCLI\bin\aws.exe ssm start-session 【--profile あれば】 --target %h --document-name AWS-StartSSHSession --parameters "portNumber=%p"

オリジナルとの違いはsh -cが無くなってawsがフルパス、portNumberのシングルクォーテーションからダブルクォーテーションへ変更


AWS CLIでプロファイル使っているときはここで入れておく

完了!


参考文献


補足

接続に使う秘密鍵は接続先対象EC2に設定しているそのもの

呼び方はSession Manager for SSHとかでよいのだろうか?


端末とAWS間の通信方法

StreamUrlとして以下がAWS CLIのコマンド応答として返却されているためWebSocket(wss)でつながっている。

wss://ssmmessages.ap-northeast-1.amazonaws.com/v1/data-channel/【IAMユーザー名を含むランダム列】?role=publish_subscribe


AWS CLIをその他の場所にインストールしていた場合にAWSコマンドの場所を調べる

where aws