設定 Checkov 掃描
概觀
Checkov 是一款用於「基礎架構即代碼」( IaC )的靜態程式碼分析工具。 它會掃描雲端配置,以檢查是否存在安全與合規性的設定錯誤。 它確保:
- 「基礎架構即代碼」符合資安最佳實務。
- 會掃描諸如開放埠、硬編碼的機密資訊、過高的權限以及不安全的設定等問題。
- 適用於各類雲端平台與容器調度系統,有助於避免部署過程中的安全風險。
此掃描屬於 PR(應用程式預覽版)、CI 及 CC 管線中「合規性檢查」階段的一部分。
啟用並設定 Checkov 掃描
您可以透過兩種不同的框架來執行 Checkov 掃描:
- Terraform 計畫:對計算出的 Terraform 計畫執行 Checkov 掃描。 若要啟用此功能,請將
opt-in-checkov作為文字屬性新增至您的管線或觸發器屬性中,並將其值設定為非空字串(0除外)。 - Kubernetes: 對 Kubernetes 的清單執行 Checkov 掃描。 若要啟用此功能,請將
opt-in-checkov-kubernetes作為文字屬性新增至您的管線或觸發器屬性中,並將其值設定為非空字串(0除外)。 註:由於 Code Risk Analyzer (CRA) 已 停用,Checkov Kubernetes 掃描可作為cra-deploy-analysis的替代方案,並能產生com.ibm.code_cis_check中的相關證明。
啟用這些功能會從「合規性檢查」階段執行以下腳本:
- Checkov Scan (執行 Terraform 計畫掃描)
- Checkov Kubernetes 掃描 (執行 Kubernetes 掃描)
如果環境中尚未安裝 Checkov,這些腳本會自動進行安裝。
契訶夫參數
下列表格中所列的管道環境屬性與機密資料,用於自訂 Checkov 的掃描設定。
| 參數名稱 | 說明 |
|---|---|
checkov-args |
直接提供給 checkov 指令的額外參數。 |
tf-dir |
源儲存庫中存放 main.tf 的位置或路徑。 (預設值為 .) |
checkov-version |
若環境中尚未安裝 Checkov,請安裝此版本。 (預設會安裝最新版本) |
checkov-prisma-api-url |
Prisma Cloud API URL。 必須是 *.prismacloud.io、*.prismacloud.cn 或 *.bridgecrew.cloud 格式的網域。 |
checkov-bc-api-key |
Bridgecrew API 金鑰或 Prisma Cloud 存取金鑰。 請使用 get_secret 來檢索此資料。 |
契訶夫的證據與附件
DevSecOps 流程會將證據上傳至儲存庫,並將該證據納入變更請求的證據摘要中。
Checkov Terraform 計畫證明
下表列出了 Terraform Plan checkov 掃描的證據詳細資訊。
| 欄位 | 值 |
|---|---|
tool type |
checkov |
evidence type |
com.ibm.code_vulnerability_scan |
asset type |
repo |
attachments |
Checkov 結果 JSON 檔案 |
契訶夫 Kubernetes 證據
下表列出了「Kubernetes」checkov 掃描的證據詳情。
| 欄位 | 值 |
|---|---|
tool type |
checkov |
evidence type |
com.ibm.code_cis_check |
asset type |
repo |
attachments |
Checkov 結果 JSON 檔案 |
查看您的掃描結果
您可以透過以下方式查看您的掃描結果:
- 使用 DevSecOps/CoCoa CLI 命令列工具,依據階段日誌中顯示的資訊,從證據儲存庫下載您的掃描結果。 如需相關資訊,請參閱下列資源: