EC2 API Toolsの認証をアクセスキー認証に変えてみた

実は少し前からEC2 API Toolsでもアクセスキーでの認証に対応してました。No More X.509鍵認証!
ということで、以前書いた記事AWS CLIツール管理法 - log4motoで紹介した鍵の管理方法を少し変更しました。
もうX.509証明書を使う必要がなくなったので、

$ find aws/keys-j3tm0t0
aws/keys-j3tm0t0
aws/keys-j3tm0t0/.s3cfg
aws/keys-j3tm0t0/credential
aws/keys-j3tm0t0/credentials.json
aws/keys-j3tm0t0/env
$ cat aws/keys-j3tm0t0/credential
AWSAccessKeyId=ACCESSKEY
AWSSecretKey=SECRETKEY
$ cat aws/keys-j3tm0t0/env
export KEY_DIR=~/aws/keys-j3tm0t0
export AWS_CREDENTIAL_FILE=$KEY_DIR/credential
. $AWS_CREDENTIAL_FILE
export AWS_ACCESS_KEY_ID=$AWSAccessKeyId
export AWS_SECRET_ACCESS_KEY=$AWSSecretKey
export AWS_ACCESS_KEY=$AWSAccessKeyId
export AWS_SECRET_KEY=$AWSSecretKey

alias s3="s3cmd -c $KEY_DIR/.s3cfg"
alias emr="elastic-mapreduce -c $KEY_DIR/credentials.json"

みたいな感じで、EC2_CERTやEC2_PRIVATE_KEYの指定をやめて、AWS_ACCESS_KEY/AWS_SECRET_KEYを指定するようにしました。

function key
{
        keydir=~/aws/keys-$1/
        source $keydir/env && echo using keys-$1
}

というbash関数で、keyの名前を指定して切り替えています。複数アカウントの切り替えをよくする人におすすめ。

最後に

参照する環境変数名くらい統一して欲しいですよな〜。統一感がなさすぎます。