InfoGrab Docs

라이선스 승인 정책

요약

라이선스 승인 정책을 사용하여 머지 리퀘스트가 머지되기 전에 승인이 필요한 시점을 결정하는 기준을 지정합니다. 라이선스 승인 정책은 보호된 대상 브랜치에만 적용됩니다. 다음 동영상에서 이러한 정책에 대한 개요를 제공합니다.

히스토리
  • GitLab 15.9에서 license_scanning_policies라는 플래그와 함께 도입됨.
  • GitLab 15.11에서 일반 제공. 기능 플래그 license_scanning_policies 제거.

라이선스 승인 정책을 사용하여 머지 리퀘스트가 머지되기 전에 승인이 필요한 시점을 결정하는 기준을 지정합니다.

라이선스 승인 정책은 보호된 대상 브랜치에만 적용됩니다.

다음 동영상에서 이러한 정책에 대한 개요를 제공합니다.

새 라이선스 승인 정책 생성을 위한 사전 요구 사항#

라이선스 승인 정책은 의존성 스캔 job의 출력에 의존하여 요구 사항이 충족되었는지 확인합니다. 의존성 스캔이 올바르게 구성되지 않아 열려 있는 MR과 관련된 의존성 스캔 job이 실행되지 않은 경우, 정책에는 요구 사항을 확인할 데이터가 없습니다. 보안 정책이 평가 데이터가 없는 경우 기본적으로 닫힌 상태로 실패하고 머지 리퀘스트에 취약점이 포함될 수 있다고 가정합니다. fallback_behavior 속성을 사용하여 기본 동작을 거부하고 정책이 열린 상태로 실패하도록 설정할 수 있습니다. 열린 상태로 실패하는 정책은 유효하지 않고 적용할 수 없는 모든 규칙이 차단 해제됩니다.

정책 시행을 보장하려면 대상 개발 프로젝트에서 의존성 스캔을 활성화해야 합니다. 다음과 같은 방법으로 달성할 수 있습니다:

  • 모든 대상 개발 프로젝트에서 의존성 스캔이 실행되도록 강제하는 스캔 실행 정책을 생성합니다.
  • 개발 팀과 협력하여 각 프로젝트의 .gitlab-ci.yml 파일에서 의존성 스캔을 구성하거나 보안 구성을 사용하여 활성화합니다.

라이선스 승인 정책은 GitLab 지원 패키지의 라이선스 정보가 필요합니다.

새 라이선스 승인 정책 생성#

라이선스 컴플라이언스를 적용하기 위한 라이선스 승인 정책을 생성합니다.

라이선스 승인 정책을 생성하려면:

  1. 보안 정책 프로젝트 연결을 개발 그룹, 하위 그룹 또는 프로젝트에 연결합니다(Owner 권한 필요).
  2. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  3. 왼쪽 사이드바에서 Secure > Policies를 선택합니다.
  4. 머지 리퀘스트 승인 정책을 생성합니다.
  5. 정책 규칙에서 License scanning을 선택합니다.

어떤 라이선스에 승인이 필요한지 결정하는 기준#

다음 유형의 기준을 사용하여 어떤 라이선스가 "승인됨" 또는 "거부됨"인지 결정하고 승인이 필요한 경우를 결정할 수 있습니다.

  • 명시적으로 금지된 라이선스 목록의 라이선스가 감지된 경우.
  • 허용 가능한 것으로 명시적으로 나열된 라이선스를 제외한 라이선스가 감지된 경우.

머지 리퀘스트 브랜치에서 감지된 라이선스를 기본 브랜치의 라이선스와 비교하는 기준#

기본 브랜치에 있는 라이선스를 기반으로 승인이 필요한지 여부를 결정하는 데 다음 유형의 기준을 사용할 수 있습니다:

  • 거부된 라이선스가 기본 브랜치에 아직 존재하지 않는 의존성의 일부인 경우에만 승인을 요구하도록 구성할 수 있습니다.
  • 거부된 라이선스가 기본 브랜치에 이미 존재하는 컴포넌트에 있는 경우 승인을 요구하도록 구성할 수 있습니다.

라이선스 승인 정책

라이선스 승인 정책을 위반하는 라이선스가 발견되면 머지 리퀘스트를 차단하고 개발자에게 제거하도록 지시합니다. 라이선스 승인 정책에 대한 적격 승인자가 머지 리퀘스트를 승인하지 않는 한 denied 라이선스가 제거될 때까지 머지 리퀘스트를 머지할 수 없습니다.

거부된 라이선스가 있는 머지 리퀘스트

문제 해결#

라이선스 컴플라이언스 위젯이 로딩 상태에서 멈춤#

