使用 IBM Cloud Object Storage 儲存區作為證明櫃

您可以設定 IBM Cloud Object Storage (COS) 儲存桶,用於存放由整合至 管道 DevSecOps 中的合規檢查所產生的證據。 法規遵循證明會建立審核員在法規遵循審核期間所尋找的審核追蹤。 的目標之一 DevSecOps,是在可稽核的證據保管庫中實現證據的自動生成與儲存。 如需相關資訊,請參閱 證明櫃

合規自動化管線會將下列資訊儲存在 COS 儲存區中:

作業構件
測試結果、掃描結果或作業所儲存的任何輸出。
作業日誌
在管線執行之後,該執行的日誌會傳送至證明櫃。
證明
作業及其結果輸出的相關資訊,可能是失敗或成功。 如需所傳送證明格式的相關資訊,請參閱 證明摘要

配置儲存區

在設定連續整合或連續部署工具鏈之前,必須先建立專用雲端 Object Storage 實例。 此 COS 儲存區用於與合規相關的儲存空間,因為必須在應用程式的界限內建立證明鎖定器。 這有助於改善管線的備援。 如需相關資訊,請參閱 備援

若要將您的雲端 Object Storage 儲存區配置成作為持續整合或連續部署管線的合規證明鎖定器,您可以使用下列資訊作為指引。 管線或工具鏈範本 Script 未在雲端 Object Storage中設定鎖定器。

有關使用 Cloud Object Storage 作為合規性證據的注意事項 (粒度、安全性...) 的詳細資訊,請參閱 本頁面

保留原則 (Retention policy)

您可以設定雲端 Object Storage 儲存區,以針對上傳的物件施行保留原則或期間,也稱為 Immutable Object Storage。 Immutable Object Storage 會保留電子記錄,並維護資料完整性。 資料保留政策確保資料以「寫入一次、多次讀取」(WORM)的方式儲存,且無法刪除或覆寫。 您無法在保留期間內變更或刪除受保護儲存區中的物件,或刪除具有物件本身的受保護儲存區,直到保留期間結束為止。 該政策將持續實施,直至保存期限結束且所有法律保留措施解除為止。

建議團隊針對用作其證明櫃的儲存區設定保留原則,每一個物件至少儲存 365 天。

儲存區存取權

在 DevSecOps 環境中使用 Cloud Pipelines 時,證據、證據摘要和工件等物件會被導入 IBM Cloud Object Storage (COS) 中的 Buckets 或從 Buckets 讀取。 這些工具不會建立、更新、刪除或變更任何物件或資料桶。

為了確保安全存取您的雲端 Object Storage 儲存桶,同時促進必要的管道作業,請遵循這些存取政策:

  • 讀者

    1. 此權限可確保 Continuous Delivery (CD) 管道能驗證儲存桶的保留設定,而不需修改任何資料。
    2. 需要閱讀 CI 管道產生的證據
  • 物件寫入器

    1. 此權限允許持續整合 (CI)、CD 和組態控制 (CC) 管道上載或寫入新物件到儲存桶。

建立服務憑證的步驟

要使用 Cloud Pipelines 存取您的 COS 儲存桶:

  1. 導覽至服務憑證:
  2. 建立新憑證:
    • 按一下「建立」,並依照提示為您的 COS 資料桶建立新的服務憑證。

指定 COS 資料桶存取權限的步驟

要為您的 COS 資料桶指定適當的存取權限:

  1. 導覽到 IAM Bucket Permissions:
  2. 指定角色和政策:
    • 為 CD 管道指定閱讀器角色,以檢查保留政策。
    • Object Writer 角色指派給 CI、CD 和 CC 管道,以便將證據寫入儲存桶。

當您使用雲端 Object Storage 儲存桶作為證據儲存時,建議設定的權限為讀取者物件寫入者。 應避免使用具有較高權限的權限 (例如,管理員等級存取),以防止意外或惡意修改您的物件。

儲存空間類別

對於具有不同設定和部署頻率的團隊,成本會有所不同。 不建議您使用免費層級作為雲端 Object Storage 儲存區,因為免費層級無法配置成不可變。

樣本估計

如果您使用參照連續整合或連續部署管線,其中每一個都有六個證明,則單一連續整合及連續部署執行配對會提出 37 個類別 A 要求及 6 個類別 B 要求。

  • 連續整合會寫入六個日誌、六個構件及六個證明,這等於 18 PUT-Class A。
  • 連續部署會讀取 6 個證明 (6 個 GET-Class B),寫入 6 個證明、6 個日誌、6 個構件及一個摘要,等於 19 個 PUT-Class A。

