🔐
BitwardenのCLIを使って、動的にCredential情報を引っ張ってくる
GCPのサービスアカウントをローカルマシンで管理するのが面倒なので、credentials.jsonの内容をbitwardenのCLIから引っ張ってくる方法を試したのでメモ。
BitwardenのCLIを使えるようにしておく
- bw login
- BW_SESSIONを~/.zshrcに書く(もしくはIDEの環境変数を設定する場所に書く)
bw loginを実行するとBW_SESSIONの中身を教えてくれるので、それを書く。
(他の人に共有しちゃダメ)
export BW_SESSION="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="
※bw lock/unlockを使った場合はunlock時にBW_SESSIONの中身を教えてくれるので上記と同様に書く
jsonの中身をBitwardenのSecure Noteに登録する
こんなサービスアカウントキーがあるとする。
{
"type": "service_account",
"project_id": "project-001",
"private_key_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"private_key": "-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n",
"client_email": "hoge@project-001.iam.gserviceaccount.com",
"client_id": "000000000000000000000",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%40hoge.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}
このように、BitwardenのGUIアプリからSecure Noteとして登録。
今回保存したSecure Noteのタイトルは credentials.json
とした。
BitwardeのGUIからSecure Noteを登録したら、bw sync
コマンドを打つこと。
このコマンドを打って初めて、手元のマシンに同期されるため。
コマンドが正常に終了すると、下記のコマンドでSecure Noteの中身を取ってくることができる。
bw get --session $BW_SESSION notes credentials.json
開発プロジェクトの設定
- 実行前にcredentials.jsonが生成されるようにしておく
"scripts": {
"generate-credentials.json": "bw get --session $BW_SESSION notes credentials.json > credentials.json",
"dev": "npm run generate-credentials.json && next dev",
- .envに生成されたファイルのパスを書いておく
GOOGLE_APPLICATION_CREDENTIALS=credentials.json
- .gitignoreにcredentials.jsonを追加しておく
credentials.json
開発開始
npm run dev
Discussion