속도 제한
GitLab v19.4Offering: GitLab Self-Managed, GitLab Dedicated
요약
For GitLab.com, see GitLab.com-specific rate limits. For GitLab Dedicated, see Authenticated user rate limits. 속도 제한은 웹 애플리케이션의 보안과 내구성을 개선하기 위해 흔히 쓰이는 기법입니다.
For GitLab.com, see GitLab.com-specific rate limits.
For GitLab Dedicated, see Authenticated user rate limits.
속도 제한은 웹 애플리케이션의 보안과 내구성을 개선하기 위해 흔히 쓰이는 기법입니다.
예를 들어 간단한 스크립트만으로도 초당 수천 건의 웹 요청을 보낼 수 있습니다. 이러한 요청은 다음과 같을 수 있습니다.
- 악의적인 요청.
- 무관심한 요청.
- 단순한 버그로 인한 요청.
애플리케이션과 인프라가 이러한 부하를 감당하지 못할 수 있습니다. 자세한 내용은 서비스 거부 공격(Denial-of-service attack)을 참고합니다. 대부분의 경우 단일 IP 주소에서 오는 요청 속도를 제한하는 것으로 완화할 수 있습니다.
대부분의 무차별 대입 공격(brute-force attack)도 속도 제한으로 유사하게 완화됩니다.
API 요청에 대한 속도 제한은 프론트엔드가 보내는 요청에는 영향을 주지 않습니다. 이러한 요청은 항상 웹 트래픽으로 집계되기 때문입니다.
설정 옵션#
대부분의 속도 제한은 Admin 영역에서 설정할 수 있습니다. 일부는 API 또는 Rails 콘솔을 통해서만 설정할 수 있으며, GitLab Pages 속도 제한은 설정 파일에서 설정합니다.
Admin 영역#
인스턴스의 Admin 영역에서 다음 속도 제한을 설정할 수 있습니다.
- API 속도 제한
- 콘텐츠 생성 속도 제한
- Git 작업 속도 제한
- 가져오기 및 내보내기 속도 제한
- 인시던트 관리 속도 제한
- 파이프라인 생성 속도 제한
- 보호된 경로
- 원시 엔드포인트 속도 제한
- 사용자 및 IP 속도 제한
- 웹훅 작업 속도 제한
API 및 Rails 콘솔#
애플리케이션 설정 API로 다음 속도 제한을 설정할 수 있습니다.
- 자동 완성 사용자 속도 제한
- AI action(
ai_action_api_rate_limit): 인증된 사용자 1명당 8시간에 160회 호출. GraphQLaiAction뮤테이션에 적용됩니다. - 태그 생성 속도 제한(
tags_create_limit): 프로젝트 1개당 30분에 100회 요청. 태그 생성용 REST API 엔드포인트, GraphQLtagCreate뮤테이션, UI 에서의 태그 생성,/tag퀵 액션에 적용됩니다.
플랜 한도 API 또는 Rails 콘솔로 다음 속도 제한을 설정할 수 있습니다.
설정 파일#
다음 속도 제한은 설치본의 설정 파일에서만 설정할 수 있습니다. 예를 들어
Linux 패키지 설치본에서는 /etc/gitlab/gitlab.rb 입니다.
설정 불가능한 한도#
일부 속도 제한은 설정할 수 없습니다. 이러한 한도 목록은 설정 불가능한 속도 제한을 참고합니다.
차단 및 정지#
일부 보호 기능은 요청 속도를 늦추는 대신 일정 기간 동안 클라이언트를 차단합니다. 자세한 내용은 악용 및 인증 실패 차단을 참고합니다.