配置 GoSec 掃描

使用 gosec 檢查 Golang 掃描套件庫中的原始碼。

必要參數

管線需要表格 1 中的參數才能執行 Gossec 掃描。 如需管線參數的完整清單,請參閱 管線參數

gosec 掃描參數
名稱 類型 說明 必要或選用
opt-in-gosec text 若要啟用 gosec 掃描,請將該屬性設定為任何非空值。 若要停用掃描,請將其設定為空值或完全移除該屬性。 (預設為空) 必須

對專用 Git 儲存庫啟用 gosec 掃描

如果您的專案需要位於專用 Git 儲存庫中的相依關係,因此需要 SSH 型鑑別,您可以提供選用參數來啟用管線以擷取相依關係。 如需相關資訊,請參閱 啟用下載專用儲存庫的相依關係

如果必須指定代理才能擷取依賴項目,您可以使用管道參數指定其 URL 以及憑證 (使用者名稱和標記)。 如需相關資訊,請參閱 啟用 GOPROXY

啟用下載專用儲存庫的相依關係

提供下列所有管線參數,即可啟用下載儲存庫的相依關係。

管線參數
名稱 類型 說明 必要或選用
gosec-private-repository-url 文本 (已被廢棄) 您的私有資源庫基礎 URL. 可选
gosec-private-repository-host text 您的私人儲存庫主機。 可选
gosec-private-repository-ssh-key secret 私人儲存庫的 SSH 金鑰 可選項
gosec-private-repository-user 文本 具有 https 存取權限的私人儲存庫使用者(預設為 x-oauth-basic 可選
gosec-private-repository-token secret 用于 https 访问私有仓库的令牌(默认为工具链中第一个 git 集成配置的令牌,其仓库 URL 托管在 gosec-private-repository-host's 值上)。 可选

啟用 GOPROXY

如果必須指定 GOPROXY,則必須提供下列所有參數。

GOPROXY 參數
名稱 類型 說明 必要或選用
gosec-proxy-virtual-repository-user text gosec Proxy 的虛擬儲存庫使用者 選用
gosec-proxy-virtual-repository-token secret gosec Proxy 的虛擬儲存庫記號 選用
gosec-proxy-virtual-repository-url text gosec Proxy 的虛擬儲存庫 URL optional

選用參數

gosec-scan-image 參數可用來指定要使用的不同 gosec 映像檔,例如自訂映像檔或官方 gosec 映像檔的特定版本。

gosec-additional-flags 標誌的使用方法請參閱 範例 部分

gosec 可選參數
參數名稱 預設值 說明
gosec-additional-flags text 要附加至 gosec 指令開頭的其他旗標。
gosec-scan-image text 指定替代 gosec 映像檔,包括自訂映像檔或官方映像檔的特定版本。
gosec-repo-path-$repo_owner-$repo_name text Go 模組根所在的儲存庫內的子目錄路徑。 當 go.mod 不在套件庫的根目錄時,以每個套件庫為基礎使用。

範例

gosec-additional-flags 的值定義為 -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true,並將 gosec 指令執行更新為:

./gosec -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true -no-fail -fmt=json -out=gosec-results.json -stdout -verbose=text ./...

若要掃描位於子目錄中的 Go 模組,請設定 gosec-repo-path-$repo_owner-$repo_name 參數。 例如,如果您的儲存庫擁有者是 myorg,儲存庫名稱是 myrepo,而 Go 模組在 cmd/myapp 目錄下,請將參數定義為:

  • 參數名稱:gosec-repo-path-myorg-myrepo
  • 參數值:cmd/myapp

這會掃描從 cmd/myapp 路徑開始的 Go 程式碼,而不是套件庫的根目錄。

使用您自己的配置檔

如果您要修改預設配置,請在目標儲存庫中建立 config.json 檔。 如需配置檔中分析參數的相關資訊,請參閱 gosec 配置

使用另一個靜態掃描實作

如果您想要使用您自己的靜態掃描實作,請修改 .pipeline-config.yaml 檔,並將您自己的自訂 Script 新增至 static-scan 階段。 如需相關資訊,請參閱 自訂 Script