レート制限
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
GitLab.comについては、GitLab.comのレート制限を参照してください。
GitLab Dedicatedについては、認証済みユーザーのレート制限を参照してください。
レート制限は、ウェブアプリケーションのセキュリティと耐久性を向上させるためによく使われる技術です。
例えば、シンプルなスクリプトで1秒あたり数千のリクエストを生成できます。リクエストは次のいずれかの可能性があります:
- 悪意のあるもの。
- 無関心なもの。
- 単なるバグ。
アプリケーションとインフラストラクチャは、その負荷に対応できない可能性があります。詳細については、サービス拒否を参照してください。ほとんどの場合、単一のIPアドレスからのリクエストのレートを制限することで軽減できます。
ほとんどのブルートフォース攻撃は、同様にレート制限によって軽減されます。
APIリクエストのレート制限は、フロントエンドからのリクエストには影響しません。これらのリクエストは常にウェブトラフィックとしてカウントされるためです。
設定オプション
ほとんどのレート制限は、管理者エリアで設定できます。一部はAPIまたはRailsコンソールからのみ利用可能で、GitLab Pagesのレート制限は設定ファイルで設定します。
管理者エリア
これらのレート制限は、インスタンスの管理者エリアで設定できます:
- APIレート制限
- コンテンツ作成レート制限
- Git操作レート制限
- インポートとエクスポートのレート制限
- インシデント管理レート制限
- パイプライン作成レート制限
- 保護されたパス
- rawエンドポイントのレート制限
- ユーザーとIPのレート制限
- Webhook操作レート制限
APIとRailsコンソール
これらのレート制限は、アプリケーション設定APIで設定できます:
- オートコンプリートユーザーのレート制限
- AIアクション(
ai_action_api_rate_limit): 認証済みユーザーごとに8時間あたり160回の呼び出し。GraphQLのaiActionミューテーションに適用されます。 - タグ作成レート制限(
tags_create_limit): プロジェクトごとに30分あたり100リクエスト。タグを作成するためのREST APIエンドポイント、GraphQLのtagCreateミューテーション、UIでのタグ作成、および/tagクイックアクションに適用されます。
このレート制限は、プラン制限APIまたはRailsコンソールで設定できます:
設定ファイル
これらのレート制限は、お使いのインストールの設定ファイルでのみ設定できます。例えば、Linuxパッケージインストールでは/etc/gitlab/gitlab.rbです:
設定できない制限
一部のレート制限は設定できません。これらの制限のリストについては、設定不可能なレート制限を参照してください。
利用停止とブロック
一部の保護機能は、リクエストを遅くするのではなく、一定期間クライアントをブロックします。詳細については、悪用および認証失敗による利用停止を参照してください。