- 새로운 라이선스 승인 정책을 생성하는 데 필요한 사전 조건
- 새로운 라이선스 승인 정책 생성
- 승인이 필요한 라이선스를 정의하는 기준
- Merge Request 브랜치에서 감지된 라이선스를 기본 브랜치에서 감지된 라이선스와 비교하는 기준
- 문제 해결
라이선스 승인 정책
- GitLab 15.9에서 도입되었습니다.
license_scanning_policies
라는 플래그와 함께.- GitLab 15.11에서 일반적으로 사용 가능해졌습니다. 피처 플래그
license_scanning_policies
가 제거되었습니다.
라이선스 승인 정책을 사용하면 Merge Request이 Merge되기 전에 승인이 필요한 여러 유형의 기준을 지정할 수 있습니다.
다음 비디오는 이러한 정책에 대한 개요를 제공합니다.
새로운 라이선스 승인 정책을 생성하는 데 필요한 사전 조건
라이선스 승인 정책은 의존성 스캔 작업의 출력에 의존하여 요구 사항이 충족되었는지 확인합니다. 의존성 스캔이 제대로 구성되지 않았거나 따라서 열린 Merge Request에 대한 관련 의존성 스캔 작업이 실행되지 않았을 경우, 정책에는 요구 사항을 확인할 데이터가 없습니다. 보안 정책이 평가를 위한 데이터가 부족할 때 기본적으로 닫힌 상태로 실패하고 Merge Request에 취약점이 포함될 수 있다고 가정합니다. fallback_behavior
속성으로 기본 동작을 사용하지 않도록 선택할 수 있으며 정책을 열린 상태로 설정할 수 있습니다. 열린 상태로 실패하는 정책은 모든 잘못된 및 강제할 수 없는 규칙을 차단합니다.
귀하의 정책을 시행하기 위해 대상 개발 프로젝트에서 의존성 스캔을 활성화해야 합니다. 이를 수행하는 몇 가지 다른 방법이 있습니다.
- 모든 대상 개발 프로젝트에서 실행되는 의존성 스캔을 시행하는 전역 스캔 실행 정책을 생성합니다.
- 컴플라이언스 파이프라인을 사용하여 특정 컴플라이언스 프레임워크에서 시행되는 의존성 스캔 작업을 정의합니다.
- 개발 팀과 협력하여 각 프로젝트의
.gitlab-ci.yml
파일에 의존성 스캔을 구성하거나 보안 구성 패널을 사용하여 활성화합니다.
새로운 라이선스 승인 정책 생성
라이선스 준수를 시행하기 위해 라이선스 승인 정책을 생성합니다.
라이선스 승인 정책을 생성하려면:
- 개발 그룹, 하위 그룹 또는 프로젝트에 보안 정책 프로젝트를 연결합니다(소유자 역할이 필요합니다).
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 보안 > 정책을 선택합니다.
- 새로운 스캔 결과 정책을 생성합니다.
- 정책 규칙에서 라이선스 스캔을 선택합니다.
승인이 필요한 라이선스를 정의하는 기준
다음 유형의 기준을 사용하여 “승인” 또는 “거부”된 라이선스를 결정할 수 있습니다.
- 명시적으로 금지된 라이선스 디렉터리에서 감지된 라이선스가 있을 경우.
- 허용 가능하다고 명시된 라이선스를 제외한 모든 라이선스가 감지된 경우.
Merge Request 브랜치에서 감지된 라이선스를 기본 브랜치에서 감지된 라이선스와 비교하는 기준
다음 유형의 기준을 사용하여 기본 브랜치에 있는 라이선스를 기반으로 승인이 필요한지 여부를 결정할 수 있습니다:
- 거부된 라이선스는 기본 브랜치에 이미 존재하지 않은 의존성에 대해 승인을 요구하도록 구성할 수 있습니다.
- 거부된 라이선스는 기본 브랜치에 이미 존재하는 컴포넌트의 어떤 부분에도 존재하는 경우 승인을 요구하도록 구성할 수 있습니다.
라이선스 승인 정책을 위반하는 라이선스가 발견되면 Merge Request을 차단하고 삭제하도록 개발자에게 지시합니다. 참고로, denied
라이선스가 승인 기관자에 의해 Merge Request이 승인될 때까지 Merge Request을 승인할 수 없습니다.
문제 해결
라이선스 준수 위젯이 로드 중인 상태로 멈춤
로딩 스피너는 다음과 같은 시나리오에서 표시됩니다:
- 파이프라인이 진행 중인 동안.
- 파이프라인이 완료되었지만 여전히 결과를 백그라운드에서 파싱하는 경우.
- 라이선스 스캔 작업이 완료되었지만 파이프라인이 여전히 실행 중인 경우.
라이선스 준수 위젯은 몇 초마다 업데이트된 결과를 확인합니다. 파이프라인이 완료되면 파이프라인 완료 후 첫 번째 폴링은 결과를 분석합니다. 생성된 보고서의 크기에 따라 몇 초가 소요될 수 있습니다.
최종 상태는 성공적인 파이프라인 실행이 완료되고 결과가 위젯에 표시되는 것입니다.