平均有 5 個微服務 (5 x 連續整合) 和 4 個部署區域 (4 x 連續部署),一個完整部署等於 166 個 A 級和 24 個 B 級要求。

每週一個完整部署 (每個月四個),您可以計算每個月的 664 個「A 級」及 96 個「B 級」要求。

收集的資料量會因使用案例而異。 使用證明 (1 kB)、測試構件 (100 kB) 及日誌 (15 kB) 的平均大小,您可以計算每個月所建立及傳送資料的 0.01 GByte。

備援

如果需要保持在界限內,建議您使用 Cross-RegionRegional 備援。 如需這些地區的相關資訊,請參閱 端點及儲存空間位置

儲存區名稱

雲端 Object Storage 儲存區名稱必須是廣域唯一且符合 DNS 標準。 名稱長度必須為 3-63 個字元,且必須包含小寫字母、數字及橫線。 儲存區名稱的開頭和結尾必須是小寫字母或數字。 不容許類似 IP 位址的名稱。 儲存區名稱在整個 IBM Cloud Object Storage 系統中是唯一的,且不能包含任何個人資訊,例如名稱或位址的任何部分,或財務、安全帳戶或 SSN。

儲存區名稱必須是唯一的,因為公用雲端中的所有儲存區都會共用廣域名稱空間。 此要求允許在不需提供任何服務執行個體或帳戶資訊的情況下,存取儲存桶。 此外,亦無法建立名稱以 cosv1- 或 account- 開頭的儲存桶,因為這些前綴已被系統保留。

端點

對於源自 IBM Cloud® 內的大部分要求使用 private 端點,對於源自 IBM Cloud®外的大部分要求使用 public 端點。 如需相關資訊,請參閱 端點類型

對於在倫敦地區中執行的管線,請使用 direct 端點,因為那裡有管線管理的工作者節點基礎架構。

使用 COS 工具桶設定工具鏈

若要儲存證據、資產和附件,請在管道中設定 COS 桶。 由於這個資料桶是用來重新取得現有的資訊,因此它應該有 ReaderObject Writer 的存取權限。 在管道中設定這個水桶。

COS 水桶設定的環境屬性 |名稱 | 類型 | 描述 | 必須或可選 | 已鎖定或未鎖定 |:----------|:------------------------------|:------------------|:----------|:----------| | cos-api-key | SECRET | Cloud Object Storage API 金鑰。| 必須 | 已鎖定 | 鎖定的金鑰 | cos-access-key-id | SECRET | 來自 HMAC 認證的 Cloud Object Storage 存取金鑰 ID。 (與 cos-secret-access-key 一起提供,而非 cos-api-key)| 必須 | 已解鎖 | | | cos-secret-access-key | SECRET | 來自 HMAC 認證的 Cloud Object Storage 秘密存取金鑰。 (與 cos-access-key-id 一同提供,而非 cos-api-key) | 必須 | 已解鎖 | | 已解鎖 | cos-bucket-name | text | 您的 Cloud Object Storage 範例中用作證據櫃桶的名稱。|Required | Unlocked | 儲存桶 | cos-endpoint | text | 從用作證據櫃的「Cloud Object Storage」實例讀取證據的端點。 如需詳細資訊,請參閱 端點類型。| 需要 | 已解鎖 | | 不需要

在所有管道 CI/CD/CC 中配置相同的桶。

從 Git 證據保管庫遷移至COS證據保管庫

為提升建置效能、可靠性與擴展性,已廢棄對 Git 基於證據的鎖定機制之支援。 遷移至 Cloud Object Storage 基於 COS 的證據儲存庫有助於降低對 Git 運維作業的依賴,並避免因服務 Git hosting 供應商的速率限制問題所造成的困擾。

所有使用者應更新其工具鏈與流程,以採用 COS 證據儲存庫。

當您的工具鏈僅使用一個 Git 證據保管庫時

請按照以下步驟完成遷移:

當您的工具鏈同時使用 Git 和 COS 證據鎖定器時

若您已同時設定兩者:

  • 從所有管道中移除環境 evidence-repo 屬性。
  • 移除工具鏈中與證據儲存庫相關的整合 GitHub/GitLab 功能。

為從 CD 管道 Git 遷移至 COS 證據儲存庫進行準備

