통합 구성

SDLC 통합 지점 구성 (IDE, Git 리포지토리, CI/CD, 컨테이너 레지스트리)

circle-info

프로젝트 가져오기에 대한 정보는 프로젝트 가져오기롤아웃을 참조하십시오.

조직을 생성할 때, 소프트웨어 개발 수명 주기(SDLC)의 어느 단계에 Snyk을 추가할지 결정해야 합니다.

Snyk은 먼저 취약점에 대한 가시성을 확보하고, 게이팅(gating)과 관련된 기능은 초기에 비활성화할 것을 권장합니다.

첫 번째 단계는 사용 가능한 방법 중 하나를 사용하여 프로젝트를 가져오는 것이며, 기존 이슈 및 취약점에 대한 완전한 가시성을 확보한 후 코드베이스에 새로운 이슈가 추가되는 것을 방지하기 위한 게이팅 방법을 점진적으로 도입할 수 있습니다.

circle-info

알림 설정 (이메일 알림)

  • Snyk은 프로젝트를 가져오는 동안 사용자가 대량의 알림을 받지 않도록 초기에 모든 이메일 알림을 비활성화할 것을 제안합니다.

  • 새로운 조직의 경우 그룹 레벨에서, 기존 조직의 경우 조직 레벨에서 이를 비활성화할 수 있습니다.

통합 도구

가시성을 확보하기 위해 SDLC에 Snyk을 통합하는 가장 일반적인 도구들은 다음과 같습니다.

Git 리포지토리

Snyk은 여러 Git 리포지토리와 통합하여 코드의 이슈와 취약점을 추적, 모니터링 및 수정하는 데 도움을 줄 수 있습니다.

온프레미스 Git 리포지토리가 있는 경우, 통합을 활성화하려면 Snyk Broker를 구성하고 실행해야 합니다.

리포지토리를 가져올 때 Snyk은 기본 브랜치를 스캔하고 취약점을 모니터링합니다.

모니터링은 다음과 같은 형태로 이루어집니다.

  • 작업 중이 아닐 때도 지정된 브랜치를 매일 스캔

  • 풀 리퀘스트(PR) 및 병합(Merge) 확인

Git 리포지토리의 소스 제어 스캐닝은 지원되는 대부분의 언어에 적합하지만, Artifactory와 같은 프라이빗 패키지 관리자를 사용하는 경우 프라이빗 패키지를 스캔하기 위해 이를 Snyk과 통합해야 함에 유의하십시오.

브라우저를 통해 수동으로 Git 리포지토리 통합을 통해 프로젝트를 가져오거나, snyk-api-import 도구를 사용하여 대량으로 가져오거나, 파이프라인에 삽입할 수 있는 Import Targets 엔드포인트를 사용하여 특정 리포지토리를 가져올 수 있습니다.

circle-info

Snyk 엔터프라이즈 고객의 경우, Snyk Integrations 페이지에서 GitHub Enterprise integration card를 사용할 것을 강력히 권장합니다. 반드시 GitHub Enterprise 고객이어야 이 옵션을 사용할 수 있는 것은 아닙니다. 하지만 이 옵션을 사용하면 개인용 액세스 토큰(PAT)을 사용할 수 있는 반면, GitHub 통합 카드를 통해 제공되는 OAuth는 인터페이스 액세스 측면에서 일관되지 않은 경험을 제공할 수 있습니다.

Git 리포지토리에서 프로젝트를 가져오면 Snyk PR 확인 및 자동 수정 PR을 구성할 수도 있습니다. 이러한 기능은 Git 리포지토리에 PR을 제출할 때마다 실시간으로 코드 변경 사항을 자동으로 스캔하여 새로운 보안 문제가 코드베이스에 유입되는 것을 방지할 수 있습니다.

이를 통해 제출된 모든 PR의 보안 문제를 확인함으로써 소프트웨어 개발 수명 주기 초기 단계에서 스캔 및 가시성을 확보할 수 있습니다.

circle-info

초기에 게이팅을 비활성화하려면 프로젝트가 Snyk에 온보딩될 때 자동으로 구성되는 일일 모니터링을 사용하고 구성에서 PR/MR 확인을 비활성화하십시오.

  • Snyk이 제공할 수 있는 자동 수정

    • 자동 수정 PR

    • 자동 종속성 업그레이드 PR

    • Snyk 취약점 패치

  • 다음을 위한 풀 리퀘스트 상태 확인 사용 가능

    • 오픈소스 보안 및 라이선스

    • 코드 분석

마찬가지로 수정 및 업그레이드 PR 기능을 비활성화하고 싶을 수도 있습니다.

CI/CD (빌드 파이프라인)

파이프라인의 한 단계로 빌드에 Snyk을 추가하여 취약한 애플리케이션 또는 구성 요소(레지스트리)의 배포를 방지함으로써 애플리케이션을 안전하게 유지하십시오.

CLI가 제공하는 이점:

  • Scala, Gradle, GO와 같은 특정 패키지 관리자에 대한 최적의 정확도

  • 빌드 환경이 프라이빗 패키지에 액세스할 수 있는 경우 추가 통합 구성 없이 프라이빗 패키지 지원

  • 빌드를 중단하고 Snyk에 보고하거나 Snyk에만 보고하여 프로덕션으로 푸시되는 구성 요소에 대한 가시성 제공

사용할 수 있는 여러 CI/CD 통합이 있으며, 실행 중인 테스트에서 더 많은 유연성을 갖기 위해 파이프라인의 일부로 Snyk CLI를 사용할 수도 있습니다.

초기 단계에서 Snyk은 발견된 이슈를 볼 수 있도록 Snyk으로 정보를 가져오는 monitor 기능을 사용할 것을 권장합니다(이미 소스 제어 통합을 사용하여 이를 달성하고 있지 않은 경우). 나중에 새로운 취약점이 추가되는 것을 게이팅하고 차단하고 싶을 때 test 기능을 도입할 수 있습니다. 처음에는 치명적인 이슈에 대해 빌드를 실패시키고 시간이 지남에 따라 실패 기준을 점진적으로 조정하십시오.

circle-info

snyk iac test --report의 경우, 이슈를 발견하면 빌드가 0이 아닌 응답 코드로 중지될 수 있습니다.

이를 수동적으로 테스트하려는 경우, --report 옵션을 포함하려면 빌드 단계를 항상 계속하도록 설정하거나 "or true"에 해당하는 논리를 연결하는 대안(예: snyk iac test --report || true)이 필요합니다. 정확한 구문은 CLI가 실행되는 에코시스템에 따라 다릅니다.

고급 필터링을 위한 snyk-filter와 새로운 이슈를 강조하기 위한 snyk-delta와 같은 도구는 파이프라인 구성에 매우 인기가 있습니다.

다양한 파이프라인 통합 데모는 Snyk-Labsarrow-up-right에서 찾을 수 있습니다.

Last updated