
Trivy स्कैनिंग के लिए GitLab CI घटक
ट्रिवी के लिए एक गिटलैब CI घटक — एक ऑल-इन-वन सुरक्षा स्कैनर जो कंटेनर इमेज, फाइलसिस्टम, रिपॉजिटरी, कुबरनेट्स क्लस्टर, SBOM और लाइसेंस अनुपालन को कवर करता है। इन टेम्प्लेट को सीधे अपने पाइपलाइन में प्लग करें और लगभग बिना किसी शेल स्क्रिप्टिंग के दोहराए जाने योग्य स्कैन, गिटलैब-मूल रिपोर्ट और पोर्टेबल आर्टिफैक्ट प्राप्त करें।
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
stages:
- test
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
inputs:
job_name: "security:remote"
TRIVY_SCAN_REMOTE_IMAGE: "registry.gitlab.com/group/app:latest"
severity: "CRITICAL,HIGH,MEDIUM"
exit_on_vulnerability: true
stages:
- test
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
inputs:
job_name: "security:local"
TRIVY_SCAN_LOCAL_IMAGES: "dist/"
TRIVY_SCANNERS: "vuln,secret"
exit_on_vulnerability: false
stages:
- test
नीचे प्रत्येक टेम्पलेट घटक विनिर्देश में परिभाषित अपने उपलब्ध इनपुट और डिफ़ॉल्ट को सूचीबद्ध करता है, इसके बाद एक न्यूनतम कार्यशील उदाहरण दिया गया है।
templates/main.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/main@latest
inputs:
job_name: "trivy:basic"
TRIVY_SCAN_REMOTE_IMAGE: "nginx:latest"
templates/target_container.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_container@latest
inputs:
job_name: "trivy:containers"
TRIVY_SCAN_REMOTE_IMAGE: "registry.gitlab.com/group/service:latest"
TRIVY_SCANNERS: "vuln,secret"
exit_on_vulnerability: true
templates/target_filesystem.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_filesystem@latest
inputs:
TRIVY_FS_PATH: "services/api"
TRIVY_SCANNERS: "vuln,misconfig,secret"
templates/target_rootfs.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_rootfs@latest
inputs:
TRIVY_ROOTFS_PATH: "/mnt/root"
TRIVY_SCANNERS: "vuln"
templates/target_repository.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_repository@latest
inputs:
TRIVY_REPO_TARGET: "https://github.com/aquasecurity/trivy"
TRIVY_REPO_BRANCH: "main"
templates/target_vm.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_vm@latest
inputs:
TRIVY_VM_TARGET: "ami-0123456789abcdef0"
TRIVY_AWS_REGION: "us-east-1"
templates/target_kubernetes.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/target_kubernetes@latest
inputs:
TRIVY_K8S_OBJECT: "namespace/prod"
TRIVY_K8S_REPORT: "summary"
templates/scanner_iac_config.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/scanner_iac_config@latest
inputs:
TRIVY_CONFIG_PATH: "examples/iac/terraform"
severity: "CRITICAL,HIGH,MEDIUM"
templates/scanner_license.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/scanner_license@latest
inputs:
TRIVY_SCAN_LOCAL_IMAGES: "test.tar"
TRIVY_LICENSE_FULL: true
templates/sbom_generate_image.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/sbom_generate_image@latest
inputs:
TRIVY_SBOM_INPUT: "test.tar"
TRIVY_SBOM_FILENAME: "ci-image-sbom.cdx.json"
templates/sbom_generate_repo.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/sbom_generate_repo@latest
inputs:
TRIVY_REPO_TARGET: "."
TRIVY_SBOM_FORMAT: "spdx-json"
templates/sbom_generate_kbom.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/sbom_generate_kbom@latest
inputs:
TRIVY_K8S_TARGET: "namespace/default"
scan_kbom: true
templates/sbom_scan_file.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/sbom_scan_file@latest
inputs:
TRIVY_SBOM_PATH: "artifacts/trivy/ci-image-sbom.cdx.json"
TRIVY_SCANNERS: "vuln,license"
templates/sbom_scan_rekor.ymlउदाहरण
include:
- component: $CI_SERVER_FQDN/niclas-zone/ci/trivy/sbom_scan_rekor@latest
inputs:
TRIVY_SCAN_REMOTE_IMAGE: "registry.gitlab.com/group/app@sha256:..."
TRIVY_REKOR_URL: "https://rekor.sigstore.dev"
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | CI नौकरी का नाम | "trivy scanning" |
stage | पाइपलाइन चरण | "test" |
image | Trivy चलाने वाली कंटेनर इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_NEEDED_STAGE | वह चरण जो Trivy चलने से पहले पूरा होना चाहिए | "build" |
TRIVY_SCAN_REMOTE_IMAGE | स्कैन करने के लिए दूरस्थ इमेज | "" |
TRIVY_SCAN_LOCAL_IMAGES | tar/OCI इनपुट का पथ (खाली होने पर . खोजता है) | "" |
TRIVY_SCANNERS | अल्पविराम से अलग किए गए स्कैनर | "vuln,secret,misconfig" |
severity | शामिल करने के लिए गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | समस्याएँ मिलने पर नौकरी विफल करें | true |
TRIVY_EXTRA_ARGS | अतिरिक्त CLI फ़्लैग | "" |
allow_failure | पाइपलाइन विफल किए बिना नौकरी विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | CI नौकरी का नाम | "trivy:scan:containers" |
stage | पाइपलाइन चरण | "test" |
image | Trivy कंटेनर इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_SCAN_REMOTE_IMAGE | दूरस्थ इमेज संदर्भ | "" |
TRIVY_SCAN_LOCAL_IMAGES | स्थानीय स्कैन के लिए निर्देशिका/tar | "" |
TRIVY_SCANNERS | सक्षम स्कैनर | "vuln,secret,misconfig" |
TRIVY_IMAGE_SRC | इमेज स्रोत बैकएंड (remote/docker/...) | "" |
severity | गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | गंभीरता मिलान पर विफल करें | true |
TRIVY_IGNORE_UNFIXED | बिना फिक्स वाली समस्याओं को अनदेखा करें | true |
TRIVY_PKG_TYPES | पैकेज प्रकार | "os,library" |
TRIVY_VULN_TYPE | पैकेज प्रकारों के लिए अप्रचलित उपनाम | "" |
TRIVY_TIMEOUT | कमांड टाइमआउट | "10m" |
TRIVY_EXTRA_ARGS | अतिरिक्त CLI आर्ग | "" |
TRIVY_DB_REPOSITORY | कस्टम DB मिरर | "" |
TRIVY_JAVA_DB_REPOSITORY | कस्टम Java DB मिरर | "" |
TRIVY_SKIP_FILES | फ़ाइल ग्लोब बहिष्करण | "" |
TRIVY_SKIP_DIRS | निर्देशिका बहिष्करण | "" |
allow_failure | पाइपलाइन विफल किए बिना विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | CI नौकरी का नाम | "trivy:scan:filesystem" |
stage | पाइपलाइन चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_FS_PATH | स्कैन करने के लिए फ़ाइल या निर्देशिका | "." |
TRIVY_SCANNERS | सक्षम स्कैनर | "vuln,secret" |
severity | गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | गंभीरता मिलान पर विफल करें | true |
TRIVY_IGNORE_UNFIXED | अनफिक्स्ड समस्याओं को अनदेखा करें | true |
TRIVY_PKG_TYPES | पैकेज प्रकार | "os,library" |
TRIVY_TIMEOUT | टाइमआउट | "10m" |
TRIVY_SKIP_FILES | छोड़ने के लिए फ़ाइल ग्लोब | "" |
TRIVY_SKIP_DIRS | छोड़ने के लिए निर्देशिकाएँ | "" |
TRIVY_EXTRA_ARGS | अतिरिक्त CLI आर्ग | "" |
TRIVY_REPORT_BASENAME | आर्टिफैक्ट आधार नाम | "filesystem-scan" |
allow_failure | नौकरी विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:scan:rootfs" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_ROOTFS_PATH | रूट फाइलसिस्टम पथ | "/" |
TRIVY_SCANNERS | स्कैनर | "vuln,secret" |
severity | गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | निष्कर्षों पर नौकरी विफल करें | true |
TRIVY_IGNORE_UNFIXED | अनफिक्स्ड को अनदेखा करें | true |
TRIVY_PKG_TYPES | पैकेज प्रकार | "os,library" |
TRIVY_TIMEOUT | टाइमआउट | "10m" |
TRIVY_SKIP_FILES | छोड़ने के लिए फ़ाइलें | "" |
TRIVY_SKIP_DIRS | छोड़ने के लिए निर्देशिकाएँ | "" |
TRIVY_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
TRIVY_REPORT_BASENAME | आर्टिफैक्ट आधार नाम | "rootfs-scan" |
allow_failure | विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:scan:repo" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_REPO_TARGET | स्थानीय पथ या Git URL | "." |
TRIVY_REPO_BRANCH | दूरस्थ शाखा | "" |
TRIVY_REPO_COMMIT | कमिट हैश | "" |
TRIVY_REPO_TAG | टैग नाम | "" |
TRIVY_SCANNERS | स्कैनर | "vuln,secret" |
severity | गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | निष्कर्षों पर नौकरी विफल करें | true |
TRIVY_IGNORE_UNFIXED | अनफिक्स्ड को अनदेखा करें | true |
TRIVY_TIMEOUT | टाइमआउट | "10m" |
TRIVY_SKIP_FILES | छोड़ने के लिए फ़ाइलें | "" |
TRIVY_SKIP_DIRS | छोड़ने के लिए निर्देशिकाएँ | "" |
TRIVY_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
TRIVY_REPORT_BASENAME | आर्टिफैक्ट आधार नाम | "repo-scan" |
allow_failure | विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:scan:vm" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_VM_TARGET | स्थानीय पथ या ami:/ebs: पहचानकर्ता | "" |
TRIVY_AWS_REGION | AMI/EBS स्कैन के लिए AWS क्षेत्र | "" |
TRIVY_SCANNERS | स्कैनर | "vuln" |
severity | गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | निष्कर्षों पर नौकरी विफल करें | true |
TRIVY_IGNORE_UNFIXED | अनफिक्स्ड को अनदेखा करें | true |
TRIVY_TIMEOUT | टाइमआउट | "20m" |
TRIVY_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
TRIVY_REPORT_BASENAME | आर्टिफैक्ट आधार नाम | "vm-scan" |
allow_failure | विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:scan:k8s" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_K8S_OBJECT | दायरा (cluster, namespace/foo, आदि) | "" |
TRIVY_K8S_REPORT | रिपोर्ट विस्तार (summary/all) | "summary" |
TRIVY_K8S_KUBECONFIG | कस्टम kubeconfig पथ | "" |
TRIVY_K8S_INCLUDE_NAMESPACES | शामिल करने के लिए नामस्थान | "" |
TRIVY_K8S_EXCLUDE_NAMESPACES | बाहर करने के लिए नामस्थान | "" |
TRIVY_K8S_INCLUDE_KINDS | शामिल करने के लिए प्रकार | "" |
TRIVY_K8S_EXCLUDE_KINDS | बाहर करने के लिए प्रकार | "" |
TRIVY_K8S_SKIP_IMAGES | वर्कलोड इमेज स्कैन छोड़ें | false |
TRIVY_K8S_DISABLE_NODE_COLLECTOR | नोड संग्राहक अक्षम करें | false |
TRIVY_SCANNERS | स्कैनर | "vuln,misconfig,secret" |
severity | गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | निष्कर्षों पर नौकरी विफल करें | true |
TRIVY_IGNORE_UNFIXED | अनफिक्स्ड को अनदेखा करें | true |
TRIVY_TIMEOUT | टाइमआउट | "15m" |
TRIVY_K8S_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
TRIVY_REPORT_BASENAME | आर्टिफैक्ट आधार नाम | "k8s-scan" |
allow_failure | विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:scan:iac" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_CONFIG_PATH | IaC निर्देशिका | "." |
severity | गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | निष्कर्षों पर विफल करें | true |
TRIVY_CONFIG_REPORT | रिपोर्ट विस्तार | "all" |
TRIVY_CONFIG_INCLUDE_NON_FAILURES | पास को शामिल करें | false |
TRIVY_MISCONFIG_SCANNERS | मिसकॉन्फ़िग स्कैनर सूची | "azure-arm,cloudformation,dockerfile,helm,kubernetes,terraform" |
TRIVY_TIMEOUT | टाइमआउट | "10m" |
TRIVY_SKIP_FILES | छोड़ने के लिए फ़ाइलें | "" |
TRIVY_SKIP_DIRS | छोड़ने के लिए निर्देशिकाएँ | "" |
TRIVY_CONFIG_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
TRIVY_REPORT_BASENAME | आर्टिफैक्ट आधार नाम | "iac-scan" |
allow_failure | विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:scan:license" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_SCAN_REMOTE_IMAGE | दूरस्थ इमेज संदर्भ | "" |
TRIVY_SCAN_LOCAL_IMAGES | स्थानीय tar/OCI या फाइलसिस्टम पथ | "" |
TRIVY_SCANNERS | स्कैनर सूची | "license" |
severity | गंभीरताएँ | "CRITICAL" |
exit_on_vulnerability | गंभीरता मिलान पर विफल करें | true |
TRIVY_LICENSE_FULL | --license-full सक्षम करें | false |
TRIVY_LICENSE_CONFIDENCE | आत्मविश्वास सीमा | "0.9" |
TRIVY_LICENSE_IGNORED | अनदेखा करने के लिए लाइसेंस | "" |
TRIVY_PKG_TYPES | पैकेज प्रकार | "os,library" |
TRIVY_TIMEOUT | टाइमआउट | "10m" |
TRIVY_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
allow_failure | विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:sbom:image" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_SBOM_IMAGE | दूरस्थ इमेज संदर्भ | "" |
TRIVY_SBOM_INPUT | स्थानीय OCI/tar इनपुट | "" |
TRIVY_SBOM_FORMAT | SBOM प्रारूप | "cyclonedx" |
TRIVY_SBOM_FILENAME | आउटपुट फ़ाइल नाम | "image-sbom.cdx.json" |
TRIVY_SBOM_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
TRIVY_TIMEOUT | टाइमआउट | "10m" |
allow_failure | विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:sbom:repo" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_REPO_TARGET | पथ या दूरस्थ Git URL | "." |
TRIVY_REPO_BRANCH | शाखा | "" |
TRIVY_REPO_COMMIT | कमिट हैश | "" |
TRIVY_REPO_TAG | टैग | "" |
TRIVY_SBOM_FORMAT | प्रारूप | "cyclonedx" |
TRIVY_SBOM_FILENAME | आउटपुट फ़ाइल नाम | "repo-sbom.cdx.json" |
TRIVY_REPO_SCANNERS | SBOM निर्माण के दौरान स्कैनर | "vuln,secret" |
TRIVY_REPO_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
TRIVY_TIMEOUT | टाइमआउट | "10m" |
allow_failure | विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:sbom:kbom" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_K8S_TARGET | trivy k8s लक्ष्य (cluster, namespace/...) | "cluster" |
TRIVY_K8S_CONTEXT | Kubeconfig संदर्भ | "" |
TRIVY_K8S_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
TRIVY_SBOM_FILENAME | KBOM फ़ाइल नाम | "kbom.cdx.json" |
TRIVY_TIMEOUT | टाइमआउट | "15m" |
scan_kbom | उत्पन्न KBOM पर भेद्यता स्कैन चलाएँ | true |
TRIVY_SBOM_SCANNERS | KBOM स्कैन के लिए स्कैनर | "vuln" |
severity | KBOM स्कैन के लिए गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | निष्कर्षों पर विफल करें | true |
TRIVY_SBOM_SCAN_EXTRA_ARGS | KBOM स्कैन के लिए अतिरिक्त आर्ग | "" |
allow_failure | विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:scan:sbom" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_SBOM_PATH | SBOM फ़ाइल का पथ | "artifacts/trivy/image-sbom.cdx.json" |
TRIVY_SBOM_REPORT_BASENAME | आउटपुट आधार नाम | "sbom-scan" |
TRIVY_SCANNERS | चलाने के लिए स्कैनर | "vuln,license" |
severity | गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | निष्कर्षों पर विफल करें | true |
TRIVY_SBOM_SCAN_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
TRIVY_TIMEOUT | टाइमआउट | "10m" |
allow_failure | विफलता की अनुमति दें | false |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
job_name | नौकरी का नाम | "trivy:scan:rekor" |
stage | चरण | "test" |
image | Trivy इमेज | "ghcr.io/aquasecurity/trivy:0.68.1" |
TRIVY_SCAN_REMOTE_IMAGE | प्रमाणित दूरस्थ इमेज | "" |
TRIVY_REKOR_URL | Rekor API एंडपॉइंट | "" |
TRIVY_SCANNERS | स्कैनर | "vuln" |
severity | गंभीरताएँ | "CRITICAL,HIGH" |
exit_on_vulnerability | निष्कर्षों पर विफल करें | true |
TRIVY_IGNORE_UNFIXED | अनफिक्स्ड को अनदेखा करें | true |
TRIVY_TIMEOUT | टाइमआउट | "10m" |
TRIVY_EXTRA_ARGS | अतिरिक्त आर्ग | "" |
allow_failure | विफलता की अनुमति दें | false |