快速入門

在生產環境中部署 .env.vault 檔案

使用此快速入門指南,將您加密的 .env.vault 檔案部署到生產環境(或測試環境或 CI)。

建置 .env.vault

首先,建置您專案加密的 .env.vault 檔案。它會將您的機密安全地加密到與雲端無關的有效負載中。

npx dotenv-vault build

將其安全地提交至程式碼。

git add .env.vault
git commit -am "Build encrypted .env.vault file for deploy"

取得 DOTENV_KEY

取得您的生產環境解密金鑰 DOTENV_KEY,以解密您的 .env.vault 檔案。

npx dotenv-vault keys production

這將輸出您的生產環境 DOTENV_KEY

使用該 DOTENV_KEY 在本機以生產模式執行您的應用程式,作為快速測試。

DOTENV_KEY='dotenv://:[email protected]/vault/.env.vault?environment=production' node index.js
# visit https://127.0.0.1:3000

如果您看到記錄訊息 Loading env from encrypted .env.vault,則表示它正在運作。

$ quickstart: DOTENV_KEY='dotenv://:[email protected]/vault/.env.vault?environment=production' node index.js
[[email protected]][INFO] Loading env from encrypted .env.vault
Example app listening on port 3000

DOTENV_KEY 解密 .env.vault 的生產環境內容,並將其機密即時注入到您執行的程序中。剩下的就是設定您生產伺服器上的 DOTENV_KEY 並部署您的程式碼。

設定 DOTENV_KEY

在您的伺服器上設定您的生產環境 DOTENV_KEY。例如,在 Heroku 上,您可以使用他們的 cli 來設定它。

$ heroku config:set DOTENV_KEY='dotenv://:[email protected]/vault/.env.vault?environment=production'

這是一個顯示整個過程的影片。

結論

恭喜!您現在了解 .env.vault 檔案是如何運作的。

這比將您的機密同步到可能洩漏的第三方安全得多。 CircleCI 不久前發生了機密外洩事件.env.vault 可以保護您免受此類漏洞的侵害。攻擊者必須同時取得您的 DOTENV_KEY 和您的程式碼。

此外,您現在擁有一個易於管理的單一事實來源。在 UI 中進行變更、執行建置命令,然後重新部署。減少花在處理機密上的時間,並將更多時間用於編碼。

最好的部分是該技術與平台和框架無關。我們整理了一份近 100 個指南的清單(到目前為止)。下面連結的是我們瀏覽次數最多的指南。點擊標誌並開始使用。

感謝您使用 Dotenv!


常見問題

如果未設定 DOTENV_KEY 會發生什麼事?

它會優雅地回退到從您的 .env 檔案載入。這是開發的預設值,以便您可以專注於編輯您的 .env 檔案,並在您準備好部署這些環境變數變更之前儲存 build 命令。

我應該提交我的 .env.vault 檔案嗎?

是的。這樣做是安全且建議的。它包含您加密的環境變數和保管庫識別碼。

我可以分享 DOTENV_KEY 嗎?

不可以。它是解鎖您加密的環境變數的密鑰。請非常小心您與誰分享此金鑰。不要讓它洩漏。

我應該提交我的 .env 檔案嗎?

不可以。我們強烈建議不要將您的 .env 檔案提交到版本控制。它應僅包含特定於環境的值,例如資料庫密碼或 API 金鑰。您的生產資料庫應與您的開發資料庫有不同的密碼。