この記事
macOSをMojaveからCatalinaに変えたのですが
SequelProのmysql接続が同じ設定なのに失敗しました
ちょっとハマったので備忘として残します
AWS Session Manager
Session Managerとは、ざっくりいうとAWSのIAM認証でインスタンスにログインできるようにする仕組みです
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/what-is-systems-manager.html
NetworkACLやSecurityGroupなどの設定をせずともインスタンスに直接ログインできて便利です
在宅勤務などでIPアドレスを固定できないような場合でもセキュリティが担保できます
Session Managerで踏み台サーバにログインして、そこからDBにアクセスします
SequelPro
MySQLクライアントとして利用します
SequelACEという後継ソフトが出ていますが、そちらではこの方法で接続ができませんでした
(セキュリティを高めるため?にサンドボックスという仕組みを使っていて、それが仇になっていそうです)
その他TablePlusなども試しましたが駄目で、この方法で接続できるのは確認できる範囲ではSequelProだけでした
前提
awscli@2とSessionManagerを公式のやり方で入れました
デフォルトシェルはfishです(bashでも同じ結果になりました)
方法
.ssh/config
に接続設定を書き、そのホスト名をSequelProで指定します
このとき、export PATH=$PATH:/usr/local/bin
が必要です。(Mojaveではなくても動きました)
Session Managerにパスが通ってないらしく、その場所をパスに加えます
Host YOUR_AWESOME_HOST
HostName i-0xxxxxxxxxxxxxxx
Port 22
IdentityFile ~/.ssh/YOUR_AWESOME_KEY.pem
User ec2-user
ProxyCommand sh -c "export PATH=$PATH:/usr/local/bin && /usr/local/bin/aws --region us-west-2 ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p' --profile YOUR_AWESOME_PROFILE"