Przejdź do głównej treści
Klucz bez ograniczenia źródła to czyste poświadczenie na okaziciela: ktokolwiek trzyma ten ciąg, może go okazać skądkolwiek. Pole allow_ips zamienia klucz w klucz api z listą dozwolonych ip — działa tylko, gdy okazany z adresu źródłowego, który wypisałeś. Wyciekły klucz odtworzony z maszyny atakującego, proxy rezydencjalnego lub skompromitowanego runnera CI jest odrzucany, zanim dotknie modelu. To połowa wiązania źródła z minimalnych uprawnień: model_limits ogranicza, które modele klucz może osiągnąć, a allow_ips ogranicza, skąd klucz może być okazany.

1. Co robi allow_ips

allow_ips trzyma listę adresów źródłowych lub zakresów CIDR. Przy każdym żądaniu OrcaRouter porównuje źródłowe IP wywołującego z tą listą:
  • Dopasowanie → żądanie przechodzi do sprawdzeń limitów modeli, kwoty i polityki.
  • Brak dopasowania → żądanie jest odrzucane na warstwie uwierzytelniania z HTTP 403 (access_denied), przed jakimkolwiek wywołaniem modelu nadrzędnego.
  • Pusta lista → brak ograniczenia; klucz jest akceptowany z dowolnego adresu.
Sprawdzenie to pierwsza bramka, którą przechodzi klucz, obok ważności klucza — odbywa się przed guardrails, przed firewallem, przed pomiarem. Niewypisane źródło nigdy nie dociera do twoich polityk ani twojego salda.
Pusta allow_ips oznacza wszystkie IP dozwolone, a nie żadne. Pozostawienie pustego pola to nieograniczony domyślny stan — przypnij klucz, by pole cokolwiek robiło.

2. Akceptowane formaty

Każdy wpis to pojedynczy adres IP lub zakres CIDR. Mieszaj oba dowolnie; wypisz jeden wpis na linię.

Pojedynczy adres

203.0.113.7 — dokładnie jeden host. Najlepsze dla serwera o stałym IP lub bramy NAT ze stabilnym adresem egressu.

Zakres CIDR

203.0.113.0/24 — cały blok. Najlepsze dla podsieci chmurowej, puli VPN lub grupy autoskalowania za jednym CIDR egressu.
Goły IP dopasowuje ten jeden adres; CIDR dopasowuje każdy adres w bloku. Parsują się zarówno literały IPv4, jak i IPv6.
Przypnij do najwęższego zakresu, który wciąż obejmuje każdego prawowitego wywołującego. Jeden host (/32) jest ciaśniejszy niż /24; /24 jest ciaśniejsze niż „skądkolwiek”. Każdy bit, który porzucasz, poszerza zbiór miejsc, w których wyciekły klucz wciąż działa.

3. Ustaw to w konsoli

Ustaw allow_ips w edytorze klucza pod /console/token. Tworzenie lub edycja klucza wymaga roli Developer lub wyższej.
  1. Otwórz Konsola → Klucze API i utwórz lub edytuj klucz.
  2. W edytorze klucza wpisz swoje zaufane adresy w polu Lista dozwolonych IP — jeden IP lub CIDR na linię.
  3. Zapisz. Ograniczenie obowiązuje przy następnym żądaniu, które ten klucz wykonuje — bez ponownego wdrożenia, bez zmiany w kodzie agenta.
Zweryfikuj prawdziwy adres źródłowy, który widzi brama, zanim zablokujesz klucz. Jeśli twój agent siedzi za NAT, load balancerem lub proxy egressu, adres, który obserwuje OrcaRouter, to ten przeskok egressu — nie prywatne IP agenta. Umieść na liście dozwolonych adres egressu i przetestuj z wdrożonego środowiska, zanim ruszysz na produkcję.

4. Jeden konkretny przykład: zaplanowany agent

