Snyk과 Maven 플러그인 통합

Snyk은 Snyk CLI를 기반으로 하는 Maven 플러그인arrow-up-right을 제공합니다. 이 플러그인을 사용하면 Maven 종속성의 취약점을 스캔하고 모니터링할 수 있습니다.

Maven Central Repositoryarrow-up-right에서 모든 릴리스를 참조하십시오.

Maven 플러그인 설치

  1. Snyk Maven 플러그인을 pom.xml에 추가하고 필요에 따라 구성합니다.

<!-- 플러그인 구성 예시 -->
<build>
  <plugins>
    <plugin>
      <groupId>io.snyk</groupId>
      <artifactId>snyk-maven-plugin</artifactId>
      <version>2.2.0</version>
      <inherited>false</inherited>
      <executions>
        <execution>
          <id>snyk-test</id>
          <goals>
            <goal>test</goal>
          </goals>
        </execution>
        <execution>
          <id>snyk-monitor</id>
          <goals>
            <goal>monitor</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <apiToken>${env.SNYK_TOKEN}</apiToken>
        <args>
          <arg>--all-projects</arg>
        </args>
      </configuration>
    </plugin>
  </plugins>
</build>

지원되는 버전

  • Java 8 이상

  • Maven 3.2.5 이상

목표

code-test (실험적)

기본 단계: test

프로젝트 소스 코드를 정적 분석하고 취약점이 발견되면 취약점 목록을 제공합니다.

container-test (실험적)

기본 단계: install

컨테이너 이미지의 레이어를 분석합니다.

스캔할 이미지 태그를 인수로 제공합니다.

test

기본 단계: test

프로젝트 종속성을 스캔하고 취약점이 발견되면 취약점 목록을 제공합니다.

monitor

기본 단계: install

프로젝트 종속성 트리의 스냅샷을 찍고 snyk.ioarrow-up-right에서 모니터링합니다. 새로운 관련 취약점, 업데이트 또는 패치가 공개될 때 알림을 받습니다.

Maven 플러그인 구성

<configuration> 섹션 내에서 다음 매개변수를 구성할 수 있습니다. 모든 매개변수는 선택 사항입니다.

apiToken [문자열]

pom.xml에 API 토큰을 직접 포함하지 마십시오. 대신 변수를 사용하십시오.

Snyk 서비스에 액세스하려면 Snyk API 토큰을 제공해야 합니다. 다음과 같은 방법으로 할 수 있습니다.

  • 변수를 사용하여 구성에 apiToken을 제공합니다.

  • SNYK_TOKEN 환경 변수를 제공합니다.

  • 이 플러그인을 사용하기 전에 CLI snyk auth 명령을 사용하여 인증합니다.

skip [부울]

기본값: false

이 실행을 완전히 건너뜁니다.

mvn을 실행할 때 -Dsnyk.skip을 사용하여 이 동작을 활성화할 수도 있습니다.

failOnIssues [부울]

기본값: true

이 변수가 true로 설정되고 Snyk CLI 도구가 보안 문제를 해결하기 위한 조치가 필요함을 나타내면 Maven 빌드가 실패한 것으로 간주됩니다. 이 변수가 false로 설정되면 조치가 필요하더라도 빌드는 계속됩니다.

args [배열<문자열>]

이 플러그인은 Snyk CLI를 사용하므로 <args>를 사용하여 지원되는 인수를 전달할 수 있습니다. 다음 예시를 참조하십시오.

지원되는 CLI 옵션 목록은 CLI 명령 및 옵션 요약을 참조하십시오.

cli [객체]

이 플러그인에서 사용하는 Snyk CLI를 구성할 수 있습니다.

기본적으로 CLI는 자동으로 다운로드되고 업데이트됩니다.

다음 CLI 구성 섹션을 참조하십시오.

CLI 구성

대부분의 사용 사례에서는 <cli> 옵션을 설정할 필요가 없습니다.

CLI는 세 가지 다른 모드로 구성할 수 있습니다.

  • 자동 다운로드 및 업데이트 (기본값)

  • 사용자 지정 CLI 실행 파일

  • 특정 CLI 버전

각 모드에 대한 링크를 따라 사용 가능한 매개변수를 확인하십시오.

자동 다운로드 및 업데이트

updatePolicy [문자열]

기본값: daily

최신 CLI 릴리스를 다운로드하는 빈도입니다. Snyk은 항상 CLI 설치를 최신 버전으로 업데이트할 것을 권장합니다. 다음 중 하나일 수 있습니다.

  • daily - 하루 중 첫 번째 실행 시

  • always - 모든 실행 시

  • never - 초기 다운로드 후 절대 업데이트하지 않음

  • interval:<minutes> - 마지막 업데이트 이후 특정 <minutes> 수가 경과한 후 실행 시. 예를 들어 interval:60은 한 시간 후에 업데이트합니다.

downloadDestination [문자열]

기본값: OS별

다운로드된 실행 파일을 배치할 위치입니다. 기본적으로 이는 OS별로 다음과 같습니다.

  • Linux - $XDG_DATA_HOME/snyk/snyk-linux 또는 ~/.local/share/snyk/snyk-linux

  • macOS - ~/Library/Application Support/Snyk/snyk-macos

  • Windows - %APPDATA%\Snyk\snyk-win.exe

사용자 지정 CLI 실행 파일

executable [문자열]

예: ~/.local/share/snyk/snyk-linux

미리 설치된 Snyk CLI 실행 파일의 경로입니다. Snyk CLI 릴리스 페이지arrow-up-right에서 실행 파일을 찾을 수 있습니다.

특정 CLI 버전

version [문자열]

예: 1.542.0

특정 버전을 사용하려는 경우 지정합니다. Snyk CLI 릴리스 페이지arrow-up-right에서 버전을 찾을 수 있습니다.

이 옵션을 설정하면 모든 실행 시 CLI 다운로드가 트리거됩니다.

데모

이 플러그인을 사용해보려면 데모 프로젝트arrow-up-right를 참조하십시오.

Snyk Maven 플러그인 v1에서 v2로 마이그레이션

모든 플러그인 매개변수를 v1에서 <args> 객체로 이동하여 CLI 사용과 일치시킵니다. 예를 들면 다음과 같습니다.

  • org => <arg>--org=my-org-name</arg>

  • failOnSeverity => <arg>--severity-threshold=low|medium|high</arg>

  • failOnAuthError => <skip>true</skip>를 사용하여 플러그인 실행을 건너뜁니다.

  • includeProvidedDependencies => provided를 사용하여 항상 종속성을 포함합니다.

Last updated