⛏️
dotenvxを使用した環境変数の暗号化
dotenvx とは
dotenvx
は、従来の .env
ファイルによる環境変数管理をより安全かつ柔軟にするために開発されたツールです。
インストール方法
# npm
npm install @dotenvx/dotenvx --save-dev
# macOS
brew install dotenvx/brew/dotenvx
基本的な使い方
暗号化機能
ファイル全体の暗号化
dotenvx encrypt -f .env.local
dotenvx encrypt -f .env.production
暗号化すると .env.local
ファイル内の値が encrypted:
形式になり、同時に .env.keys
ファイルが生成されます。このファイルには復号に必要な秘密鍵が含まれており、絶対に Git 管理しないように注意が必要です。
# .env.local ファイル(暗号化後)
SECRET_KEY="encrypted:xxxxxxxxx=="
# .env.keys ファイル
DOTENV_PRIVATE_KEY="xxxxxxxxxxxx"
個別の変数を暗号化する方法
dotenvx set SECRET_KEY "base64:xxx..." -f .env.local --encrypt
dotenvx set DATABASE_PASSWORD "password" -f .env.local --encrypt
必要な変数だけ暗号化することもできます。
暗号化された値の確認
# 復号して変数の値を確認
dotenvx get DATABASE_PASSWORD -f .env.local
# 復号出力を grep で抽出
dotenvx decrypt -f .env.local --stdout | grep SECRET_KEY
メリットとデメリット
メリット
-
セキュリティの向上
環境変数を暗号化し、機密情報の漏洩リスクを低減できます。 -
チーム開発の効率化
暗号化された.env
ファイルと.env.keys
を共有することで、全員が同じ設定を簡単に利用できます。 -
言語非依存
JavaScript や PHP など特定の言語に依存しないため、多言語構成のプロジェクトでも使用可能です。
デメリット
-
導入時の学習コスト
チーム内での共有やルールの徹底が必要です。
使用上の注意点
-
.env.keys
ファイルは Git 管理しないでください。第三者に流出した場合、すべての暗号化ファイルが解読可能になります。 - 秘密鍵の共有には細心の注意が必要です。メールやチャットでの平文共有は避けましょう。
- 本番環境では定期的にキーやパスワードのローテーションを行うことを推奨します。
-
.env.keys
を紛失すると復号できなくなるため、安全な方法で必ずバックアップをとってください。
参考
Discussion