LoginSignup
6
4

More than 5 years have passed since last update.

AWSの名前付きプロファイル非対応ツール用にdirenvで自動でアクセスキーをロードする

Last updated at Posted at 2018-08-25

はじめに

AWS関連ツールでは名前付きプロファイルによって認証情報を切り替えることができます。

しかし、ときどきこのプロファイルに対応していないツールがあり、その場合は個別にアクセスキーIDとシークレットアクセスキーを渡す必要があります。

その都度キーを設定するのはイマイチなので、direnvでプロファイル名を指定するとAWS CLIの設定から情報を取り出して環境変数に設定してくれる設定を用意しました。

direnvの設定

設定は~/.config/direnv/direnvrcに行います。

~/.config/direnv/direnvrc
use_aws_profile() {
  profile_name=$1

  export AWS_DEFAULT_PROFILE=$profile_name
  export AWS_PROFILE=$profile_name

  export AWS_ACCESS_KEY_ID=$(aws configure --profile $profile_name get aws_access_key_id)
  export AWS_SECRET_ACCESS_KEY=$(aws configure --profile $profile_name get aws_secret_access_key)
  export AWS_DEFAULT_REGION=$(aws configure --profile $profile_name get region)
  export AWS_REGION=${AWS_DEFAULT_REGION}
}

AWS CLIのconfigureサブコマンドを利用して値を取り出しています。

使い方

この設定を行ったあと、必要な場所でdirenv editで次のように設定すると自動でロードされるようになります。

.envrc
use aws_profile <プロファイル名>

use_aws_profileではなく、use aws_profileになっているのは、direnvではuse_プレフィックスの付いた関数はこのようにuse <関数名のプレフィックス以降>で呼び出すことができるためです。

これで毎回キーを指定する手間が省けるだけでなく、キーを再生成することになってもプロファイル側に設定したキーを変更するだけで済みます。

6
4
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
6
4