SSHを使わずEC2にアクセスできることで話題になった(?)Session Manager
- AWS Systems Manager Session Manager のご紹介
- SSH不要時代がくるか!?AWS Systems Manager セッションマネージャーがリリースされました!
- AWS Systems Manager Session Manager for Shell AccessでMacからLinux EC2インスタンスに端末でアクセスする
便利なんですが、いちいちコマンド打つのも面倒なので、pecoってみました。
即席なのでアドバイス頂けると歓喜します。
それでは行ってみましょう。
必要なもの
- peco
- aws-cli v1.16.12
- aws ssm agent v2.3.50.0
こちらを参考にaws-cli, ssm agentをインストール/アップデートするといいと思います。
AWS Systems Manager Session Manager for Shell AccessでMacからLinux EC2インスタンスに端末でアクセスする
本題のssm-peco
- EC2のTag:Nameをpecoで一覧に出して選択
- 選択したTag:NameからInstance Idを取得
- ssm start-session
ssm-peco.sh
# !/bin/bash
# Tags.Name取得
export NAME_SSM2EC2=$(aws ec2 describe-instances \
--query "Reservations[].Instances[].Tags[?contains(Key, \`Name\`)].Value[]" | \
sed -e 's/[]" ,\[]//g' | \
sed -e "/^$/d" | peco)
# instance-id取得
export ID_SSM2EC2=$(aws ec2 describe-instances --query "Reservations[].Instances[?contains(Tags[].Value, \`${NAME_SSM2EC2}\`)].InstanceId[]" | sed -e 's/[]" ,\[]//g' | sed -e '/^$/d')
aws ssm start-session --target ${ID_SSM2EC2}
使うとこんな感じ
さいごに
オンプレの踏み台使っているようなところはどういう対策をするのでしょうか。
CloudTrailで証跡取れるから要らなくなるのかな?