AWS
aws-cli
Peco

pecoってAWS System Manager Session ManagerでEC2にアクセスする

SSHを使わずEC2にアクセスできることで話題になった(?)Session Manager

便利なんですが、いちいちコマンド打つのも面倒なので、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


  1. EC2のTag:Nameをpecoで一覧に出して選択

  2. 選択したTag:NameからInstance Idを取得

  3. 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}



使うとこんな感じ


  1. ./ssm-peco.shを実行

    image.png


  2. 接続先を指定してEnter

    image.png



さいごに

オンプレの踏み台使っているようなところはどういう対策をするのでしょうか。


CloudTrailで証跡取れるから要らなくなるのかな?

image.png