Introduction
종속성 검토 작업는 풀 리퀘스트의 종속성 변경 사항을 검사하고, 새 종속성에 알려진 취약점이 있으면 오류를 표시합니다. 설치되면 워크플로 실행이 필수로 표시되면 알려진 취약한 패키지를 도입하는 끌어오기 요청이 병합되지 않도록 차단됩니다.
이 가이드에서는 취약성 심각도 수준, 종속성 라이선스 및 범위를 기준으로 빌드 실패라는 세 가지 매우 일반적인 사용자 지정을 추가하는 방법을 보여 줍니다.
사전 요구 사항
이 가이드는 다음을 전제로 합니다.
- 리포지토리에 종속성 그래프를 활성화합니다. 자세한 내용은 종속성 그래프 사용을(를) 참조하세요.
- GitHub Actions 는 리포지토리에 대해 사용하도록 설정되어 있습니다. 자세한 내용은 리포지토리에 대한 GitHub Actions 설정 관리을(를) 참조하세요.
1단계: 종속성 검토 작업 추가
이 단계에서는 리포지토리에 종속성 검토 워크플로를 추가합니다.
-
GitHub에서 리포지토리의 기본 페이지로 이동합니다.
-
리포지토리 이름에서 작업을 클릭합니다.

-
"시작" GitHub Actions에서 "보안" 범주를 찾은 다음 모두 보기를 클릭합니다.
-
"종속성 검토"를 찾은 다음 구성을 클릭합니다. 또는 검색 창을 사용하여 "종속성 검토"를 검색합니다.
-
그러면 종속성 검토의 GitHub Actions 워크플로 파일이
dependency-review.yml열립니다. 여기에는 다음이 포함되어야 합니다.YAML name: 'Dependency review' on: pull_request: branches: [ "main" ] permissions: contents: read jobs: dependency-review: runs-on: ubuntu-latest steps: - name: 'Checkout repository' uses: actions/checkout@v6 - name: 'Dependency Review' uses: actions/dependency-review-action@v4name: 'Dependency review' on: pull_request: branches: [ "main" ] permissions: contents: read jobs: dependency-review: runs-on: ubuntu-latest steps: - name: 'Checkout repository' uses: actions/checkout@v6 - name: 'Dependency Review' uses: actions/dependency-review-action@v4
2단계: 심각도 변경
필수로 설정 종속성 검토 작업 하여 취약한 종속성이 포함된 코드가 병합되지 않도록 차단할 수 있습니다. 그러나 일부 상황에서는 위험이 낮은 취약점을 차단하는 것이 너무 제한적일 수 있다는 점에 유의하세요. 이 단계에서는 fail-on-severity 옵션을 사용하여 빌드가 실패하는 취약성의 심각도를 변경합니다.
-
fail-on-severity파일의 끝에dependency-review.yml옵션을 추가합니다.YAML - name: 'Dependency Review' uses: actions/dependency-review-action@v4 with: fail-on-severity: moderate- name: 'Dependency Review' uses: actions/dependency-review-action@v4 with: fail-on-severity: moderate
3단계: 차단할 라이선스 추가
취약성이 종속성을 차단할 수 있는 유일한 이유는 아닙니다. 조직에서 사용할 수 있는 라이선스 종류에 제한이 있는 경우 종속성 검토를 사용하여 deny-licenses 옵션으로 해당 정책을 적용할 수 있습니다. 이 단계에서는 끌어오기 요청이 LGPL-2.0 또는 BSD-2-Clause 라이선스를 포함하는 종속성을 도입하는 경우 빌드를 중단하는 사용자 지정을 추가합니다.
-
deny-licenses파일의 끝에dependency-review.yml옵션을 추가합니다.YAML - name: 'Dependency Review' uses: actions/dependency-review-action@v4 with: fail-on-severity: moderate deny-licenses: LGPL-2.0, BSD-2-Clause- name: 'Dependency Review' uses: actions/dependency-review-action@v4 with: fail-on-severity: moderate deny-licenses: LGPL-2.0, BSD-2-Clause
4단계: 범위 추가
마지막으로, fail-on-scopes 옵션을 사용하여 취약한 종속성이 특정 배포 환경(이 경우 개발 환경)에 병합되지 않도록 합니다.
-
fail-on-scopes파일의 끝에dependency-review.yml옵션을 추가합니다.YAML - name: 'Dependency Review' uses: actions/dependency-review-action@v4 with: fail-on-severity: moderate deny-licenses: LGPL-2.0, BSD-2-Clause fail-on-scopes: development- name: 'Dependency Review' uses: actions/dependency-review-action@v4 with: fail-on-severity: moderate deny-licenses: LGPL-2.0, BSD-2-Clause fail-on-scopes: development
5단계: 구성 확인
이제 dependency-review.yml 파일은 다음과 같아야 합니다.
name: 'Dependency Review'
on: [pull_request]
permissions:
contents: read
jobs:
dependency-review:
runs-on: ubuntu-latest
steps:
- name: 'Checkout Repository'
uses: actions/checkout@v6
- name: Dependency Review
uses: actions/dependency-review-action@v4
with:
fail-on-severity: moderate
deny-licenses: LGPL-2.0, BSD-2-Clause
fail-on-scopes: development
name: 'Dependency Review'
on: [pull_request]
permissions:
contents: read
jobs:
dependency-review:
runs-on: ubuntu-latest
steps:
- name: 'Checkout Repository'
uses: actions/checkout@v6
- name: Dependency Review
uses: actions/dependency-review-action@v4
with:
fail-on-severity: moderate
deny-licenses: LGPL-2.0, BSD-2-Clause
fail-on-scopes: development
사용자 지정 구성에 대한 템플릿으로 이 구성을 사용할 수 있습니다.
가능한 모든 사용자 지정 옵션에 대한 자세한 내용은 종속성 검토 작업 설명서의 추가 정보를 참조하세요.
모범 사례
종속성 검토 구성을 사용자 지정할 때 수행할 수 있는 몇 가지 모범 사례가 있습니다.
-
허용 목록 대신 차단 목록을 선택합니다. 허용하려는 모든 라이브러리의 포괄적인 목록을 만드는 것보다 차단하려는 "정말 나쁜" 종속성 목록을 컴파일하는 것이 더 실용적입니다.
-
허용할 라이선스를 지정하는 대신 라이선스를 차단하도록 선택합니다. 다양한 라이선스가 있으므로 호환되는 라이선스의 전체 목록을 컴파일하는 것보다 현재 라이선스와 호환되지 않는 라이선스를 제외하는 것이 일반적으로 더 실용적입니다.
-
fail-on-severity을 선택합니다. 취약성의 심각도에 따라 실패하는 것은 보안에 대한 필요성과 개발자를 위한 마찰이 적은 환경을 만들어야 하는 필요성 간의 균형을 맞추는 좋은 방법입니다.