上級管理者
どのクライアントがモデルに到達できるかを決める
User-Agent、オリジン、任意のヘッダーで許可 / 拒否するリクエストヘッダーのアクセスルール。グローバル、キーグループ、単一キーのスコープで適用できます。
コミュニティが実際に不満を言っていること
「キーが漏れたら、持っている誰でもクォータを焼ける」「社内のコーディングエージェントは許可したいが、素の curl やスクレイパーは止めたい」「ベンダーのコンソールには IP 許可リストがあるが、こちらのトラフィックは動的でプロキシの背後なので合わない」。
強制はリクエストが到着する場所、つまりゲートウェイで行う必要があります。開発者が切り替えられるクライアント側の設定ではいけません。
GateLLM の実現方法
GateLLM はすべてのリクエストで HTTP ヘッダーに対して受け入れルールを評価します。6 つのマッチ種別(完全一致 / 前方一致 / 正規表現 / 存在 / 不在 / 任意)と 3 つのスコープ(グローバル / キーグループ / キー)があり、sort_order で順序付けされ、最初の一致が採用されます。
「承認済みのクライアントのみ」を実現するには許可リストモードを使います。グループの既定アクションを deny にし、クライアントのシグネチャに一致する許可ルールを 1 つ追加すれば、それ以外はモデルに到達する前に拒否されます。
実際に効果が出る 5 つのレバー
- 6 つのマッチ種別:完全一致 / 前方一致 / 正規表現 / 存在 / 不在 / 任意。1 つのルールで正規表現の選択により「A または B または C」を表現可能
- 3 つのスコープ:グローバル、キーグループ単位、キー単位。最初の一致を採用し、同じ順序ではグローバルが優先
- 許可リストモード:既定 deny + 明示的な allow 1 つ。未知の新しいクライアントは既定で拒否
- ルールはモデル一覧のルート(/v1/models)にも適用され、拒否されたクライアントはエンドツーエンドで締め出される
- ReDoS 安全な線形時間の正規表現エンジン。病的なパターンはリクエスト時ではなく読み込み時に拒否