IBM Cloud Docs
在工具鏈中使用機密集成

在工具鏈中使用機密集成

工具鏈設定和管道使用者介面中提供的機密管理功能可以透過使用IBM Cloud® Secrets Manager、IBM® Key Protect的機密整合來選擇保管的機密。,或HashiCorp Vault。 透過使用「Secrets Picker」對話框,工具鍊或管道編輯器可以從綁定機密整合中選擇命名機密,該整合由 CRN (雲端資源名稱)或名稱配置,然後在運行時在工具鍊和管道中通過引用進行解析。 選擇秘密後,CRN 或規範秘密引用將被注入到相應的工具鍊或管道安全屬性中,其中格式為 crn:v1:...secret:<secret-guid> 如果它是由 CRN 配置的Secrets Manager集成,{vault::integration-name.secret-name} 如果它是使用的保管庫集成任何受支持的提供者並按 name 配置。

規範的按名稱引用格式目前無法解析秘密名稱中包含句點字元的秘密,因為該字元用於分隔規範路徑的每個部分。

無論使用哪種類型的秘密引用(透過 CRN透過名稱),前端使用者介面元件和秘密選取器對話方塊都僅使用秘密引用。 按 CRN按名稱秘密引用的解析值永遠不會暴露給前端,並且始終根據可用的允許 授權(透過使用 IAM 授權和存取策略進行配置)在運行時在工具鍊和管道內動態解析。

在IBM Cloud®內,解析工具鏈和管道中的透過 CRN按名字秘密引用的動態過程是透過使用所有區域中的所有IBM Cloud® Secrets Manager和IBM® Key Protect提供者實例的內部虛擬專用端點 (VPE) 來執行的。 這可確保工具鏈、管道以及IBM Cloud® Secrets Manager和IBM® Key Protect提供者實例之間的所有請求和回應資料都保存在邊界內私有IBM Cloud中網絡,且不透過任何公共網路管道傳輸。

除了從工具鏈中的任何綁定機密整合中逐一手動選擇所選機密外,還可以選擇使用 Secret Hint。 此選項允許使用建議的秘密名稱(也稱為 Hints )預先定義工具鏈模板,這些秘密名稱是簡短形式的秘密引用。 秘密提示的格式為 {vault::secret-name},其中不包含秘密整合名稱。 這為工具鏈作者提供了靈活性,因為所有必需的秘密名稱都可以預先填充到 toolchain.yml 中,然後根據為工具鏈配置的任何秘密整合自動解析這些名稱。

如前所述,您可以設定Secrets Manager以透過 CRN 引用機密。 如需詳細資訊,請參閱 雲端資源名稱(CRN)。 這種格式提供了更大的彈性,因為如果正確的 授權到位,您可以引用來自不同帳戶中的Secrets Manager實例的金鑰。 有關更多信息,請參閱 配置Secrets Manager

Hint 是建議的預設名稱,會根據綁定到工具鏈的任何可用的按名稱機密整合中具有相同名稱的第一個匹配機密自動解析。

DevSecOps管道秘密

CI 和 CD 中使用的秘密概述如下:

DevSecOps秘密
密碼 提示 資訊
IBM Cloud API 金鑰 ibmcloud-api-key 必需:CI 和 CD用於向IBM公有雲進行身份驗證並執行各種操作
GPG私鑰 signing_key 必需:僅限 CI這是用於對 CI 管道建置的映像進行簽署的證書
IBM私人工作人員服務 API 金鑰 private-worker-service-api-key 必要:僅限 CI服務 ID API 金鑰 用於在 Tekton Private Worker Service 上執行交付管道工作負載
GitHub 存取記號 git-token 可選:CI 和 CD用於透過GitHub進行身份驗證並提供對儲存庫的訪問
Artifactory API 令牌 artifactory-token 必需:CI & CD用於存取管道任務使用的影像
Slack webhook slack-webhook 選用:CI 和 CD如果您選擇使用 Slack 工具整合來發布工具鏈狀態通知,則需要此 Webhook
ServiceNow API 令牌 servicenow-api-token 必需:僅 CD用於存取 Service Now 以進行變更管理操作
HashiCorp Vault 角色 ID role-id 必需:CI 和 CD用於透過HashiCorp Vault 伺服器進行身份驗證
HashiCorp Vault 秘密 ID secret-id 必需:CI 和 CD用於透過HashiCorp Vault 伺服器進行身份驗證
IBM Cloud Object Storage編寫器 API 金鑰 cos-api-key 必要:CI 和 CD用於透過Object Storage服務進行驗證 - 此金鑰必須具有 writer 權限
SonarQube密碼或驗證令牌 sonarqube-password 可選:CI用於使用SonarQube原始碼分析器進行身份驗證

