LoginSignup
1
2

More than 5 years have passed since last update.

AWS アクセスキー IDとシークレットアクセスキー の情報をcredencialsファイルから取得するコマンド

Posted at

aws-cliを使ったshell scriptを書いていて、ふと「credencialsから情報を取ればスクリプトの中にACCESS_KEYとかACCESS_SECRET_KEYを書かなくて良いな」と気付いたので、取れるようにしました。

以下、デフォルトの情報を取得するためのサンプルです。
なお、別ユーザの情報を取得したい場合は、sed の引数の -n *p* に +3 していくと取得できます。

sample
$ CRED_FILE = /home/user/.aws/credentials
$ ACCESS_KEY=`/bin/cat $CRED_FILE | sed -n 2p | cut -d'=' -f2 | tr -d ' '`
$ ACCESS_SECRET_KEY=`/bin/cat $CRED_FILE | sed -n 3p | cut -d'=' -f2 | tr -d ' '`
$ echo $ACCESS_KEY
XXXXXXXXXXXXXXXXXXXX
$ echo $ACCESS_SECRET_KEY
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ちなみにクレデンシャルファイルは.awsに配置されたままのフォーマットになっています。

$ cat /home/user/.aws/credentials
[default]
aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[user]
aws_access_key_id = ********************
aws_secret_access_key = ****************************************

後、awsからダウンロードしてきたcsvファイルから取得したい時は以下で可能です。

sample2
$ CRED_FILE = /home/user/.aws/credentials.csv
$ ACCESS_KEY=`/bin/cat $CRED_FILE | tail -1 | cut -d',' -f1`
$ ACCESS_SECRET_KEY=`/bin/cat $CRED_FILE | tail -1 | cut -d',' -f2`
$ echo $ACCESS_KEY
XXXXXXXXXXXXXXXXXXXX
$ echo $ACCESS_SECRET_KEY
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ちなみにcsvファイルのフォーマットは、awsからダウンロードしたままのフォーマットになっています。

$ cat /home/user/.aws/credentials.csv
Access key ID,Secret Access Key
XXXXXXXXXXXXXXXXXXXX,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

以下のようなフォーマットの場合は cat の引数の -d',' -f** に +1 していくと取得できます。

$ cat /home/user/.aws/credentials.csv
User Name,Access key ID,Secret Access Key
"user",XXXXXXXXXXXXXXXXXXXX,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

「うまく動かない」、「もっとシンプルでスマートなやり方がある」などのご意見があれば、ぜひともいただきたいです。

ではこちらのコマンドが少しでも皆さんのお役に立ちますように。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2