사용자 파일 업로드

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

사용자는 다음 위치에 파일을 업로드할 수 있습니다.

  • 프로젝트의 이슈 또는 병합 요청
  • 그룹의 이픽스

GitLab은 이러한 이미지에 대한 무단 사용자가 URL을 추측하는 것을 방지하기 위해 무작위 32자 ID로 직접 URL을 생성합니다. 이 무작위화는 민감한 정보를 포함한 이미지에 대해 일부 보안을 제공합니다.

업로드된 파일의 액세스 제어

  • GitLab 14.8에서 도입된 강제 인가 확인을 하는 상태 커맨드 enforce_auth_checks_on_uploads로 기본값이 비활성화되었습니다.
  • 강제 인가 확인은 GitLab 15.3에서 일반 사용 가능해졌습니다. 기능 플래그 enforce_auth_checks_on_uploads가 제거되었습니다.
  • 사용자 인터페이스에서 프로젝트 설정이 GitLab 15.3에서 도입되었습니다.

프로젝트 가시성에 따라 다음 위치에 업로드된 비-이미지 파일에 대한 액세스가 결정됩니다.

  • 이슈 또는 병합 요청: 프로젝트 가시성에 따라 결정됨.
  • 그룹 이픽스: 그룹 가시성에 따라 결정됨.

공개 및 내부 프로젝트 또는 그룹의 경우, 이슈, 병합 요청 또는 에픽이 비밀일지라도 누구나 이러한 파일에 직접 첨부 URL을 통해 액세스할 수 있습니다. 비공개 및 내부 프로젝트에서는 GitLab이 PDF와 같은 비-이미지 파일에 대한 액세스를 인증된 프로젝트 구성원만 가능하게 보장합니다. 기본적으로 이미지 파일에는 동일한 제한이 적용되지 않으며 URL을 사용하여 누구든지 볼 수 있습니다. 이미지 파일을 보호하려면 모든 미디어 파일에 대한 인가 확인을 활성화하여 인증된 사용자만 볼 수 있게 설정하세요.

이미지에 대한 인증 확인은 알림 이메일의 본문에서 표시 문제를 일으킬 수 있습니다. 이메일은 Outlook, Apple Mail 또는 모바일 장치와 같은 클라이언트에서 자주 읽힙니다. 이메일의 이미지는 GitLab에 인증되지 않은 클라이언트에서는 깨져 보이고 이용할 수 없습니다.

모든 미디어 파일에 대한 인가 확인 활성화

비공개 또는 내부 프로젝트에서는 인증된 프로젝트 구성원만 비-이미지 첨부 파일(PDF 포함)을 볼 수 있습니다.

비공개 또는 내부 프로젝트의 이미지 파일에도 인증 요구사양을 적용하려면:

사전 요구사항:

  • 해당 프로젝트에 대해 Maintainer 또는 Owner 역할이 있어야 합니다.
  • 프로젝트 가시성 설정은 비공개 또는 내부여야 합니다.

모든 미디어 파일에 대한 인증 설정을 구성하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 일반을 선택합니다.
  3. 가시성, 프로젝트 기능, 권한을 확장합니다.
  4. 프로젝트 가시성로 스크롤하여 미디어 파일 보기에 대한 인증 필요을 선택합니다.

참고: 이 옵션은 공개 프로젝트에서 선택할 수 없습니다.

업로드된 파일 삭제

민감하거나 비밀 정보를 포함하는 경우 업로드된 파일을 삭제해야 합니다. 파일을 삭제하면 사용자가 해당 파일에 액세스할 수 없으며 직접 URL은 404 오류를 반환합니다.

프로젝트 소유자 및 유지자는 대화형 GraphQL 탐색기를 사용하여 GraphQL 엔드포인트에 액세스하고 업로드된 파일을 삭제할 수 있습니다.

예시:

mutation{
  uploadDelete(input: { projectPath: "<path/to/project>", secret: "<32-character-id>" , filename: "<filename>" }) {
    upload {
      id
      size
      path
    }
    errors
  }
}

소유자 또는 유지자 역할이 아닌 프로젝트 구성원은 이 GraphQL 엔드포인트에 액세스할 수 없습니다.