InfoGrab DocsInfoGrab Docs

GitGuardian

요약

GitGuardian은 소스 코드 리포지터리에서 API 키, 비밀번호, 토큰 같은 하드코딩된 자격 증명을 찾아내는 시크릿 탐지 서비스입니다. GitGuardian 정책에 따라 커밋을 거부하도록 GitLab을 구성할 수 있습니다.

히스토리
  • GitLab 16.9에서 git_guardian_integration이라는 기능 플래그와 함께 도입되었습니다. 기본적으로 활성화되어 있습니다. GitLab.com에서는 비활성화되어 있습니다.
  • GitLab 17.7에서 GitLab.com에서 활성화되었습니다.
  • GitLab 17.8에서 일반 공개되었습니다. 기능 플래그 git_guardian_integration은 제거되었습니다.
  • api_url 파라미터는 GitLab 19.1에서 도입되었습니다.

GitGuardian은 소스 코드 리포지터리에서 API 키, 비밀번호, 토큰 같은 하드코딩된 자격 증명을 찾아내는 시크릿 탐지 서비스입니다. 이 통합을 활성화하면 GitLab은 각 푸시를 GitGuardian으로 보내 스캔합니다. GitGuardian 이 시크릿을 탐지하면 GitLab은 해당 푸시를 차단합니다.

GitGuardian 정책에 따라 커밋을 거부하도록 GitLab을 구성할 수 있습니다.

GitGuardian 통합을 설정하려면 다음 단계를 수행합니다.

  1. GitGuardian API 토큰을 만듭니다.
  2. 프로젝트에 GitGuardian 통합을 설정합니다.

GitGuardian API 토큰 만들기#

사전 요구 사항:

  • GitGuardian 계정이 있어야 합니다.

API 토큰을 만들려면 다음 단계를 수행합니다.

  1. GitGuardian 계정에 로그인합니다.
  2. 사이드바에서 API 섹션으로 이동합니다.
  3. API 섹션 사이드바에서 Personal access tokens 페이지로 이동합니다.
  4. Create token을 선택합니다. 토큰 생성 대화 상자가 열립니다.
  5. 토큰 정보를 입력합니다.
    • API 토큰에 용도를 알 수 있는 의미 있는 이름을 지정합니다. 예를 들어 GitLab integration token으로 지정합니다.
    • 적절한 만료 기한을 선택합니다.
    • scan scope 체크박스를 선택합니다. 이 통합에 필요한 유일한 범위입니다.
  6. Create token을 선택합니다.
  7. 토큰을 생성한 뒤 클립보드에 복사합니다. 이 토큰은 민감한 정보이므로 안전하게 보관합니다.

이제 통합에 사용할 GitGuardian API 토큰을 만들었습니다.

프로젝트에 GitGuardian 통합 설정#

사전 요구 사항:

  • 프로젝트에 대한 Maintainer 또는 Owner 권한이 있어야 합니다.

API 토큰을 만들어 복사한 뒤, 커밋을 거부하도록 GitLab을 구성합니다.