다음 시나리오에서 로딩 스피너가 표시됩니다:

  • 파이프라인이 진행 중인 동안.
  • 파이프라인이 완료되었지만 백그라운드에서 결과를 아직 파싱하는 중.
  • 라이선스 스캔 job이 완료되었지만 파이프라인이 아직 실행 중인 경우.

라이선스 컴플라이언스 위젯은 업데이트된 결과를 위해 몇 초마다 폴링합니다. 파이프라인이 완료되면 파이프라인 완료 후 첫 번째 폴링에서 결과 파싱이 시작됩니다. 이는 생성된 보고서의 크기에 따라 몇 초가 걸릴 수 있습니다.

최종 상태는 성공적인 파이프라인 실행이 완료되고 파싱되어 위젯에 라이선스가 표시될 때입니다.

라이선스 승인 정책이 unknown 라이선스로 인해 머지 리퀘스트를 차단함#

라이선스 승인 정책은 특정 시나리오에서 unknown 라이선스로 인해 머지 리퀘스트를 차단할 수 있습니다. 이는 다음 상황에서 발생할 수 있습니다:

  • 의존성 스캔 job이 특정 컴포넌트에 대한 라이선스를 식별하지 못하는 경우.
  • 스캔 도구에서 인식하지 못하는 새롭거나 드문 라이선스가 사용된 경우.
  • 컴포넌트의 메타데이터에서 라이선스 정보가 누락되거나 불완전한 경우.

이 문제를 해결하려면:

  1. 파이프라인 페이지의 Licenses 탭을 검토하여 unknown 라이선스가 있는 컴포넌트를 식별하거나 GitLab 보안 봇이 생성한 out-of-policy 라이선스를 검토합니다.
  2. 이러한 컴포넌트를 수동으로 조사하여 실제 라이선스를 결정합니다.
  3. 라이선스를 확인할 수 없거나 수용할 수 없는 경우 영향을 받는 컴포넌트를 제거하거나 교체하는 것을 고려합니다.

unknown 라이선스로 일시적으로 머지를 허용해야 하는 경우:

  1. 라이선스 승인 정책을 편집합니다.
  2. 허용된 라이선스 목록에 unknown을 추가합니다.
  3. 문제를 해결한 후 적절한 라이선스 컴플라이언스를 유지하기 위해 허용된 라이선스 목록에서 unknown을 제거하는 것을 잊지 마세요.

unknown 라이선스를 처리할 때 특히 라이선스 컴플라이언스 문제를 다룰 때는 항상 법무팀과 상의하세요.

라이선스 승인 정책

Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

라이선스 승인 정책을 사용하여 머지 리퀘스트가 머지되기 전에 승인이 필요한 시점을 결정하는 기준을 지정합니다. 라이선스 승인 정책은 보호된 대상 브랜치에만 적용됩니다. 다음 동영상에서 이러한 정책에 대한 개요를 제공합니다.

히스토리
  • GitLab 15.9에서 license_scanning_policies라는 플래그와 함께 도입됨.
  • GitLab 15.11에서 일반 제공. 기능 플래그 license_scanning_policies 제거.

라이선스 승인 정책을 사용하여 머지 리퀘스트가 머지되기 전에 승인이 필요한 시점을 결정하는 기준을 지정합니다.

라이선스 승인 정책은 보호된 대상 브랜치에만 적용됩니다.

다음 동영상에서 이러한 정책에 대한 개요를 제공합니다.

새 라이선스 승인 정책 생성을 위한 사전 요구 사항#

라이선스 승인 정책은 의존성 스캔 job의 출력에 의존하여 요구 사항이 충족되었는지 확인합니다. 의존성 스캔이 올바르게 구성되지 않아 열려 있는 MR과 관련된 의존성 스캔 job이 실행되지 않은 경우, 정책에는 요구 사항을 확인할 데이터가 없습니다. 보안 정책이 평가 데이터가 없는 경우 기본적으로 닫힌 상태로 실패하고 머지 리퀘스트에 취약점이 포함될 수 있다고 가정합니다. fallback_behavior 속성을 사용하여 기본 동작을 거부하고 정책이 열린 상태로 실패하도록 설정할 수 있습니다. 열린 상태로 실패하는 정책은 유효하지 않고 적용할 수 없는 모든 규칙이 차단 해제됩니다.

정책 시행을 보장하려면 대상 개발 프로젝트에서 의존성 스캔을 활성화해야 합니다. 다음과 같은 방법으로 달성할 수 있습니다:

  • 모든 대상 개발 프로젝트에서 의존성 스캔이 실행되도록 강제하는 스캔 실행 정책을 생성합니다.
  • 개발 팀과 협력하여 각 프로젝트의 .gitlab-ci.yml 파일에서 의존성 스캔을 구성하거나 보안 구성을 사용하여 활성화합니다.

라이선스 승인 정책은 GitLab 지원 패키지의 라이선스 정보가 필요합니다.

