CI/CD 통합의 Snyk 테스트 및 Snyk 모니터
Snyk 오픈소스 프로젝트에 대한 접근 방식과 목표에 따라 파이프라인에서 snyk monitor 및 snyk test 명령을 모두 사용해야 할 수도 있습니다. 예시 및 세부 정보는 다음과 같습니다.
빌드 파이프라인의 CLI 예시
취약점을 노출하고 지속적인 모니터링을 위해 Snyk UI에 게시하려면 snyk monitor를 사용하십시오.
snyk monitor --all-projects --org=snyk-apps심각도가 높은 문제에 대해 빌드를 실패시키려면 snyk test를 사용하십시오.
snyk test --all-projects --org=snyk-apps --severity-threshold=highCLI의 모든 옵션 목록을 보려면 snyk test --help, snyk monitor --help, snyk container --help 명령을 실행하거나 CLI 도움말을 참조하십시오.
종료 코드
snyk test 명령은 동기식입니다. 종료 코드로 끝납니다. 빌드 시스템은 테스트 결과를 기반으로 빌드를 통과시키거나 실패시키는 데 종료 코드를 사용할 수 있습니다. 사용 중인 명령에 대한 CLI 도움말에서 종료 코드의 의미를 찾으십시오.
snyk monitor 명령은 프로젝트의 종속성 트리의 스냅샷을 Snyk 계정에 게시하고 해당 스냅샷의 취약점을 모니터링합니다. 이는 취약점 상태를 기반으로 종료 코드 없이 끝나는 비동기 명령입니다. snyk monitor의 경우 종료 코드는 모니터링할 스냅샷 생성의 성공 또는 실패를 나타냅니다.
빌드 단계를 실패시키지 않기 위해 snyk test 명령에 대한 Snyk CLI 종료 코드를 억제하려면 명령 끝에 || true를 사용하십시오. || true는 스캔의 종료 코드를 0으로 설정합니다. 이는 취약점이 있는 경우에도 CI/CD 파이프라인을 계속 진행하는 데 사용할 수 있습니다.
CI/CD 통합의 일반적인 CLI 옵션
CI/CD 통합에서 사용되는 가장 일반적인 옵션은 다음과 같습니다.
--all-projects: 작업 디렉토리의 모든 프로젝트를 자동으로 감지합니다.
-p: 종속성 트리를 정리하여 중복된 하위 종속성을 제거합니다. 모든 취약점을 계속 찾지만 모든 취약한 경로를 찾지 못할 수도 있습니다.
--org=<ORG_ID>: 특정 조직에 대한 Snyk 명령을 실행하려면 ORG_ID를 지정합니다. 이는 monitor 명령을 실행한 후 새 프로젝트가 생성되는 위치, 일부 기능 가용성 및 개인 테스트 제한에 영향을 미칩니다. 여러 조직이 있는 경우 CLI에서 다음을 사용하여 기본값을 설정할 수 있습니다.
모든 새로 테스트되거나 모니터링되는 프로젝트가 기본 조직에서 테스트되도록 기본값을 설정합니다. 기본값을 재정의해야 하는 경우 --org=<ORG_ID> 옵션을 사용하십시오.
기본 <ORG_ID>는 Snyk 계정 설정에서 현재 선호하는 조직입니다.
빌드 실패를 위한 옵션 구성
snyk test 명령에 옵션을 추가하여 빌드 실패를 초래할 수 있는 매개변수를 구체화할 수 있습니다.
--severity-threshold=high: 심각도가 높은 문제에 대해서만 빌드를 실패시킵니다.--fail-on=upgradable: 업그레이드 가능한 문제(Snyk 수정 권고로 해결할 수 있는 문제)에 대해서만 빌드를 실패시킵니다.
snyk-filter와 같은 래퍼를 사용하거나 snyk-delta와 같은 추가 도구를 사용하여 Snyk JSON 출력의 다른 매개변수(예: CVSS 점수)에 대해 빌드를 실패시킬 수도 있습니다. 이는 마지막 빌드 이후에 발견된 문제에 대해서만 빌드를 실패시킵니다. snyk-filter 및 snyk-delta 사용에 대한 정보는 Snyk CLI에서 빌드 실패를 참조하십시오.
문제 무시
기본적으로 문제가 무시되지 않거나 snyk-delta를 사용하지 않는 경우 파이프라인의 snyk test는 문제가 발견되면 빌드를 실패시킵니다. 이러한 문제를 해결하지 않고 빌드를 계속 진행하려면 다음을 수행할 수 있습니다.
대량 무시를 위해 Snyk Python API 사용: pysnyk 및 데모 bulk-ignore-vulns-by-issueIdList 참조.
사용자 지정 빌드 아티팩트 생성
Snyk 명령의 JSON 출력을 사용하여 snyk-to-html 유틸리티 또는 개발한 다른 사용자 지정 처리를 사용하여 사용자 지정 테스트 보고서를 빌드 아티팩트로 생성할 수 있습니다. 자세한 내용은 snyk-to-html 설명서를 참조하십시오.
새로운 취약점에 대한 작업 항목 생성
Snyk은 JIRA에 새 작업 항목을 자동으로 생성할 수 있습니다. 자세한 내용은 Jira 통합 설명서를 참조하십시오. 특정 요구 사항에 맞게 이 코드를 사용자 지정하거나 다른 작업 관리 시스템과 작동하도록 조정할 수 있습니다.
시작하려면 새로운 취약점에 대한 Jira 티켓을 참조하십시오. API 엔드포인트인 Jira 문제 생성 및 모든 Jira 문제 나열도 사용할 수 있습니다.
Last updated