開發者如何使用1Password CLI進行安全金鑰管理

開發者如何使用1Password CLI進行安全金鑰管理

作為開發者,我們經常處理敏感資料,例如 API 金鑰、SSH 憑證、資料庫密碼和其他機密資訊。如何在確保這些資料安全的同時,確保它們能夠在不同專案之間輕鬆訪問,並非易事。

1Password 的 CLI 正是為此而生。

1Password 的 CLI

1Password CLI 是一個命令列工具,它允許您在不離開終端的情況下安全地訪問和管理您的 1Password 保管庫。您無需手動複製貼上機密資訊(這既繁瑣又危險),而是可以透過程式設計方式獲取憑證,自動化身份驗證工作流程,並將機密資訊管理整合到您的開發流程中。

在本文中,我們將探討如何安裝、配置和使用 1Password CLI,以簡化您的工作流程,同時確保憑證資訊的安全。

入門指南

如果您使用的是 macOS 或 Linux,安裝 1Password CLI 最簡單的方法是使用 Homebrew

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
brew install 1password-cli
brew install 1password-cli
 brew install 1password-cli

如果您使用的是 Windows,我建議您參考官方 1Password CLI 文件中的安裝說明。

對於 Windows 和 Linux 使用者,請按照官方 1Password CLI 安裝指南進行操作,以獲得適合您系統的正確設定。

安裝完成後,在 1Password 應用中,前往 Settings… > Developer,然後勾選 Integrate with 1Password CLI

Integrate with 1Password CLI

然後,使用以下命令透過終端登入,並選擇您要登入的 1Password 帳戶:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
op signin
op signin
op signin

現在,您可以安全地訪問和管理金鑰,而無需以純文字形式公開它們。

命令列金鑰管理

執行需要身份驗證的命令時,手動複製和貼上憑據既繁瑣又不安全。使用 1Password CLI,您可以使用 op read 命令和 Secret References 動態檢索 Secret。

要獲取 Secret Reference,您可以點選您想要在 1Password 中引用的專案值的下拉箭頭。

命令列金鑰管理

然後將其傳遞給需要 Secret 的命令。例如,要使用 DigitalOcean API 令牌透過 doctl 進行身份驗證,您可以執行:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
doctl auth init --access-token $(op read op://Internet/d439ada/token)
doctl auth init --access-token $(op read op://Internet/d439ada/token)
doctl auth init --access-token $(op read op://Internet/d439ada/token)

環境變數整合

另一種使用 1Password CLI 的方式是將 Secret 設定為環境變數。這在處理多個 Secret 或需要將它們傳遞給指令碼或程式時非常有用。

如果您使用 Chromatic 測試 UI 元件,可以使用 op read 命令將 CHROMATIC_PROJECT_TOKEN 設定為環境變數:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#!/bin/bash
export NPM_TOKEN=$(op read op://Internet/d439ada/npm_token)
export CHROMATIC_PROJECT_TOKEN=$(op read op://Internet/d439ada/chromatic_token)
// Install the dependencies, including the private ones that require NPM_TOKEN.
npm install
// Chormatic will automatically use the CHROMATIC_PROJECT_TOKEN.
// @see https://www.chromatic.com/docs/cli/#continuous-integration
npx chromatic
#!/bin/bash export NPM_TOKEN=$(op read op://Internet/d439ada/npm_token) export CHROMATIC_PROJECT_TOKEN=$(op read op://Internet/d439ada/chromatic_token) // Install the dependencies, including the private ones that require NPM_TOKEN. npm install // Chormatic will automatically use the CHROMATIC_PROJECT_TOKEN. // @see https://www.chromatic.com/docs/cli/#continuous-integration npx chromatic
#!/bin/bash
export NPM_TOKEN=$(op read op://Internet/d439ada/npm_token)
export CHROMATIC_PROJECT_TOKEN=$(op read op://Internet/d439ada/chromatic_token)

// Install the dependencies, including the private ones that require NPM_TOKEN.
npm install

// Chormatic will automatically use the CHROMATIC_PROJECT_TOKEN.
// @see https://www.chromatic.com/docs/cli/#continuous-integration
npx chromatic

然後,您可以使用 op run 命令執行指令碼,如下所示:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
op run -- bash chormatic.sh
op run -- bash chormatic.sh
op run -- bash chormatic.sh

Shell外掛擴充套件

為了更加無縫地使用,您可以使用 Shell 外掛將 1Password 與流行的第三方應用整合,例如 Github CLI、 Docker、 DigitalOcean CLI、 AWS、 HuggingFace、 OpenAI 等等。

在本例中,我們將嘗試將其與 Github CLI 整合。為此,我們可以執行:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
op plugin init gh
op plugin init gh
 op plugin init gh

系統將提示您將 GitHub 憑據匯入 1Password,或選擇儲存憑據的現有 1Password 項。在本例中,由於我們已經將 GitHub 憑據儲存在 1Password 中,因此我們可以選擇現有項。

將 GitHub 憑據匯入 1Password

然後,它會詢問您所選憑據的使用範圍。在本例中,我們選擇全域性使用,以便可以在不同的儲存庫中使用它。

所選憑據的使用範圍

如果這是您第一次安裝 Shell 外掛,則需要將 source 命令新增到 RC 檔案或 Shell 配置檔案中,以便在當前終端會話結束後繼續保留該外掛。例如:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
echo "source /Users/jondoe/.config/op/plugins.sh" >> ~/.zshrc && source ~/.zshrc
echo "source /Users/jondoe/.config/op/plugins.sh" >> ~/.zshrc && source ~/.zshrc
echo "source /Users/jondoe/.config/op/plugins.sh" >> ~/.zshrc && source ~/.zshrc

設定完畢!現在,您可以使用 gh 命令與 GitHub 互動,而無需以純文字形式暴露您的憑據。要測試,您可以執行 gh auth status

使用 gh 命令與 GitHub 互動

小結

1Password CLI 是一款功能強大的工具,可讓您從終端安全地訪問和管理您的金鑰。只需進行少量設定,即可簡化工作流程,並將金鑰管理整合到與其他應用的開發流程中,而無需以純文字形式暴露您的憑據。如果您還沒有嘗試過,我建議您嘗試一下,讓您的開發工作流程更加安全高效。

評論留言