사용자 파일 업로드
사용자는 다음 위치로 파일을 업로드할 수 있습니다:
- 프로젝트의 이슈 또는 Merge Request.
- 그룹의 에픽.
GitLab은 무단 사용자가 URL을 추측하는 것을 방지하기 위해 무작위 32자 ID로 이러한 이미지에 대한 직접 URL을 생성합니다. 이 무작위화는 민감한 정보를 포함한 이미지에 대한 일부 보안을 제공합니다.
업로드된 파일의 액세스 제어
- 기본적으로 비활성화된 GitLab 14.8에 추가된 강제 권한 확인(Enforced authorization checks) 플래그
enforce_auth_checks_on_uploads
.- 강제 권한 확인이 GitLab 15.3에서 일반적으로 사용 가능해졌습니다. 플래그
enforce_auth_checks_on_uploads
가 삭제되었습니다.- 사용자 인터페이스에서 프로젝트 설정이 GitLab 15.3에서 도입되었습니다.
다음 위치로 업로드된 비-이미지 파일에 대한 액세스는 다음과 같이 결정됩니다:
- 프로젝트의 이슈 또는 Merge Request은 프로젝트 가시성에 의해 결정됩니다.
- 그룹 에픽은 그룹 가시성에 따라 결정됩니다.
공개 프로젝트 또는 그룹의 경우 문제, Merge Request 또는 에픽이 비밀일지라도 누구나 직접 첨부 URL을 통해 이러한 파일에 액세스할 수 있습니다. 비공개 및 내부 프로젝트의 경우 GitLab은 인증된 프로젝트 구성원만이 PDF와 같은 비-이미지 파일 업로드에 액세스할 수 있도록 보장합니다. 기본적으로 이미지 파일은 동일한 제한이 적용되지 않으며 URL을 사용하여 누구나 볼 수 있습니다. 이미지 파일을 보호하려면 모든 미디어 파일에 대한 인증 확인을 활성화하여 인증된 사용자만 볼 수 있도록 만들 수 있습니다.
이미지에 대한 인증 확인은 알림 이메일의 본문에서 표시 문제를 일으킬 수 있습니다. 이메일은 Outlook, Apple Mail 또는 모바일 장치와 같은 클라이언트에서 자주 읽힙니다. 이메일 내 이미지가 GitLab에 인증되지 않은 클라이언트에서는 깨지고 사용할 수 없는 상태로 나타납니다.
모든 미디어 파일에 대한 인증 확인 활성화
비공개 또는 내부 프로젝트에서 이미지 파일에 인증 요구 사항을 적용할 수 있습니다:
필수 조건:
- 프로젝트에 대해 Maintainer 또는 Owner 역할이 있어야 합니다.
- 프로젝트 가시성 설정은 비공개 또는 내부 여야 합니다.
모든 미디어 파일에 대한 인증 설정을 구성하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 일반을 선택합니다.
- 가시성, 프로젝트 기능, 권한을 확장합니다.
- 프로젝트 가시성으로 스크롤하고 미디어 파일 보기에 대한 인증 필요을 선택합니다.
업로드된 파일 삭제
- GitLab 15.3에서 도입되었습니다.
민감하거나 기밀 정보가 포함된 파일은 삭제해야 합니다. 파일을 삭제하면 사용자가 해당 파일에 액세스할 수 없으며 직접 URL은 404 오류를 반환합니다.
프로젝트 소유자 및 유지 관리자는 상호작용하는 GraphQL 탐색기를 사용하여 GraphQL 엔드포인트에 액세스하여 업로드된 파일을 삭제할 수 있습니다.
예시:
mutation{
uploadDelete(input: { projectPath: "<프로젝트 경로>", secret: "<32자 ID>", filename: "<파일명>" }) {
upload {
id
size
path
}
errors
}
}
소유자 또는 유지 관리자 역할이 없는 프로젝트 구성원은 이 GraphQL 엔드포인트에 액세스할 수 없습니다.