若您的持續整合與持續交付管道依賴於 Git 證據儲存庫,則必須將持續交付管道初始化為使用 COS 證據儲存庫。 您可以選擇以下其中一種方法。

方法一:同時使用兩種證據鎖定機制進行引導啟動

在此方法中,COS證據保管庫功能已啟用,同時證據保管 Git 庫配置仍維持原狀。 同時並行執行兩者,可讓 COS 證據儲存庫透過證據 Git 儲存庫自動完成初始化。

  • 維持證據櫃 Git 的配置不變。
  • 啟用 COS 證據保管庫。
  • 使用早於 v10.46.1 (建議使用:v10.45.0 ) 的管道定義版本執行 CD 管道。
  • 執行完畢後,請依照先前所述步驟 Git 移除證據儲存櫃的設定。

方法二:Git 無證據鎖定機制的自舉啟動

若您偏好乾淨的遷移方式而不依賴 Git.

  • 移除證據 Git 儲物櫃的設定。
  • 執行一次性的 CD 管道運行,將參數 force-redeploy 設定為 true
  • 執行完成後,將參數重設 force-redeployfalse 或直接移除該參數。

此一次性CD管道執行確保COS證據儲存庫已填入所有現有庫存資產。 僅需執行一次初始化程序,您即可。 若您不希望觸發實際部署,可跳過部署與驗收測試階段,直接執行持續交付管道而無需執行任何部署操作。

您可選擇在移除後將證據儲存庫 Git 歸檔,因其將作為稽核用途所需之文件。

從一個 COS 儲存槽遷移至另一個 COS 儲存槽

從一個 COS 儲存桶遷移至另一個 COS 儲存桶 如果您是 COS 證物櫃現有的使用者,並且需要從一個 COS 儲存桶遷移至另一個 COS 儲存桶,那麼確保順利過渡、不中斷您的工作流程是很重要的。 以下是在 COS 桶之間遷移的步驟和注意事項。

遷移的原因:

  • 組織重組: 您可能想要停止使用一個 COS 桶,並開始使用另一個。
  • 水桶搬遷: 水桶需要從一個帳戶移到另一個帳戶,可能是因為組織變更或合規要求。

遷移步驟:

設定備份-COS 資料桶: 如果您要從舊的 COS 儲存桶遷移至新的 COS 儲存桶,請確保您的管道已設定為同時使用新舊兩個儲存桶。 這可讓您在不中斷現有工作流程的情況下順利遷移。

  • 依照上述步驟的定義,建立新的 COS Bucket。
  • 設定 IAM 政策:確保新的 COS 儲存桶具有必要的 IAM 政策,可依您的管道需求,進行讀取與物件寫入存取。
  • 更新環境變數

在 IBM 工具鏈中,更新環境變數以包含新舊 COS 套件。 要設定舊的儲水桶,請在所有 COS 環境屬性中使用 backup- 前綴,並使用一般屬性來設定新的 COS 儲水桶。

名稱 類型 說明 必要或選用 鎖定或未鎖定
backup-cos-api-key 密鑰 備份 Cloud Object Storage API 金鑰。 必要 已鎖定
backup-cos-access-key-id 密鑰 備份 Cloud Object Storage 存取金鑰 ID 來自 HMAC 憑證。 (與 backup-cos-secret-access-key 一同提供,而非 backup-cos-api-key) 必要 解除鎖定
backup-cos-secret-access-key 密鑰 備份 Cloud Object Storage 來自 HMAC 憑證的秘密存取金鑰。 (與 backup-cos-access-key-id 一同提供,而非 backup-cos-api-key) 必要 解除鎖定
backup-cos-bucket-name 文字 Cloud Object Storage 範例中用作證據櫃的備份桶名稱。 必要 解除鎖定
backup-cos-endpoint 文字 從用作證據櫃的備 份 Cloud Object Storage 範例讀取證據的端點。 如需詳細資訊,請參閱 端點類型 必要 解除鎖定

請勿在 365 天內刪除舊水桶,因為審計時需要使用。

管道執行緩慢的疑難排解指南

  1. force-redeploy 不應設定為 true,除非是重新部署所有項目。
  2. Promotion pipeline 應用於推廣正確的 delta 集,使 delta 計算正確無誤。
  3. 如果您看到這樣的行,表示 CI 管道沒有產生正確的摘要。 返回 CI 管道並檢查在建立迷你摘要到完成步驟時是否有任何錯誤。