Zaplanowane zadanie, które streszcza zgłoszenia, działa tylko z jednej podsieci chmurowej. Przypnij jego klucz do tej podsieci, tak by poświadczenie było bezużyteczne gdziekolwiek indziej.
PoleWartośćEfekt
allow_ips203.0.113.0/24tylko blok egressu schedulera może okazać ten klucz
model_limitsjeden model do streszczanianie może eskalować do modelu z pierwszej linii
credit_limit_usdtygodniowy pułaprozbiegana pętla nie wydrenuje salda
Samo wywołanie relay jest niezmienione — wciąż używa klucza sk-orca-… jako tokenu na okaziciela:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Summarize this ticket..."}]
  }'
Okazane z wnętrza 203.0.113.0/24, wywołanie przechodzi. Odtwórz dokładnie to samo żądanie z dowolnego innego adresu, a brama zwraca:
{
  "error": {
    "message": "您的 IP 不在令牌允许访问的列表中 (request id: ...)",
    "type": "orcarouter_api_error",
    "code": "access_denied"
  }
}
Model nigdy nie jest wywoływany, żadna kwota nie jest wydana, a odrzucenie jest logowane.
allow_ips jest konfigurowane całkowicie przez edytor klucza w konsoli — akcja Developer-lub-wyżej na twojej sesji przestrzeni roboczej. Nie ma samoobsługi kluczem relay: klucz nie może poszerzyć własnej listy dozwolonych źródeł.

5. Co lista dozwolonych IP zawiera, a czego nie

Klucz api z listą dozwolonych ip ogranicza, gdzie klucz działa — jeden wycinek promienia rażenia. Komponuje się z innymi polami zakresu, zamiast je zastępować.
Poświadczenie wyekstrahowane z logów, commita git lub naruszonego laptopa to martwy ciężar, chyba że atakujący potrafi też wygenerować ruch z twojego dozwolonego zakresu. To główna praca tego pola — zobacz wyciekły klucz dla pełnej reakcji na incydent.
Jeśli kompromitacja jest na dozwolonym hoście — zatruta zależność działająca na twoim własnym serwerze — sprawdzenie źródłowego IP przechodzi. Połącz allow_ips z model_limits, limitem wydatków i polityką firewalla, tak by kompromitacja z zaufanego źródła wciąż była ograniczona.
Przypięcie IP nie czyni klucza krótkożyciowym. Połącz je z bezwzględnym wygaśnięciem i harmonogramem rotacji, tak by klucz i przestał działać z nowych miejsc, i przestał działać kiedyś.

6. Notatki operacyjne

Jeśli twoi wywołujący nie mają stabilnego adresu źródłowego (serverless z rotującym egressem, klienci mobilni, szerokie sieci biurowe), przypięcie IP to zła kontrola — albo zablokujesz prawdziwy ruch, albo poszerzysz zakres, aż stanie się bez znaczenia. Oprzyj się na model_limits, limitach wydatków, wygaśnięciu i załącznikach polityk.
Edycja allow_ips wchodzi w życie przy następnym żądaniu — nie ma opóźnienia propagacji do przeczekania. Gdy dodajesz region lub migrujesz podsieć, najpierw zaktualizuj klucz, potwierdź, że nowy zakres działa, potem porzuć stary.
allow_ips żyje na pojedynczym kluczu, więc każdy agent może mieć własne wiązanie źródła. Klucz schedulera może przypiąć się do podsieci wsadowej, a klucz interaktywny pozwolić na szerszy zakres biurowy — oba w tej samej przestrzeni roboczej.

7. Kolejne kroki

Obiekt tokenu

Każde pole na kluczu, w tym allow_ips, w jednej referencji.

Limity modeli

Ogranicz, do których modeli klucz może sięgnąć — druga połowa wiązania źródła + zakresu.

Wyciekły klucz

Co zrobić w chwili, gdy klucz zostanie ujawniony.

Lista kontrolna minimalnych uprawnień

Przepuść każdy klucz przez ten sam przebieg utwardzania.
Lista dozwolonych IP to najtańsze cięcie promienia rażenia, jakie możesz zrobić: jedno pole, brak zmiany kodu, a wyciekły klucz przestaje działać zewsząd, gdzie nie miał działać. Połącz to z resztą modelu kluczy o ograniczonym zakresie dla obrony w głąb.