あきろぐ

いろいろめもするよ

aws-cli + pecoを使ってセッションマネージャー接続を楽にする(aws-vault ver.)

aws-cliを使ってEC2インスタンスに接続するの面倒くさいので、簡単に接続できるようにMakefileを書きました。 タグで特定のenvironmentの稼働中インスタンスの名前とインスタンスIDをpecoに渡して、選択したインスタンスIDをHOSTに入れてます。

ssm-ec2:
        echo "start session manager in ec2..."
        $(eval HOST = `aws ec2 describe-instances --region ap-northeast-1 --output json --filters "Name=instance-state-code,Values=16" --filters "Name=tag:environment,Values=xxx" | jq -r '.Reservations[].Instances[] | [.Tags[] | select(.Key == "Name").Value][] + "\t" + .InstanceId'  | sort | peco | cut -f 2`)
        aws ssm start-session --target $(HOST)

aws-vaultを使うとこんな感じ。

aws-vault exec <profile> -- make ssm-ec2

おしまい。