設定 Vault CLI

如果您已經在使用 HashiCorp Vault 指令行介面 (CLI),您可以使用其 CLI 格式和指引來與 IBM Cloud® Secrets Manager 互動。

所有作業都遵循 Vault CLI 可用的準則。 若要進一步瞭解如何使用 Vault CLI,請參閱 Vault 文件

必要條件

  • 下載並安裝 Vault CLI

  • 建立 IBM Cloud API 金鑰 或產生 IBM Cloud IAM 存取記號。

    透過提供帳戶認證,Vault 可以瞭解您的身分,以及您是否具有對 Secrets Manager 實例執行特定 Vault 指令的正確存取層次。

  • 可選:下載並安裝 jq

    jq 可協助您截塊 JSON 資料。 您可以在本指導教學中使用 jq,以抓取並使用您呼叫 IAM Identity Service API 時所傳回的存取記號。

設定環境

首先,設定環境以使用 Vault 來存取 Secrets Manager 服務實例。 首先建立 Shell Script,以設定向 Vault 鑑別所需的認證。

  1. 在專案目錄中,建立 login-vault.sh 檔。

    touch login-vault.sh
    
  2. 複製下列 Script 並貼到 login-vault.sh,然後更新位置保留元值。

    #!/bin/sh
    
    IBM_CLOUD_API_KEY="xxxxx"
    
    export VAULT_ADDR="https://<instance_ID>.<region>.secrets-manager.appdomain.cloud"
    
    export IAM_TOKEN=`curl -s -X POST \
    "https://iam.cloud.ibm.com/identity/token" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -H "Accept: application/json" \
    -d "grant_type=urn%3Aibm%3Aparams%3Aoauth%3Agrant-type%3Aapikey&apikey=$IBM_CLOUD_API_KEY" | jq -j ".access_token"`
    

    根據下表取代位置保留元值。

    提取令牌所需的必需變數
    變數 說明
    IBM_CLOUD_API_KEY 至少具有 Secrets Manager 實例 檢視者 平台存取讀者 服務存取權 的 IBM Cloud API 金鑰。
    VAULT_ADDR Secrets Manager 實例專用的 Vault API 端點。

    您可以在 Secrets Manager UI 的 Endpoints 頁面中找到您的唯一端點 URL,或 透過 HTTP 請求擷取

  3. 在指令行中執行 chmod 指令,將檔案標示為執行檔。

    chmod +x login-vault.sh
    
  4. 執行 Script 以設定環境變數。

    source ./login-vault.sh
    
  5. 選用。 將環境變數列印至指令行視窗,以驗證環境變數是否正確設定。

    echo $VAULT_ADDR && echo $IAM_TOKEN
    

    輸出結果可能與以下範例相似。

    https://e415e570-f073-423a-abdc-55de9b58f54e.us-south.secrets-manager.appdomain.cloud
    eyJraWQiOiIyMDIwMTAxODE3MDEiLCJhbGciOiJSUzI1NiJ9.eyJpYW1faWQi...(truncated)
    

登入儲存庫

配置環境之後,請登入 Vault 以開始與 Secrets Manager 實例互動。

  1. 使用 IBM Cloud IAM 記號向 Vault 進行鑑別。

    vault write auth/ibmcloud/login token=$IAM_TOKEN
    

    下列畫面顯示輸出範例。

    Key                      Value
    ---                      -----
    token                    s.5DQYF57xU1qOAIj2PhnMC39H
    token_accessor           C14JDJ6KtwQKQR5UNR5NIC7J
    token_duration           1h
    token_renewable          true
    token_policies           ["default" "instance-manager"]
    identity_policies        []
    policies                 ["default" "instance-manager"]
    token_meta_grant_type    urn:ibm:params:oauth:grant-type:apikey
    token_meta_name          test-ibm-cloud-api-key
    token_meta_resource      crn:v1:bluemix:public:secrets-manager:us-south:a/791f5fb10986423e97aa8512f18b7e65:e415e570-f073-423a-abdc-55de9b58f54e::
    token_meta_user          iam-ServiceId-222b47ab-b08e-4619-b68f-8014a2c3acb8
    token_meta_bss_acc       791f5fb10986423e97aa8512f18b7e65
    
  2. 使用前一個步驟中傳回的 token 值登入 Vault。

    vault login <token>
    

    下列畫面顯示輸出範例。

    Success! You are now authenticated. The token information displayed is
    already stored in the token helper. You do NOT need to run "vault login"
    again. Future Vault requests will automatically use this token.
    
    Key                      Value
    ---                      -----
    token                    s.6yFk0Z1IRi0Yc5DtwIKuENDJ
    token_accessor           BnEHQuAxTiHJGhP1x0hNqagV
    token_duration           57m58s
    token_renewable          true
    token_policies           ["default" "instance-manager"]
    identity_policies        []
    policies                 ["default" "instance-manager"]
    token_meta_grant_type    urn:ibm:params:oauth:grant-type:apikey
    token_meta_name          test-ibm-cloud-api-key
    token_meta_resource      crn:v1:bluemix:public:secrets-manager:us-south:a/791f5fb10986423e97aa8512f18b7e65:e415e570-f073-423a-abdc-55de9b58f54e::
    token_meta_user          iam-ServiceId-222b47ab-b08e-4619-b68f-8014a2c3acb8
    token_meta_bss_acc       791f5fb10986423e97aa8512f18b7e65
    

    現在您可以使用 Vault CLI 指令與 Secrets Manager 實例互動。 若要進一步瞭解,請參閱 CLI 參考資料