aws configureのサブコマンドから、設定済みのアクセスキーを手軽に取得する
はじめに
サードパーティ製のライブラリを用いる際に、ACCESS_KEY_IDとSRCRET_ACCESS_KEYを所定の設定ファイルへ入力するケースは多々あると思われます。
多分手っ取り早いだろうと、必要になる度に~/.aws/credentials
を参照してコピー貼り付けの作業を行っていましたが、コピーする際に正確に範囲指定が出来ていなかったケースもありました。
awscli経由でどうにかして引っ張ってこれないものかと試行錯誤してみたところ、個人的には発見だったため備忘録的に記しておきます。
aws configureからcredentialsを引っ張る
結論から言うと、以下のコマンドにて取得可能です。
% aws configure [--profile XXXX] get aws_access_key_id % aws configure [--profile XXXX] get aws_secret_access_key % aws configure [--profile XXXX] get region % aws configure [--profile XXXX] get output
region
やoutput
が求められる頻度は少ないかもしれませんが、取得可能ということで残しておきます。
aws configure getの構成
configureコマンドのサブコマンドとなっており、aws_access_key_id
とaws_secret_access_key
についてはパラメータとなっています。パラメータは補完されないこともあり気が付きにくいというわけです。
aws configure get help
にて表示されるテキストにて以下の様に記載はされているのですが、なかなかそこまでスクロールする機会も少ない。
The following commands would have the corresponding output: $ aws configure get aws_access_key_id default_access_key $ aws configure get default.aws_access_key_id default_access_key $ aws configure get aws_access_key_id --profile testing testing_access_key $ aws configure get profile.testing.aws_access_key_id testing_access_key $ aws configure get preview.cloudsearch true
手軽な利用方法
sed
を利用することで、設定ファイル内への置換用文字列埋め込みにて、コマンド経由にて置換処置が可能です。
% sed -i -e "s/AWS_ACCESS_KEY_ID/$(aws configure --profile default get aws_access_key_id)/g" FILE % sed -i -e "s/AWS_SECRET_ACCESS_KEY/$(aws configure --profile default get aws_secret_access_key)/g" FILE
まとめ
人によっては常用的な使い方かもしれません。pipe
にてpbcopy
に繋ぐとコピペミスも減らせます。
% aws configure --profile default get aws_access_key_id | pbcopy
credentialsからアクセスキーだけピックアップしたい時等にオススメです。