LoginSignup
10
18

More than 5 years have passed since last update.

envchainでAWSのアクセストークン等を安全に管理する

Posted at

envchainはAWSのアクセスキーのような機密情報を含む環境変数をmacOSのKeychainに保存し、コマンドを実行するときにそれを復号してくれるCLIツールだ。機密の環境変数を.bashrcなどに書いてしまうより、安全に管理することができる。

取説

❯ envchain
envchain version 1.0.1

Usage:
  Add variables
    envchain (--set|-s) [--[no-]require-passphrase|-p|-P] [--noecho|-n] NAMESPACE ENV [ENV ..]
  Execute with variables
    envchain NAMESPACE CMD [ARG ...]

Options:
  --set (-s):
    Add keychain item of environment variable +ENV+ for namespace +NAMESPACE+.

  --noecho (-n):
    Enable noecho mode when prompting values. Requires stdin to be a terminal.

  --require-passphrase (-p), --no-require-passphrase (-P):
    Replace the item's ACL list to require passphrase (or not).
    Leave as is when both options are omitted.

AWSのアクセスキー等をKeychainに登録する

envchain --set ネームスペース 環境変数名の形式でコマンドを呼び出すと、環境変数をKeychainに登録することができる。ネームスペースは好みで決める。フォルダ名のようなものだ。環境変数は複数指定することもできる。例えば、AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYを登録するには次のようにする:

❯ envchain --set aws AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
aws.AWS_ACCESS_KEY_ID: (アクセスキーを入力)
aws.AWS_SECRET_ACCESS_KEY: (シークレットアクセスキーを入力)

コマンドを実行すると、変数の値を聞かれるので値を入力していく。

登録した環境変数を確認する

登録した環境変数を確認するには次のようなコマンドを実行する:envchain ネームスペース env

❯ envchain aws env | grep AWS
AWS_ACCESS_KEY_ID=*******************
AWS_SECRET_ACCESS_KEY=*********************************

この状態でKeychain Accessを開いて"envchain"を検索すると、2つの変数が登録されているのが確認できる。

環境変数を復号した状態でコマンドを実行する

envchainenvchain ネームスペース 実行したいコマンドの順で引数を渡すと、環境変数を復号した状態でコマンドを実行してくれる。例えば、aws iam get-userを実行させるときは次のようになる:

❯ envchain aws aws iam get-user
{
    "User": {
        "Path": "/",
        "UserName": "suin",
        "UserId": "*************",
        "Arn": "arn:aws:iam::************:user/suin",
        "CreateDate": "2014-01-29T08:12:23Z",
        "PasswordLastUsed": "2017-01-16T00:41:34Z"
    }
}

この例のaws awsは誤植ではない。左はネームスペース、右はawscliだ。

10
18
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
10
18