存取密鑰
在 IBM Cloud® Secrets Manager 服務實例中儲存密鑰之後,您可以擷取其值。
開始之前
開始之前,請確定您具有必要的存取層次。 若要檢視可用密鑰的清單,您需要 讀者 服務角色或更高版本。 若要擷取密鑰的值,您需要 SecretsReader 服務角色或更高。
在使用者介面中擷取密鑰
您可以使用 Secrets Manager 使用者介面來擷取密鑰。 請遵循下列步驟來取得您的密碼。
- 在 密鑰 表格中,按一下 動作 功能表
,以開啟密鑰的選項清單。
- 若要檢視密鑰值,請按一下 檢視密鑰。
- 確定您位於安全環境之後,請按一下 確認。
密鑰值會顯示 15 秒,然後對話框會關閉。
密鑰輪換後,您可以從 「版本歷史記錄」 選項查看先前的密鑰值。
您也可以擷取秘訣的詳細資料,例如到期日、輪換間隔或狀態。
- 在 密鑰 表格中,按一下 動作 功能表
,以開啟密鑰的選項清單。
- 若要檢視密鑰值,請按一下 詳細資料。
您可以從秘密資料表的篩選器選項進一步篩選擷取的秘密,並選擇秘密群組、秘密類型或兩者。
下載憑證
若要使用 Secrets Manager 使用者介面下載憑證,請完成下列步驟。
- 在主控台中,按一下 功能表 圖示
> 資源清單。
- 從服務清單中,選取 Secrets Manager的實例。
- 在 密鑰 表格中,開啟您要下載之憑證的溢位功能表。
- 按一下下載。 憑證檔會下載至本端系統。
從 CLI 擷取密鑰
在實例中儲存密碼之後,您可能需要擷取其值,才能連接至外部應用程式或取得受保護服務的存取權。 您可以使用 Secrets Manager CLI 外掛程式來擷取密鑰的值。
若要取得密鑰的值,以及檢閱其詳細資料 (例如到期日及循環間隔或狀態),請執行 ibmcloud secrets-manager secret 指令。
ibmcloud secrets-manager secret --id SECRET_ID
指令會輸出密鑰的值,以及其他 meta 資料。 如需指令選項的相關資訊,請參閱 ibmcloud secrets-manager secret。
您也可以使用密鑰名稱來取得密鑰:
ibmcloud secrets-manager secret-by-name --secret-type SECRET_TYPE --name SECRET_NAME --secret-group-name SECRET_GROUP_NAME
您可以使用 --secret-types 及 --match-all-labels 選用旗標來進一步過濾擷取的密鑰。
下載憑證
使用憑證時,您可能需要能夠使用 CLI 將憑證有效負載下載至 pem 檔案。 若要這樣做,您可以使用 Secrets Manager CLI 外掛程式及 jq。
若要將憑證儲存至 pem 檔案,請執行 ibmcloud secrets-manager secret 指令。
ibmcloud secrets-manager secret --id=SECRET_ID | jq -r '.certificate' | sed 's/\\n/\n/g' > my-cert-file.pem
該指令會輸出憑證的值,並將其儲存至 my-cert-file.pem。 如需指令選項的相關資訊,請參閱 ibmcloud secrets-manager secret。
使用密鑰 ID 使用 API 擷取密鑰
在實例中儲存密碼之後,您可能需要擷取其值,才能連接至外部應用程式或取得受保護服務的存取權。 您可以使用 Secrets Manager API 來擷取密鑰的值。
下列範例要求會擷取密鑰及其詳細資料,例如到期日及輪換間隔或狀態。 當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。
curl -X GET
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{secret_ID}"
成功回應會傳回密鑰的值,以及其他 meta 資料。 如需必要及選用要求參數的相關資訊,請參閱 取得密鑰。
您可以使用 ?secret_types 及 ?match_all_labels 選用參數,進一步過濾擷取的密鑰。
使用密鑰名稱以 API 擷取密鑰
您也可以透過參照密鑰的名稱而非 ID 來擷取密鑰的值:
curl -X GET
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secret_groups/{secret_group_name}/secret_types/{secret_type}/secrets/{secert_name}"
請注意,您需要指定密鑰的 name、secret group name 及 secret_type。
您可以使用 ?secret_types 及 ?match_all_labels 選用參數,進一步過濾擷取的密鑰。
擷取包含二進位資料的任意密鑰
如果您使用二進位檔 (例如映像檔) 來建立任意密鑰,則服務會使用 base64 編碼將資料儲存為 base64 編碼字串。 要以其原始形式存取機密,您需要完成一些額外的步驟來對檢索到的機密進行base64解碼。
首先,透過呼叫 Secrets Manager API 來擷取密鑰。 下列範例使用 cURL 及 jq 來收集密鑰的 payload 值。
export ARBITRARY_SECRET=`curl -X GET
-H "Authorization: Bearer $IAM_TOKEN" \
-H "Accept: application/json"
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/arbitrary/{id}" | jq --raw-output '.payload | sub(".*,"; "")'`
如果您檢查 $ARBITRARY_SECRET 的內容,則會看到 base64 編碼資料。 下列 Snippet 顯示輸出範例。
echo $ARBITRARY_SECRET
eUdB68klDSrzSKgWcQS5...(truncated)
若要以密鑰原始格式 (二進位檔) 檢視密鑰,您可以使用 base64 解碼。 下列範例使用 base64 macOS 公用程式來 base64 解碼 $ARBITRARY_SECRET 內容。
echo $ARBITRARY_SECRET | base64 --decode > my-secret.png
資料會轉換回您可以從本端電腦開啟的二進位檔。
下載舊版憑證
輪替憑證之後,您可以使用 Secrets Manager API,以程式化方式存取其舊版。
以下範例請求擷取一個秘密及其內容。 當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。
curl -X GET
--header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions/previous"
直接連結至秘密
您可以複製直接指向秘密詳細資料面板的連結。
- 在 密鑰 表格中,按一下 動作 功能表
,以開啟密鑰的選項清單。
- 若要複製密碼的連結,請按一下複製密碼 URL。