Snyk 오픈 소스별 CI/CD 전략
이러한 전략은 Snyk SCA (소프트웨어 구성 분석) 테스트 기능을 사용하는 팀에 유용합니다.
빌드 작업의 실패 상태를 사용자 정의하기 위해 --fail-on 및 --severity-threshold와 같은 CLI 플래그를 사용하세요. 좀 더 고급 사용을 위해서는 --json 옵션을 사용하여 전체 취약점 보고서를 포함하는 JSON 파일을 생성하고 JSON 데이터에 기반하여 자체 빌드 실패 상태를 설정할 수 있습니다.
Gradle 및 Scala
"Multi-project" 구성에서 모든 하위 프로젝트를 테스트합니다.
monitor또는test명령어와 함께 이 옵션을 사용하세요:--all-sub-projects.특정 구성을 스캔하려면 구성 속성의 특정 값들을 선택하여 종속성을 해결하세요.
test또는monitor명령어와 함께 이 옵션을 사용하세요:--configuration-attributes=.
Python
Snyk은 Python을 사용하여 종속성을 스캔하고 찾습니다. Snyk은 스캔을 시작하기 위해 Python 버전이 필요하며 기본값은
python입니다. 여러 Python 버전을 사용하는 경우, 실행에 올바른 Python 명령을 지정하기 위해test또는monitor명령어와 함께--command=옵션을 사용하세요. 다음은 예시입니다:snyk test --command=python3setup.py파일을 대상으로 설정해야 합니다. 명령어를 사용하세요snyk test --file=setup.pyPip 프로젝트를 스캔하고 사용하는 경우 표준
requirements.txt가 아닌 경우--file=옵션을 사용해야 하므로 다음 옵션을 사용하여 패키지 매니저로 Pip을 지정해야 합니다--package-manager=pip.
.NET
.sln 파일을 사용하는 경우, 파일의 경로를 지정하여 Snyk이 저장소의 일부인 모든 하위 프로젝트를 스캔합니다. 예를 들어:
snyk test --file=sln/.slnYarn
Yarn 작업 영역의 경우, --yarn-workspaces 옵션을 사용하여 패키지를 테스트하고 모니터링하세요. 루트 lockfile은 모든 패키지의 스캔에 참조됩니다. 기본적으로 자동으로 발견되지 않는 하위 폴더를 찾기 위해 --detection-depth 옵션을 사용하세요.
현재 디렉토리 및 5개의 하위 디렉토리까지 발견된 작업 영역에 속한 패키지만 스캔하는 예시 명령어가 다음과 같습니다.
snyk test --yarn-workspaces --detection-depth=6모든 검색된 작업 영역에 적용할 제왐 및 패치를 유지하기 위해 공통 .snyk 정책 파일을 사용할 수 있습니다. 이것을 위해 정책 경로를 다음과 같이 제공하세요:
snyk test --yarn-workspaces --policy-path=src/.snykMonorepo
일부 고객은 단일 저장소에 여러 언어, 패키지 매니저 및 프로젝트가 있는 복잡한 프로젝트를 가지고 있습니다. 이를 간단히하기 위해 다음과 같은 접근 방식을 취할 수 있습니다:
각 프로젝트 및 언어를 빌드할 때, 특정 프로젝트 파일을 타겟팅하는
snyk test를 실행하는 지시문을 추가하세요. 예를 들어:snyk test --file=package.json각 프로젝트의 종속성을 설치한 후,
pom.xml과 같은 특정 아티팩트를 가리키는 유사한 호출을 만들 수 있습니다. 이 방법은 빠르고 효율적이지만 프로젝트에 익숙하지 않으면 확장하기 어려울 수 있습니다.대부분의 Gradle 프로젝트의 경우,
--all-projects를 사용하면 Gradle 특정 옵션을 내부적으로 호출하므로--all-projects검색의 일부로 빌드 파일을 발견하면snyk test --file=build.gradle --all-sub-projects과 같은 형태로 동작합니다.Gradle은 추가 구성 매개변수를 필요로 할 수 있습니다. 그렇다면, 다른 언어 및 패키지 매니저의 각 manifest에 대해
--file=을 사용하여 다른 아티팩트를 타겟팅하세요. 그런 다음 복잡한 Gradle 프로젝트를 스캔하기 위해--all-sub-projects및 필요에 따라--configuration-matching을 사용해야 합니다.
더 많은 정보를 확인하려면 Java 및 Kotlin을 확인하세요.
Last updated