롤아웃 통합 선택

SDLC 통합 지점

Snyk은 SDLC의 모든 단계에 원활하게 통합되는 다양한 통합 기능을 제공합니다.

많은 기업들이 일반적으로 자동화된 솔루션을 먼저 롤아웃한 다음, 개발자를 지원하기 위한 도구를 서서히 도입합니다. 또한, 중단을 최소화하기 위해 게이팅(gating) 기능은 일정 기간에 걸쳐 점진적으로 활성화됩니다.

circle-info

여러 통합 기능을 사용하면 문제 보고가 중복될 수 있으므로, 처음부터 두 가지 이상의 통합 유형을 구현할 필요는 없습니다. 예를 들어, 처음에 Git 리포지토리를 통해 모든 것을 가져온 다음, 나중에 세부적인 확인을 위해 CI/CD 보기를 사용할 수 있습니다(두 보기를 모두 원하지 않는 경우 소스 제어 통합을 제거할 수도 있음).

통합 유형

아래는 전형적인 초기 통합 기능들입니다.

소스 코드 관리 (SCM) 통합

GitHub, GitLab, Azure Repos, Bitbucket과 같은 인기 있는 버전 관리 플랫폼과의 통합을 통해 Snyk 보안 검사를 코드 리뷰 프로세스에 원활하게 통합할 수 있습니다. 이를 통해 코드가 메인 브랜치에 병합되기 전에 잠재적인 취약점을 식별하고 해결할 수 있습니다. 주요 기능은 다음과 같습니다.

  • 지정된 브랜치(일반적으로 "development" 브랜치)에 대한 일일 테스트/모니터링.

  • (선택 사항) 리포지토리의 모든 브랜치에 대한 풀 리퀘스트/병합 리퀘스트 검사.

  • (선택 사항) 풀 리퀘스트를 사용한 자동 종속성 업그레이드 및 자동 보안 수정 업그레이드.

장점:

  • 리포지토리 보안 상태에 대한 가시성 확보

  • 코드 변경 시 자동 스캔 수행

  • 개발자에게 문제에 대한 즉각적인 피드백 제공

  • UI를 사용하여 리포지토리 온보딩 구성 가능

  • 팀 플랜에서 클라우드 리포지토리 지원

자세한 내용은 Git 리포지토리 (SCM)를 참조하십시오.

circle-info

클라우드 외부를 향하거나 자체 인스턴스의 Git SCM을 사용하는 경우:

  • Snyk이 리포지토리와 통신할 수 있도록 Snyk Broker 배포를 고려하십시오. 이 경우 Snyk 엔터프라이즈 플랜이 필요합니다.

  • 엔터프라이즈 고객은 API를 사용하여 Snyk Broker를 활성화하고 관리할 수 있습니다.

Broker 배포를 지원하기 위해 유료 서비스를 이용할 수 있습니다.

지속적 통합/지속적 배포 (CI/CD) 파이프라인 통합

Jenkins, Travis CI 또는 CircleCI와 같은 CI/CD 파이프라인에 Snyk을 통합하면 빌드 및 배포 프로세스 중에 보안 검사를 자동화할 수 있습니다. 이를 통해 소프트웨어 개발 수명 주기 초기에 취약점을 감지하고 프로덕션으로의 확산을 방지할 수 있습니다. 주요 기능은 다음과 같습니다.

  • (선택 사항) 빌드 중 결과를 수동적으로 모니터링하고 Snyk에서 결과를 확인하는 기능

  • (선택 사항) 지정한 기준에 따라 빌드를 테스트하고 잠재적으로 중단시키는 기능

  • 특정 마켓플레이스 플러그인을 사용하거나, 보다 일반적으로는 파이프라인 스크립트의 일부로 CLI를 사용하여 통합을 달성할 수 있습니다.

장점:

  • 로컬 코드 취약점 평가

  • 테스트에 대한 완전한 제어 (어떤 테스트를 실행할지, 빌드 스크립트의 어느 위치에서 실행할지)

  • CI/CD를 사용하여 자동화 가능

자세한 내용은 Snyk CI/CD 통합을 참조하십시오.

통합 개발 환경 (IDE) 통합

Visual Studio Code, IntelliJ IDEA, Eclipse와 같은 IDE 통합을 통해 개발자는 코딩 환경 내에서 직접 Snyk의 보안 기능에 액세스할 수 있습니다. 이를 통해 개발자가 코드를 작성하는 가장 초기 단계에서 실시간 스캔 및 문제 해결이 가능해집니다.

자세한 내용은 IDE에서 Snyk 사용을 참조하십시오.

가져오기 전략 고려 사항

프로젝트 가져오기 전략
고려 사항
장점
단점

CLI (자동화된 CI/CD)

CI/CD 내의 각 애플리케이션에 대해 구성되어야 함.

  • 테스트할 항목과 시기를 선택 가능 (즉, 어떤 패키지 관리자, 프로세스의 어느 지점, 분석할 언어).

  • 통합을 위해 개발 노력이 필요할 수 있음.

애플리케이션별로 구성이 필요함.

CLI (사용자가 로컬에서 실행)

사용자가 애플리케이션 작업 중에 로컬에서 테스트를 수행하기 위해 CLI 사용 가능. 스캔 유형별로 매우 유연하게 구성 가능.

로컬 사용 사례

가시성이나 자동화가 목적이 아님. 빌드 가능한 코드나 종속성 설치가 필요할 수 있음 (예: 잠금 파일 없는 Gradle, Scala).

Git 코드 리포지토리 통합

온보딩 및 일일 모니터링: 애플리케이션 포트폴리오 전반에 걸친 신속한 취약점 평가.

  • 리포지토리에 대한 지속적인 모니터링 (작업 중이 아닐 때도 포함).

  • 팀을 위한 중앙 집중식 가시성.

  • 지정된 브랜치 모니터링.

  • 코드를 빌드할 필요 없음.

  • UI를 통해 시작 가능.

  • 일부 언어/패키지 관리자는 CLI를 활용할 때 해결 능력이 더 좋음 (잠금 파일 없는 Gradle, Scala).

풀 리퀘스트(PR)/병합 리퀘스트(MR) 스캔

리포지토리의 모든 브랜치에 대해 PR/MR에서 도입된 문제에 대한 즉각적인 피드백 제공.

통과/실패를 위한 구성 가능한 규칙

추가 고려 사항

코드형 인프라 (Infrastructure as Code)

Snyk Infrastructure as Code의 경우, 일반적으로 Terraform 또는 YAML 구성 파일이 SCM에 보관되지만 별도의 영역이나 리포지토리에 있을 수도 있습니다. 따라서 가져와야 할 다른 영역이 있는지 고려하십시오. 또한 "Terraform 실행" 프로세스의 일부로 Snyk 테스트를 활성화하기 위해 Terraform Cloud(해당하는 경우)와 통합할 수도 있습니다.

복잡한 환경, 모듈 및 템플릿화가 많이 된 구현의 경우, Terraform Plan 파일에 CLI를 활용하는 것이 가장 좋은 결과를 제공할 수 있습니다.

CR (컨테이너 레지스트리)

Snyk은 또한 다양한 컨테이너 레지스트리와 통합하여 컨테이너를 가져오고 취약점을 모니터링할 수 있게 해줍니다. Snyk은 가져온 컨테이너에 대해 제어 가능한 빈도로 발견된 알려진 보안 취약점을 테스트합니다.

Last updated