如果您使用的是HashiCorp Vault 伺服器,請確保HashiCorp Vault 工具整合使用 AppRole Auth Method方法。 當您使用AppRole身份驗證方法時,您需要 role-idsecret-id 才能成功將HashiCorp Vault伺服器與工具鏈整合。 由於 role-idsecret-id 本身就是秘密,因此建議使用 IBM Key Protect工具整合 來儲存它們,以便可以在工具鏈工作流程中安全地檢索和應用它們。 所有其他工具鏈機密應使用HashiCorp Vault 工具整合來儲存和檢索。

如果未設定管道環境屬性 git-token,則預設使用 ibmcloud-api-key 檢索Git Repos and Issue Tracking存取令牌。 但是,如果 ibmcloud-api-key 無權存取 git,則必須設定 git-token

配置秘密存儲

透過IBM Cloud,您可以從各種機密管理和資料保護產品中進行選擇,以協助您保護敏感資料並集中您的機密。 您可以根據您的要求在保管庫整合之間進行選擇,如 管理IBM Cloud機密 中所述。 本文檔提供有關先決條件以及如何使用指定秘密名稱清單(也稱為提示)的資訊。 透過在範本中使用提示,可以使用預先配置的機密自動填入工具鏈,而無需從附加到工具鏈的各種保管庫整合中手動選擇它們。

使用 IBM Cloud® Secrets Manager 安全地儲存並套用屬於工具鏈一部分的 API 金鑰、影像簽章或HashiCorp Vault 憑證等機密。

Secrets Manager工具整合形式
IBM Secrets Manager工具整合

這些模板還附帶HashiCorp Vault 工具集成,如下例所示:

HashiCorp Vault 工具整合表單,包含必填欄位和範例值
HashiCorp Vault 工具整合

要使用HashiCorp Vault,您必須提供以下資訊:

名稱
此工具整合的名稱。 此名稱會顯示在工具鏈中。
伺服器 URL
HashiCorp Vault Instance 的伺服器 URL。 例如,https://<vault-service>.<org>.com:8200
整合 URL
當您按一下 HashiCorp Vault Integration 磁磚時,要導航到的 URL。
秘密之路
HashiCorp Vault 實例中儲存機密的裝載路徑。
鑑別方法
HashiCorp Vault 實例的身份驗證方法。 使用 AppRole
角色 ID
選擇評估其他憑證所依據的AppRole的識別碼。
密鑰 ID
預設情況下,任何登入都需要憑證(使用 Secret_id),並且始終保密。

這些範本也附帶了IBM® Key Protect for IBM Cloud®工具整合:

Key Protect }具有必填欄位和範例值的工具整合表單
IBM Key Protect工具整合

如果您提前將 role idsecret id 儲存在Key Protect中,那麼您可以在工具卡中選擇包含這些金鑰的Key Protect實例,如下所圖示 2. 完成後,您可以點擊HashiCorp Vault 工具卡中角色 ID秘密 ID 欄位上的鑰匙圖標,並使用選擇器將秘密套用到這些欄位。

同樣,工具鏈中使用的任何其他機密都有一個附加到文字欄位的鑰匙圖示。 您可以使用相同的選擇器控制項將HashiCorp Vault 金鑰套用到所有剩餘實例。