
aws configureのサブコマンドから、設定済みのアクセスキーを手軽に取得する
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
サードパーティ製のライブラリを用いる際に、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からアクセスキーだけピックアップしたい時等にオススメです。