새 라이선스 승인 정책 생성#

라이선스 컴플라이언스를 적용하기 위한 라이선스 승인 정책을 생성합니다.

라이선스 승인 정책을 생성하려면:

  1. 보안 정책 프로젝트 연결을 개발 그룹, 하위 그룹 또는 프로젝트에 연결합니다(Owner 권한 필요).
  2. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  3. 왼쪽 사이드바에서 Secure > Policies를 선택합니다.
  4. 머지 리퀘스트 승인 정책을 생성합니다.
  5. 정책 규칙에서 License scanning을 선택합니다.

어떤 라이선스에 승인이 필요한지 결정하는 기준#

다음 유형의 기준을 사용하여 어떤 라이선스가 "승인됨" 또는 "거부됨"인지 결정하고 승인이 필요한 경우를 결정할 수 있습니다.

  • 명시적으로 금지된 라이선스 목록의 라이선스가 감지된 경우.
  • 허용 가능한 것으로 명시적으로 나열된 라이선스를 제외한 라이선스가 감지된 경우.

머지 리퀘스트 브랜치에서 감지된 라이선스를 기본 브랜치의 라이선스와 비교하는 기준#

기본 브랜치에 있는 라이선스를 기반으로 승인이 필요한지 여부를 결정하는 데 다음 유형의 기준을 사용할 수 있습니다:

  • 거부된 라이선스가 기본 브랜치에 아직 존재하지 않는 의존성의 일부인 경우에만 승인을 요구하도록 구성할 수 있습니다.
  • 거부된 라이선스가 기본 브랜치에 이미 존재하는 컴포넌트에 있는 경우 승인을 요구하도록 구성할 수 있습니다.

라이선스 승인 정책

라이선스 승인 정책을 위반하는 라이선스가 발견되면 머지 리퀘스트를 차단하고 개발자에게 제거하도록 지시합니다. 라이선스 승인 정책에 대한 적격 승인자가 머지 리퀘스트를 승인하지 않는 한 denied 라이선스가 제거될 때까지 머지 리퀘스트를 머지할 수 없습니다.

거부된 라이선스가 있는 머지 리퀘스트

문제 해결#

라이선스 컴플라이언스 위젯이 로딩 상태에서 멈춤#

다음 시나리오에서 로딩 스피너가 표시됩니다:

  • 파이프라인이 진행 중인 동안.
  • 파이프라인이 완료되었지만 백그라운드에서 결과를 아직 파싱하는 중.
  • 라이선스 스캔 job이 완료되었지만 파이프라인이 아직 실행 중인 경우.

라이선스 컴플라이언스 위젯은 업데이트된 결과를 위해 몇 초마다 폴링합니다. 파이프라인이 완료되면 파이프라인 완료 후 첫 번째 폴링에서 결과 파싱이 시작됩니다. 이는 생성된 보고서의 크기에 따라 몇 초가 걸릴 수 있습니다.

최종 상태는 성공적인 파이프라인 실행이 완료되고 파싱되어 위젯에 라이선스가 표시될 때입니다.

라이선스 승인 정책이 unknown 라이선스로 인해 머지 리퀘스트를 차단함#

라이선스 승인 정책은 특정 시나리오에서 unknown 라이선스로 인해 머지 리퀘스트를 차단할 수 있습니다. 이는 다음 상황에서 발생할 수 있습니다:

  • 의존성 스캔 job이 특정 컴포넌트에 대한 라이선스를 식별하지 못하는 경우.
  • 스캔 도구에서 인식하지 못하는 새롭거나 드문 라이선스가 사용된 경우.
  • 컴포넌트의 메타데이터에서 라이선스 정보가 누락되거나 불완전한 경우.

이 문제를 해결하려면:

  1. 파이프라인 페이지의 Licenses 탭을 검토하여 unknown 라이선스가 있는 컴포넌트를 식별하거나 GitLab 보안 봇이 생성한 out-of-policy 라이선스를 검토합니다.
  2. 이러한 컴포넌트를 수동으로 조사하여 실제 라이선스를 결정합니다.
  3. 라이선스를 확인할 수 없거나 수용할 수 없는 경우 영향을 받는 컴포넌트를 제거하거나 교체하는 것을 고려합니다.

unknown 라이선스로 일시적으로 머지를 허용해야 하는 경우:

  1. 라이선스 승인 정책을 편집합니다.
  2. 허용된 라이선스 목록에 unknown을 추가합니다.
  3. 문제를 해결한 후 적절한 라이선스 컴플라이언스를 유지하기 위해 허용된 라이선스 목록에서 unknown을 제거하는 것을 잊지 마세요.

unknown 라이선스를 처리할 때 특히 라이선스 컴플라이언스 문제를 다룰 때는 항상 법무팀과 상의하세요.