프로젝트에 통합을 활성화하려면 다음 단계를 수행합니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트나 그룹을 찾습니다.

  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.

  3. GitGuardian을 선택합니다.

  4. Enable integration에서 Active 체크박스를 선택합니다.

  5. 선택 사항. API endpoint 텍스트 상자에 GitGuardian 인스턴스의 기본 URL을 입력합니다.

    • GitGuardian EU SaaS는 https://api.eu1.gitguardian.com을 입력합니다.
    • 자체 호스팅 GitGuardian은 인스턴스 URL을 입력합니다(예: https://gitguardian.example.com).

    비워 두면 GitLab은 기본 US SaaS 엔드포인트(https://api.gitguardian.com)를 사용합니다.

  6. API token에 GitGuardian에서 복사한 토큰 값을 붙여 넣습니다.

  7. 선택 사항. Test settings를 선택합니다.

  8. Save changes를 선택합니다.

이제 GitLab은 GitGuardian 정책에 따라 커밋을 거부할 준비가 되었습니다.

시크릿 탐지 건너뛰기#

히스토리
  • GitLab 17.0에서 도입되었습니다.

필요하면 GitGuardian 시크릿 탐지를 건너뛸 수 있습니다. 푸시에 포함된 모든 커밋에 대해 시크릿 탐지를 건너뛰는 방법은 기본 시크릿 탐지의 방법과 같습니다. 다음 중 하나를 수행합니다.

  • 커밋 메시지 중 하나에 [skip secret push protection]을 추가합니다.
  • secret_push_protection.skip_all 푸시 옵션을 사용합니다.

알려진 문제#

  • 푸시가 지연되거나 시간 초과될 수 있습니다. GitGuardian 통합에서는 다음과 같습니다.
    • 푸시가 서드파티로 전송됩니다.
    • GitLab은 GitGuardian과의 연결이나 GitGuardian의 처리 과정을 제어할 수 없습니다.
  • GitGuardian API 제한 때문에 이 통합은 1 MB를 초과하는 파일을 무시합니다. 해당 파일은 스캔되지 않습니다.
  • 푸시한 파일의 이름이 256자를 초과하면 푸시가 실패합니다.
  • 자세한 내용은 GitGuardian API 문서를 참고합니다.

아래 문제 해결 단계에서 이러한 문제 중 일부를 완화하는 방법을 설명합니다.

문제 해결#

GitGuardian 통합을 사용할 때 다음 문제가 발생할 수 있습니다.

500 HTTP 오류#

HTTP 500 오류가 발생할 수 있습니다.

이 문제는 변경된 파일이 많은 커밋에서 요청이 시간 초과될 때 발생합니다.

커밋에서 파일을 50개 넘게 변경할 때 이 문제가 발생하면 다음 단계를 수행합니다.

  1. 변경 사항을 더 작은 커밋으로 나눕니다.
  2. 나눈 커밋을 하나씩 푸시합니다.

오류: Filename: ensure this value has at most 256 characters#

Filename: ensure this value has at most 256 characters라는 HTTP 400 오류가 발생할 수 있습니다.

이 문제는 해당 커밋으로 푸시하는 변경 파일 중 일부의 파일 이름(경로가 아님)이 256자를 초과할 때 발생합니다.

가능하면 파일 이름을 줄이는 것이 해결 방법입니다. 예를 들어 프레임워크가 자동으로 생성한 이름이라 줄일 수 없다면, 통합을 비활성화하고 다시 푸시합니다. 필요하다면 그 뒤에 통합을 다시 활성화합니다.

GitGuardian

GitLab v19.5
Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

GitGuardian은 소스 코드 리포지터리에서 API 키, 비밀번호, 토큰 같은 하드코딩된 자격 증명을 찾아내는 시크릿 탐지 서비스입니다. GitGuardian 정책에 따라 커밋을 거부하도록 GitLab을 구성할 수 있습니다.

히스토리
  • GitLab 16.9에서 git_guardian_integration이라는 기능 플래그와 함께 도입되었습니다. 기본적으로 활성화되어 있습니다. GitLab.com에서는 비활성화되어 있습니다.
  • GitLab 17.7에서 GitLab.com에서 활성화되었습니다.
  • GitLab 17.8에서 일반 공개되었습니다. 기능 플래그 git_guardian_integration은 제거되었습니다.
  • api_url 파라미터는 GitLab 19.1에서 도입되었습니다.

GitGuardian은 소스 코드 리포지터리에서 API 키, 비밀번호, 토큰 같은 하드코딩된 자격 증명을 찾아내는 시크릿 탐지 서비스입니다. 이 통합을 활성화하면 GitLab은 각 푸시를 GitGuardian으로 보내 스캔합니다. GitGuardian 이 시크릿을 탐지하면 GitLab은 해당 푸시를 차단합니다.

GitGuardian 정책에 따라 커밋을 거부하도록 GitLab을 구성할 수 있습니다.

GitGuardian 통합을 설정하려면 다음 단계를 수행합니다.

  1. GitGuardian API 토큰을 만듭니다.
  2. 프로젝트에 GitGuardian 통합을 설정합니다.

GitGuardian API 토큰 만들기#

사전 요구 사항:

  • GitGuardian 계정이 있어야 합니다.

API 토큰을 만들려면 다음 단계를 수행합니다.

  1. GitGuardian 계정에 로그인합니다.
  2. 사이드바에서 API 섹션으로 이동합니다.
  3. API 섹션 사이드바에서 Personal access tokens 페이지로 이동합니다.
  4. Create token을 선택합니다. 토큰 생성 대화 상자가 열립니다.
  5. 토큰 정보를 입력합니다.
    • API 토큰에 용도를 알 수 있는 의미 있는 이름을 지정합니다. 예를 들어 GitLab integration token으로 지정합니다.
    • 적절한 만료 기한을 선택합니다.
    • scan scope 체크박스를 선택합니다. 이 통합에 필요한 유일한 범위입니다.
  6. Create token을 선택합니다.
  7. 토큰을 생성한 뒤 클립보드에 복사합니다. 이 토큰은 민감한 정보이므로 안전하게 보관합니다.

이제 통합에 사용할 GitGuardian API 토큰을 만들었습니다.

프로젝트에 GitGuardian 통합 설정#

사전 요구 사항:

  • 프로젝트에 대한 Maintainer 또는 Owner 권한이 있어야 합니다.

API 토큰을 만들어 복사한 뒤, 커밋을 거부하도록 GitLab을 구성합니다.

프로젝트에 통합을 활성화하려면 다음 단계를 수행합니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트나 그룹을 찾습니다.

  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.

  3. GitGuardian을 선택합니다.

  4. Enable integration에서 Active 체크박스를 선택합니다.

  5. 선택 사항. API endpoint 텍스트 상자에 GitGuardian 인스턴스의 기본 URL을 입력합니다.

    • GitGuardian EU SaaS는 https://api.eu1.gitguardian.com을 입력합니다.
    • 자체 호스팅 GitGuardian은 인스턴스 URL을 입력합니다(예: https://gitguardian.example.com).

    비워 두면 GitLab은 기본 US SaaS 엔드포인트(https://api.gitguardian.com)를 사용합니다.

  6. API token에 GitGuardian에서 복사한 토큰 값을 붙여 넣습니다.

  7. 선택 사항. Test settings를 선택합니다.

  8. Save changes를 선택합니다.

이제 GitLab은 GitGuardian 정책에 따라 커밋을 거부할 준비가 되었습니다.

시크릿 탐지 건너뛰기#

히스토리
  • GitLab 17.0에서 도입되었습니다.

필요하면 GitGuardian 시크릿 탐지를 건너뛸 수 있습니다. 푸시에 포함된 모든 커밋에 대해 시크릿 탐지를 건너뛰는 방법은 기본 시크릿 탐지의 방법과 같습니다. 다음 중 하나를 수행합니다.

  • 커밋 메시지 중 하나에 [skip secret push protection]을 추가합니다.
  • secret_push_protection.skip_all 푸시 옵션을 사용합니다.

알려진 문제#

  • 푸시가 지연되거나 시간 초과될 수 있습니다. GitGuardian 통합에서는 다음과 같습니다.
    • 푸시가 서드파티로 전송됩니다.
    • GitLab은 GitGuardian과의 연결이나 GitGuardian의 처리 과정을 제어할 수 없습니다.
  • GitGuardian API 제한 때문에 이 통합은 1 MB를 초과하는 파일을 무시합니다. 해당 파일은 스캔되지 않습니다.
  • 푸시한 파일의 이름이 256자를 초과하면 푸시가 실패합니다.
  • 자세한 내용은 GitGuardian API 문서를 참고합니다.

아래 문제 해결 단계에서 이러한 문제 중 일부를 완화하는 방법을 설명합니다.

문제 해결#

GitGuardian 통합을 사용할 때 다음 문제가 발생할 수 있습니다.

500 HTTP 오류#

HTTP 500 오류가 발생할 수 있습니다.

이 문제는 변경된 파일이 많은 커밋에서 요청이 시간 초과될 때 발생합니다.

커밋에서 파일을 50개 넘게 변경할 때 이 문제가 발생하면 다음 단계를 수행합니다.

  1. 변경 사항을 더 작은 커밋으로 나눕니다.
  2. 나눈 커밋을 하나씩 푸시합니다.

오류: Filename: ensure this value has at most 256 characters#

Filename: ensure this value has at most 256 characters라는 HTTP 400 오류가 발생할 수 있습니다.

이 문제는 해당 커밋으로 푸시하는 변경 파일 중 일부의 파일 이름(경로가 아님)이 256자를 초과할 때 발생합니다.

가능하면 파일 이름을 줄이는 것이 해결 방법입니다. 예를 들어 프레임워크가 자동으로 생성한 이름이라 줄일 수 없다면, 통합을 비활성화하고 다시 푸시합니다. 필요하다면 그 뒤에 통합을 다시 활성화합니다.