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の名前を指定して切り替えています。複数アカウントの切り替えをよくする人におすすめ。
最後に
参照する環境変数名くらい統一して欲しいですよな〜。統一感がなさすぎます。