配置 Secrets Manager
DevOps Insights 將於 2026 年 8 月 31 日結束服務並停止運作。Continuous Delivery 將於 2027 年 2 月 12 日在以下地區停止運作:au-syd、ca-tor、us-east。 Code Risk Analyzer 也將於該日於所有地區停止服務。 若某個區域未實際使用這些功能,該區域中的功能可能會提前停用,並停止接受新的實例。 了解更多
IBM Cloud® Secrets Manager 可協助您跨 IBM Cloud 服務安全地儲存和應用應用程式的秘密。
密碼 是任何可讓您存取機密性資訊的項目,例如 API 金鑰。 您可以使用 Secrets Manager 工具整合來存取密鑰,無論它們在工具鏈工作流程中的必要位置。
在您設定 Secrets Manager 工具整合之前,請確定您已 提供 Secrets Manager 服務的實例。
您可以配置 Secrets Manager 工具整合,以依名稱或 雲端資源名稱(CRN) 來識別密鑰。
依名稱識別密鑰
當您配置 Secrets Manager 工具整合以依名稱識別密鑰時,您的工具鏈可以存取下列密鑰類型:
- Identity and Access Management (IAM) 認證密碼。
- 儲存在 Secrets Manager中的任意密鑰。
- 鍵值密碼。
按名稱引用機密目前無法解析機密名稱中包含句點字元的機密,因為該字元用於分隔規範路徑的每個部分。
如需 Secrets Manager中 IAM 認證密鑰、任意密鑰及金鑰值密鑰的相關資訊,請參閱 使用不同類型的密鑰。
配置 Secrets Manager 以安全地管理屬於工具鏈一部分的密鑰:
-
如果您要在建立工具鏈時配置此工具整合,請按一下「可配置的整合」區段中的 Secrets Manager。 如果 Secrets Manager 定義為選用工具整合,則它位於 更多工具下。 選擇依服務實例名稱來識別此實例。 若要在工具鏈與 Secrets Manager 服務實例之間建立授權,請從 授權類型 下拉清單中選取 建立此工具鏈的授權 選項。 這會授與工具鏈對儲存在 Secrets Manager 服務實例中的秘密資料的存取權。
-
如果您有一個工具鏈並且要向其中添加此工具集成,請從IBM Cloud控制台單擊菜單圖標
>平台自動化>工具鏈。 在「工具鏈」頁面中,點擊該工具鏈以開啟其「概覽」頁面。 或者,在應用程式的「概覽」頁面上,於「Continuous Delivery」卡片中,點選 「檢視工具鏈」。 然後,按一下概觀。
a. 點擊「新增工具」。
b. 在「工具整合」區段中,按一下 Secrets Manager。
-
指定此 Secrets Manager 工具整合實例的名稱,以在工具鏈中使用。 您指定的名稱用於選取 Secrets Manager 密鑰的使用者介面工具中。 在工具鏈執行時,也會使用它作為參照的一部分來解析密鑰值。 此實例名稱也會顯示在工具鏈工作區內的 Secrets Manager 工具整合磚上。
-
選擇依服務實例名稱來識別此實例。
-
檢閱 區域 及 資源群組 的預設值,並在必要時更新。
-
選取您要使用的 Secrets Manager 服務實例。
-
若要在工具鏈與 Secrets Manager 服務實例之間建立授權,請按一下 建立授權 按鈕。 這會授與工具鏈對儲存在 Secrets Manager 服務實例中的秘密資料的存取權。
-
按一下建立整合。
套用密鑰
在配置 Secrets Manager 工具整合之後,您可以使用它在工具鏈所需的任何位置套用密鑰。 此工具整合及「密鑰」對話框支援任意及 IAM 認證密鑰類型。
您可以使用「任意密鑰」來儲存任何預先定義的密鑰值,或使用「密鑰」對話框來動態儲存已減小的 IBM Cloud API 金鑰。 您必須直接在 Secrets Manager 服務實例內建立 IAM 認證密碼。 建立這些密鑰之後,您可以在任何安全欄位上使用「密鑰」對話框,選取 IAM 認證密鑰以在工具鏈內使用它們。 「密鑰」對話框會同時顯示任意及 IAM 認證密鑰類型,並在密鑰名稱後面加上方括弧 ([])。
使用儲存在 Secrets Manager 中的任意密鑰
您必須先在 Secrets Manager 中儲存協力廠商密碼 (例如 Slack Webhook 或 Artifactory API 記號),然後才能 建立新的工具鏈。 在 Secrets Manager中,當您使用「密鑰」對話框來使用工具鏈時,您可以將 IBM管理的密鑰 (例如 IBM Cloud API 金鑰) 建立並儲存為任意密鑰類型。 不過,您必須直接在 Secrets Manager 中建立 IAM 認證密鑰,然後才能使用「密鑰」對話框在工具鏈內選取這些類型的密鑰。
下列範例將儲存在 Secrets Manager 中的任意密鑰類型套用至 IBM Cloud Delivery Pipeline 工具整合所需的 API 金鑰。 您可以遵循相同的步驟,將密鑰套用至任何需要密鑰值的 Continuous Delivery 工具整合。
-
按一下金鑰圖示,以針對 IBM Cloud API 金鑰從安全儲存庫 (例如 Secrets Manager ) 擷取密碼。
-
在 提供者 欄位中,指定您用來管理工具鏈密碼的 Secrets Manager 工具整合的提供者及名稱。 例如,若要使用 Secrets Manager 工具整合,請選取
Secrets Manager: ibm-secrets-manager-1。 您可以使用其他提供者來管理您的工具鏈秘密,例如 HashiCorp Vault 和 Key Protect. -
選取密鑰群組及密鑰名稱,然後按一下 確定,將儲存的密鑰套用至與其相關聯的欄位。
保險庫的秘密引用 您選取的密鑰名稱會以膠囊形式出現。 您無法行內編輯密鑰名稱,但可以按一下
來刪除名稱。 您也可以重新選取密鑰名稱來取代現有的密鑰名稱。 如果您在「密鑰」欄位中手動鍵入或貼上密鑰名稱,則會以不同的格式顯示:
秘密值 密鑰顯示的格式指出值是否參照儲存在後端儲存庫中的密鑰或儲存在工具鏈中的密鑰。 透過使用對密鑰提供者 (例如 Secrets Manager) 所管理密鑰的參照,您的密鑰值集中並安全地儲存在單一位置。 此方法可解決密鑰蔓延及擴散問題,並表示您可以在不更新工具鏈的情況下更新密鑰。 當您使用密鑰參照時,當工具鏈執行時,會透過從 Secrets Manager動態擷取它來解析實際密鑰值。 當您必須定期輪換工具鏈密碼的值時,此方法非常有用。
使用 IAM 認證密碼
IAM 認證密碼類型已與 IAM 完全整合。Secrets Manager 會自動管理與 IAM 認證密碼相關聯的動態服務 ID 及 API 金鑰。Continuous Delivery 和 Secrets Manager 服務 API 會參與解析 Continuous Delivery 工具鏈和管線工作量中的授權 IAM 認證密鑰參照。
當您在 Secrets Manager 中建立 IAM 認證密碼時,請確定您選擇了 Reuse IAM credentials until lease expires(重複使用 IAM 認證直到租約到期 )核取方塊。 此外,當您使用公用工作者代理程式來執行管線時,請指定最少 12 小時的租賃持續時間。 如果您使用專用工作者代理程式,請確保將管線的租賃持續時間下限設為強制取消持續時間。 建議您與帳戶管理者確認這些設定。 透過設定重複使用選項及適當的租賃持續時間,您可以確保在管線執行期間持續動態受管理 IAM 認證服務 ID API 金鑰。
透過從 Secrets Manager 儀表板對 IAM 認證執行 Rotate 動作,您可以維護 Continuous Delivery 管線所使用「API 金鑰」輪替的相符性狀態需求。Secrets Manager 會使用 IAM 來產生 IAM 認證密碼的新 API 金鑰,並管理密碼的版本化。
IAM 認證密鑰類型也有助於在密鑰輪替期間及之後提供服務的連續性:
- 新的 Continuous Delivery 管線工作量會使用新輪換的「API 金鑰」,直到其租賃持續時間到期為止。
- 使用循環之前發出的「API 金鑰」執行的現有 Continuous Delivery 管線工作量可以繼續與舊版一起執行,直到舊版的租賃持續時間到期為止。
如需 Secrets Manager中 IAM 認證密碼類型的相關資訊,請參閱 建立 IAM 認證。
使用鍵值密碼
您可以從「密鑰」對話框中的金鑰值密鑰選取個別金鑰,以選取要在工具鏈中使用的金鑰值密鑰。 或者,您可以選取整個密鑰。
-
按一下金鑰圖示,以針對 IBM Cloud API 金鑰從安全儲存庫 (例如 Secrets Manager ) 擷取密碼。
-
在 提供者 欄位中,指定您用來管理工具鏈密碼的 Secrets Manager 工具整合的提供者及名稱。 例如,若要使用 Secrets Manager 工具整合,請選取
Secrets Manager: ibm-secrets-manager-1。 您可以使用其他提供者來管理您的工具鏈秘密,例如 HashiCorp Vault 和 Key Protect. -
選取密鑰群組及密鑰名稱,以將儲存的密鑰套用至與其相關聯的欄位。 選用項目: 選取秘密金鑰。 按一下確定。 您選取的密鑰名稱會以膠囊形式出現。 您無法行內編輯密鑰名稱,但可以按一下
來刪除名稱。 您也可以重新選取密鑰名稱來取代現有的密鑰名稱。 如果您在「密鑰」欄位中手動鍵入或貼上密鑰名稱,則會以不同格式顯示密鑰名稱。
將 Secrets Manager 工具整合新增至工具鏈範本
您可以透過將服務定義新增至範本儲存庫中的 toolchain.yaml 檔案,將 Secrets Manager 工具整合新增至工具鏈範本。 此檔案是工具鏈的設計藍圖,並包括您根據該範本建立工具鏈實例時可用的所有工具整合。 若要自訂現有工具鏈範本以包括 Secrets Manager 工具整合,請插入 YAML 定義。
sm-compliance-secrets:
service_id: secretsmanager
parameters:
name: sm-compliance-secrets
instance-id-type: instance-name
region: us-south
resource-group: default
instance-name: ffs-secrets
setup-authorization-type: create
依 CRN 識別密鑰
當您配置 Secrets Manager 工具整合以依 CRN 識別密鑰時,您的工具鏈可以存取 Secrets Manager中儲存的任意、金鑰值及 IAM 認證密鑰。 如需 Secrets Manager中不同類型密碼的相關資訊,請參閱 使用不同類型的密碼。 您只能將整個金鑰值密鑰用於 CRN 密鑰,不能使用個別金鑰。
配置 Secrets Manager 以安全地管理屬於工具鏈一部分的密鑰:
-
如果您要在建立工具鏈時配置此工具整合,請按一下「可配置的整合」區段中的 Secrets Manager。 如果 Secrets Manager 定義為選用工具整合,則它位於 更多工具下。 選擇由服務實例 CRN 識別此實例。 若要在工具鏈與 Secrets Manager 服務實例之間建立授權,請從 授權類型 下拉清單中選取 建立此工具鏈的授權 選項。 這會授與工具鏈對儲存在 Secrets Manager 服務實例中的秘密資料的存取權。
-
如果您有一個工具鏈並且要向其中添加此工具集成,請從IBM Cloud控制台單擊菜單圖標
>平台自動化>工具鏈。 在「工具鏈」頁面中,點擊該工具鏈以開啟其「概覽」頁面。 或者,在應用程式的「概覽」頁面上,於「Continuous Delivery」卡片中,點選 「檢視工具鏈」。 然後,按一下概觀。
a. 點擊「新增工具」。
b. 在「工具整合」區段中,按一下 Secrets Manager。
-
指定此 Secrets Manager 工具整合實例的名稱,以在工具鏈中使用。
-
選擇由服務實例 CRN 識別此實例。
-
指定儲存密鑰之 Secrets Manager 服務實例的 CRN。 如果您的工具鏈在不同帳戶中 獲授權存取密碼,則該服務實例可以存在於該帳戶中。
-
若要在工具鏈與 Secrets Manager 服務實例之間建立授權,請按一下 建立授權 按鈕。 這會授與工具鏈對儲存在 Secrets Manager 服務實例中的秘密資料的存取權。
-
按一下建立整合。
套用密鑰
在您配置 Secrets Manager 工具整合並 授權工具鏈 存取該帳戶中的密鑰之後,您可以使用它來套用工具鏈所需的密鑰。
您可以使用下列任一方法來選取要在工具鏈中使用的 CRN 密鑰:
-
從 Secrets Manager 服務實例複製密鑰的 CRN,並貼到密鑰欄位的編輯框中。 該密鑰必須位於您將 Secrets Manager 工具整合新增至工具鏈時所配置的 Secrets Manager 服務實例中。
-
使用「密鑰」對話框。 如需如何使用此方法的相關資訊,請參閱 依名稱識別密鑰。
當您選擇 CRN 密鑰時,請確保從 提供者 選項中選取 CRN 配置的工具卡。
當顯示包含 CRN 密鑰的欄位時,Secrets Manager 工具整合會嘗試擷取密鑰名稱。 若要開啟密鑰所在的 Secrets Manager 服務實例,請按一下密鑰。 在下列實務範例中,無法擷取密鑰名稱,且會顯示警告圖示:
- 工具鏈未包含正確配置的 Secrets Manager 整合。
- 工具鏈授權不正確。
- 該欄位未包含有效的 CRN。
使用 API 來配置 Secrets Manager
Secrets Manager 工具整合支援下列組態參數,您可以在 建立、讀取和 更新工具整合時,使用工具 鏈 HTTP API 和 SDK。
您必須在要求內文中以 secretsmanager 值指定 tool_type_id 內容。
| 參數 | 用法 | 類型 | Terraform 引數 | 說明 |
|---|---|---|---|---|
| 名稱 | 必要,可更新 | 字串 | 名稱 | 此工具整合的名稱。 名稱型密鑰參照包括此名稱,以識別密鑰所在的密鑰儲存庫。 所有整合至工具鏈的密鑰儲存庫工具都必須具有唯一名稱,才能讓密鑰解析正常運作。 |
| 實例 ID 類型 | 必要,可更新 | 列舉 | instance_id_type | 服務實例 ID 的類型。 接受值為 instance-name 和 instance-crn。 預設情況下,此值設定為 instance-name。 |
| instance-crn | 必要,可更新 | 字串 | 實例_crn | Secrets Manager 服務實例的 CRN。 僅當您使用 instance-crn 作為 instance_id_type 時,才會使用此參數。 |
| 區域 | 必要,可更新 | 字串 | 位置 | Secrets Manager 服務實例所在的 IBM Cloud 位置。 僅當您使用 instance-name 作為 instance_id_type 時,才會使用此參數。 |
| 資源群組 | 必要,可更新 | 字串 | 資源群組名稱 | Secrets Manager 服務實例所在的資源群組名稱。 僅當您使用 instance-name 作為 instance_id_type 時,才會使用此參數。 |
| 實例名稱 | 必要,可更新 | 字串 | instance_name | Secrets Manager 服務實例的名稱。 僅當您使用 instance-name 作為 instance_id_type 時,才會使用此參數。 |
進一步了解 Secrets Manager
若要進一步瞭解 Secrets Manager,請參閱 開始使用 Secrets Manager。