--severity-threshold=low|medium|high|critical 지정된 수준 이상의 취약점만 보고합니다.
--fail-on=all 업그레이드 또는 패치 가능한 취약점이 하나 이상 있는 경우 실패합니다.
--fail-on=upgradable 업그레이드 가능한 취약점이 하나 이상 있는 경우 실패합니다.
--fail-on=patchable 패치 가능한 취약점이 하나 이상 있거나 패치 또는 업그레이드 가능한 취약점이 있는 경우 실패합니다.
Snyk CLI 자체는 더 복잡한 사용 사례에서 테스트를 실패시키는 기능을 기본적으로 가지고 있지 않습니다. 여기에 더 복잡한 통과/실패 기준을 달성하는 몇 가지 방법이 있습니다.
보안 정책과 --severity-threshold 결합
보안 정책은 프로젝트가 해당 정책을 사용하는 조직에 대해 테스트되고 심각도가 특정 기준과 일치할 때 취약점의 심각도를 변경하는 기능을 제공합니다. 예를 들어 취약점의 심각도를 높음에서 낮음으로 변경할 수 있으며 --severity-threshold=medium|high 옵션과 함께 snyk test를 실행하면 이전에 높음 심각도였던 취약점이 더 이상 빌드를 실패시키지 않습니다.
보안 정책에는 기준 일치에 사용할 수 있는 모든 속성이 없습니다. 사용 가능한 속성은 보안 정책 구성을 참조하십시오.
다음은 정책이 적용되지 않은 기본 조직에 대해 --severity-threshold=high 옵션과 함께 snyk test를 실행하는 예시입니다.
정책이 적용되지 않은 기본 조직에 대한 테스트
다음 예시는 이 특정 취약점의 심각도를 low로 낮추는 정책이 있는 조직에 대해 --severity-threshold=high 옵션과 함께 snyk test 명령을 실행하는 것을 보여줍니다. 발견된 취약점은 없습니다.
정책이 적용된 조직에 대한 테스트
보조 도구
CLI에는 오픈소스 스캔 snyk-delta 및 snyk-filter에 대한 보조 도구가 있습니다.
snyk-delta는 현재 테스트와 이전에 모니터링된 스냅샷 간의 취약점 차이점을 찾습니다. 이 도구는 npmjs.org에서 사용할 수 있으며 npm install -g snyk-delta를 실행하여 CI/CD 파이프라인으로 가져올 수 있습니다.
snyk-filter는 snyk test JSON 출력에서 사용 가능한 데이터를 기반으로 사용자 정의 통과/실패 기준을 제공합니다. 이 도구는 npmjs.org에서 사용할 수 있으며 npm install -g snyk-filter를 실행하여 CI/CD 파이프라인으로 가져올 수 있습니다.
새로운 취약점이 도입되는 경우에만 현재 빌드 실패
snyk delta의 인라인 모드
간단한 예: snyk test --json --print-deps | snyk-delta
이 예시는 조직 및 프로젝트 좌표를 지정하여 특정 스냅샷을 가리킬 수 있습니다.
snyk test --json --print-deps | snyk-delta --baselineOrg xxx --baselineProject xxx