配置 GoSec 掃描
使用 gosec 檢查 Golang 掃描套件庫中的原始碼。
必要參數
管線需要表格 1 中的參數才能執行 Gossec 掃描。 如需管線參數的完整清單,請參閱 管線參數。
| 名稱 | 類型 | 說明 | 必要或選用 |
|---|---|---|---|
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,則必須提供下列所有參數。
| 名稱 | 類型 | 說明 | 必要或選用 |
|---|---|---|---|
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-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。