了解DevSecOps中的 Commons 腳本

在DevSecOps,如果設定 YAML 檔案中未指定某些階段,則某些階段會執行預設腳本。 這些預設腳本是公共腳本庫的一部分,該庫提供了一組可重複使用腳本,可用作自訂管道配置的起點。

共享腳本庫

  • 公共腳本庫是可在DevSecOps管道中使用的可重複使用腳本的集合。
  • 此公共腳本庫中的腳本和函數可用於自訂管道配置,以滿足您的特定管道要求。

請參閱 Commons Scripts 庫文檔, 以了解有關 Commons 腳本庫及其用法的更多資訊。

查看預設腳本

若要查看某個階段中執行的預設腳本,請檢查該階段的日誌。 例如,在 scan-artifact 階段:

=== Executing custom script for stage 'scan-artifact' ===

The custom script can be viewed using the following link: '<SCRIPT URL>'

You can customize this stage in your pipeline config. For more information, see [Custom scripts](/docs/devsecops?topic=devsecops-cd-devsecops-pipelines-custom-customize).

The script(s) used in this stage can be found at the following location(s):

- path: scan-artifact
  repo: <REPO URL>
  sha: b0fff29d715e0f9a33b3c84e649777cfb9d40738
- path: icr-va
  repo: <REPO URL>
  sha: de693814ba2bd992941b432fc71111efb54e2b27

Using the following defaults for stage "scan-artifact":

scan-artifact:
  image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.12@sha256:ff4053b0bca784d6d105fee1d008cfb20db206011453071e86b69ca3fde706a4
  dind: false
  abort_on_failure: false
  image_pull_policy: IfNotPresent
  script: |
    #!/bin/sh

    "/opt/commons/scan-artifact/scan.sh"

該訊息分為三個部分:

  1. 第一行顯示目前正在執行的精確腳本 URL,在提交層級上指向它。

  2. 第二部分是在建置期間導入到管道基礎映像的路徑、儲存庫和提交雜湊的清單。 它們不會在運行時從這些存儲庫中提取。 這些資訊提高了公眾對管道中具體內容的可追溯性。

  3. 第三部分是用作配置 YAML 的預設配置。 您可以取得此 YAML 片段並將其包含在DevSecOps設定 YAML 檔案中。 此操作將覆寫您的預設配置,但仍使用基礎映像中的預設腳本。 如果您想在預設檢查之前實施一些其他檢查,則此方法很有用。

顯示此資訊是為了幫助採用者識別預設情況下分階段運行的 公共腳本庫 中的腳本和函數。 最終,他們可以檢查腳本,了解它們的作用,將腳本複製到腳本集合中,並更新它們以適應他們的用例。

使用 Commons Scripts 庫進行自訂

共用資料庫也可以作為複製代碼的來源,並針對特定的邊緣情況進行客製化。 使用該庫作為起點,根據各種要求建立自訂腳本。

請參閱 此處 以了解有關管道定制的更多信息

最佳作法

  • 使用 commons 庫作為管道機制的參考。
  • 自訂預設腳本以滿足特定的邊緣情況。
  • 使用 collect-evidence 腳本收集自訂腳本中的證據。