『載せてはいけない』情報となる .env
ファイル、ここにパスワードを入れざるを得ないということですが、だからといってローカルに置いておくのも不安という場合もあります。
個人的には1passwordを使って管理していますが、1password-cliを使うことで、.env
ファイルにパスワードを直接書かずに済む方法があります。若干面倒かもしれませんが、セキュリティ的に安心感があるので、一度確認してみるといいかもしれません。
※ 実験的にポッドキャスト風味の音声を用意してみました。3分ほどあなたのお耳をジャックさせていただきます。
1password-cliのインストール
1password-cliのインストールは、macOSだとHomebrewを使うのが簡単です。
|
|
1password-cliの設定
まず、1passwordの本体(GUI側)を開いて、利用可能にする準備が必要です。 設定→開発者と進めるとあります。
動作チェック
これで使えるようになります。
|
|
対象となる鍵はどれだ?
.envにツッコみたい情報が1passwordに登録されているという前提ですが、まずは登録された鍵のIDを探してみましょう。
- 1passwordのGUIを使って探しておく(名前を調べておく)
- 1password-cliでの鍵一覧を出力してそこから見つける
|
|
すると、登録されている鍵の内部IDと鍵に付けた名前達が出てくるので、そこから該当するものを探してください。
鍵のIDを見つけたら、中身が取得できるかの確認もしておきましょう。
|
|
今回は行いませんが、--reveal
オプションをつけることで、パスワードの値を表示することもできます。
ここまでわかればあと一歩です。
今回の場合、使えるフィールドは password
と username
となっています。
これを .env
ファイルに書き込むためのコマンドを作成します。
|
|
実際に使うときは、op run
コマンドに『このファイルから変数を登録して』という指示の下でコマンドを走らせます。
|
|
必要に応じ、認証画面が出るので、それを通すと実行されます。
これならうっかり.env
が流出しても、それほど大きな揉んだにはならないでしょう(しないことが重要です!)。
まとめ?
1passwordはサブスクサービスとなってしまい、少々気が引いてしまっていたのですが、OS跨いでの管理という意味ではそれだけ強力な製品です。いいものには維持のためにもお布施を。ということで私は3年一括払い版を使っています。 3年でこれなら安いと思う。
おまけ
コマンドの呼び出しが長くなってしまうので、justで動くようにこんな感じにラップしてます。
[private]
@default: help
# ヘルプの出力
@help:
echo "Usage: just <recipe>"
echo ""
just --list
# 取得処理
get:
op run --env-file .env -- uv run python g**************.py
# データ削除
clean:
rm -vf screenshot*.png
rm -vf check-*.csv
これで
|
|
になります。