Snyk 설정 및 취약점 검사를 위한 GitHub Actions

GitHub Actions 통합 개요

Snyk은 GitHub 프로젝트에서 취약점을 확인하기 위해 Snyk을 사용하는 일련의 GitHub Actionsarrow-up-right를 제공합니다. 이러한 Actions는 Snyk CLI를 기반으로 하며, Action의 속성에 있는 args를 사용하여 모든 옵션과 기능을 사용할 수 있습니다.

또한 Snyk 설정 Action도 있습니다.

자세한 내용은 GitHub Actions 기능arrow-up-right 페이지와 GitHub 사용자 지정 Actionsarrow-up-right 설명서를 참조하십시오.

사용 중인 언어 또는 프로세스에 따라 다른 Action을 사용해야 합니다. 이 페이지에서는 오픈소스 언어 및 패키지 관리자를 위한 모든 GitHub Actions에 적용되는 자세한 정보를 제공합니다. Snyk 오픈소스 예제는 다음 섹션인 오픈소스 언어 및 패키지 관리자를 위한 GitHub Actions에 나열된 페이지를 참조하십시오.

Docker 및 IaC GitHub Actions 및 예제에 대한 자세한 내용은 다음 섹션인 Snyk 컨테이너 및 Snyk 코드형 인프라를 위한 GitHub Actions에 나열된 페이지를 참조하십시오.

설정 Action 및 예제에 대한 자세한 내용은 Snyk 설정 Action을 참조하십시오.

오픈소스 언어 및 패키지 관리자를 위한 GitHub Actions

Snyk 컨테이너 및 Snyk 코드형 인프라를 위한 GitHub Actions

오픈소스 언어 및 패키지 관리자를 위한 Snyk GitHub Action 속성

오픈소스 언어 및 패키지 관리자를 위한 Snyk GitHub Action에는 with를 사용하여 기본 이미지에 전달되는 속성이 있습니다.

속성
기본값
설명

args

Snyk 이미지에 대한 기본 인수를 재정의합니다. 모든 옵션은 CLI 명령 및 옵션 요약을 참조하십시오.

command

test

test 또는 monitor와 같은 실행할 명령을 지정합니다.

json

false

표준 출력 외에 결과를 snyk.json으로 저장합니다.

다른 Snyk GitHub Actions와 관련된 속성은 Snyk 컨테이너 및 Snyk 코드형 인프라를 위한 GitHub ActionsSnyk 설정 Action을 참조하십시오.

Snyk GitHub Action 사용 예시

다음은 Snyk 오픈소스 프로젝트를 테스트하고 모니터링하기 위해 Snyk GitHub Action을 사용하는 예시입니다. snyk testsnyk monitor 사용에 대한 정보는 snyk test, monitor 및 protect의 차이점은 무엇입니까?arrow-up-right를 참조하십시오.

각 언어, 패키지 관리자 및 프로세스에 대한 특정 예제는 오픈소스 언어 및 패키지 관리자를 위한 GitHub ActionsSnyk 컨테이너 및 Snyk 코드형 인프라를 위한 GitHub Actions에 나열된 페이지를 참조하십시오.

GitHub Actions는 리포지토리에 설정된 비밀을 풀 리퀘스트에 사용되는 포크로 전달하지 않습니다. 따라서 토큰이 필요한 Snyk Actions는 포크된 리포지토리에서 실행되지 않습니다.

Snyk 테스트 예시

다음은 Snyk GitHub Action을 사용하여 Node.js 프로젝트를 테스트하는 예시입니다.

Snyk 모니터 예시

새로운 취약점이 발견될 때 Snyk에 데이터를 보내고 알림을 받으려면 다음과 같이 snyk monitor를 실행합니다.

심각도 높은 취약점만 보고하는 예시

Action의 args 속성을 사용하면 Snyk CLI의 모든 옵션과 기능을 사용할 수 있습니다. 이 예는 --severity-threshold=high 옵션 사용을 보여줍니다.

GitHub 코드 스캔 지원

Snyk GitHub Actions는 GitHub 코드 스캔과 통합하여 GitHub 보안 탭에 취약점 정보를 표시합니다. 다음은 오픈소스 언어 및 패키지 관리자를 위한 Snyk GitHub Actions에 적용됩니다. 특정 언어, 패키지 관리자 및 프로세스에 대한 정보는 오픈소스 언어 및 패키지 관리자를 위한 GitHub Actions 및 Snyk 컨테이너 및 Snyk 코드형 인프라를 위한 GitHub Actions에 나열된 페이지를 참조하십시오.

--sarif-file-output Snyk CLI 옵션GitHub SARIF 업로드 Actionarrow-up-right을 사용하면 다음 예제와 같이 Snyk 스캔 결과를 GitHub 코드 스캔에 업로드할 수 있습니다.

취약점이 발견되면 Snyk Action이 실패합니다. 이는 SARIF 업로드 Action이 실행되는 것을 방지합니다. 따라서 다음 예제와 같이 continue-on-errorarrow-up-right 옵션을 사용해야 합니다.

circle-info

비공개 리포지토리에서 이 옵션을 사용하려면 GitHub Advanced Security가 활성화되어 있어야 합니다.

Advanced Security must be enabled for this repository to use code scanning 오류가 표시되면 GitHub Advanced Security가 활성화되어 있는지 확인하십시오. 자세한 내용은 리포지토리 보안 및 분석 설정 관리arrow-up-right를 참조하십시오.

GitHub 코드 스캔 지원에 업로드하면 다음 화면 이미지와 같이 GitHub 보안 탭에 취약점이 표시됩니다.

업로드된 취약점을 보여주는 GitHub 보안 탭
업로드된 취약점을 보여주는 GitHub 보안 탭

자체 개발 환경 사용

각 언어에 대한 Snyk GitHub Actions는 Snyk이 다양한 언어 환경에서 올바른 종속성 및 취약점을 결정하는 데 필요한 모든 개발 도구를 자동으로 설치합니다. 개발 도구가 이미 설치된 워크플로가 있는 경우 Snyk CLIarrow-up-right만 설치하려면 snyk/actions/setup Action을 대신 사용할 수 있습니다. 다음 예가 있습니다.

여기서 예제는 actions/setup-go를 사용합니다. 프로젝트에 대한 관련 개발 요구 사항을 설치하기 위해 올바른 Action을 선택해야 합니다. 애플리케이션을 빌드하고 테스트하기 위해 동일한 파이프라인을 이미 사용하고 있다면 관련 개발 요구 사항을 이미 설치하고 있을 가능성이 높습니다.

Snyk 토큰 가져오기

이 페이지의 Snyk GitHub Actions 예제는 Snyk API 토큰을 참조합니다.

모든 Snyk 계정에는 이 토큰이 있습니다. Snyk으로 계정을 만든 후 다음 두 가지 방법 중 하나로 API 토큰을 찾을 수 있습니다.

  1. UI에서 Snyk 계정 설정 페이지arrow-up-right로 이동하여 Snyk API 토큰 해지 및 재생성arrow-up-right 페이지에 설명된 대로 API 토큰을 검색합니다.

  2. 로컬에서 Snyk CLI를 사용하는 경우 snyk config get api를 실행하여 API 토큰을 검색할 수 있습니다.

Last updated