OpenAI
Ta strona została przetłumaczona maszynowo. Wyświetl oryginalny artykuł w języku angielskim.

Dobre praktyki ochrony kluczy API

Chroń klucze API dzięki bezpiecznemu przechowywaniu, kontroli dostępu, monitorowaniu, rotacji i ograniczeniom adresów IP.

Zaktualizowano: 3 days ago

1. Zawsze używaj osobnego klucza API dla każdego członka zespołu na twoim koncie.

Klucz API to unikatowy kod, który identyfikuje twoje żądania do API. Twój klucz API jest przeznaczony wyłącznie do twojego użytku. Udostępnianie kluczy API jest niezgodne z Warunkami użytkowania.

Gdy zaczniesz eksperymentować z API, możesz zechcieć udostępnić je także swojemu zespołowi. OpenAI nie wspiera współdzielenia kluczy API. Zaproś nowych członków do swojego konta na stronie Członkowie, a po zalogowaniu szybko otrzymają własny, unikatowy klucz. Możesz też przypisywać uprawnienia poszczególnym kluczom API.

2. Twórz klucze API z datą wygaśnięcia i wprowadź proces rotacji kluczy

Klucze projektu można tworzyć z datą wygaśnięcia, po której wszystkie żądania korzystające z tych kluczy będą odrzucane. Zdecydowanie zalecamy tworzenie kluczy z datą wygaśnięcia i wprowadzenie procesu regularnej rotacji kluczy. Zanim klucz wygaśnie, utwórz nowy i zaktualizuj aplikacje, aby z niego korzystały. Gdy potwierdzisz, że nowy klucz działa, unieważnij stary. Te praktyki mogą znacznie ograniczyć skutki wycieku kluczy API.

Administratorzy mogą wymusić maksymalny okres ważności kluczy API na poziomie organizacji lub projektu w ustawieniach platformy. Nowe klucze muszą być konfigurowane w dozwolonych granicach, dzięki czemu nie mogą pozostawać ważne bezterminowo. Limity projektów nie mogą przekraczać limitu organizacji.

W przypadku obsługiwanych obciążeń używaj federacji tożsamości obciążeń zamiast przechowywać klucz API OpenAI o długim okresie ważności. Obciążenie wymienia tożsamość od zaufanego dostawcy na krótkotrwały token dostępu do OpenAI. Skonfiguruj dedykowane konto usługi, nadając mu tylko uprawnienia niezbędne dla danego obciążenia.

3. Nigdy nie umieszczaj klucza w środowiskach po stronie klienta, takich jak przeglądarki czy aplikacje mobilne.

Ujawnienie klucza API OpenAI w środowiskach po stronie klienta, takich jak przeglądarki czy aplikacje mobilne, pozwala osobom o złych zamiarach przejąć go i wysyłać żądania w Twoim imieniu. Może to prowadzić do nieoczekiwanych opłat lub naruszenia bezpieczeństwa niektórych danych konta. Żądania należy zawsze kierować przez własny serwer backendowy, na którym można bezpiecznie przechowywać klucz API.

4. Nigdy nie zapisuj klucza w repozytorium

Zapisywanie klucza API w kodzie źródłowym jest częstą przyczyną przejęcia danych uwierzytelniających. W przypadku publicznych repozytoriów jest to częsty sposób nieświadomego udostępnienia klucza w internecie. Prywatne repozytoria są bezpieczniejsze, ale naruszenie ochrony danych również może doprowadzić do wycieku kluczy. Z tych powodów zdecydowanie zalecamy używanie zmiennych środowiskowych jako aktywnego środka ochrony kluczy.

5. Używaj zmiennych środowiskowych zamiast wpisywać klucz API bezpośrednio

Konfiguracja w systemie Windows

Zmienna środowiskowa to zmienna ustawiana w systemie operacyjnym, a nie wewnątrz aplikacji. Składa się z nazwy i wartości. Zalecamy nadanie zmiennej nazwy OPENAI_API_KEY. Używanie tej samej nazwy zmiennej w całym zespole pozwala zapisywać zmiany w repozytorium i udostępniać kod bez ryzyka ujawnienia klucza API.


Opcja 1: Ustaw zmienną środowiskową „OPENAI_API_KEY” w wierszu polecenia cmd

Uruchom poniższe polecenie w wierszu polecenia cmd, zastępując <yourkey> swoim kluczem API:

setx OPENAI_API_KEY "<yourkey>"

Zmiana będzie obowiązywać w kolejnych oknach wiersza polecenia cmd, dlatego aby użyć tej zmiennej z curl, musisz otworzyć nowe okno. Aby sprawdzić, czy zmienna została ustawiona, otwórz nowe okno wiersza polecenia cmd i wpisz

echo %OPENAI_API_KEY%

Opcja 2: Ustaw zmienną środowiskową „OPENAI_API_KEY” w Panelu sterowania

  1. Otwórz właściwości systemu i wybierz Zaawansowane ustawienia systemu

Windows 10 System settings with Advanced system settings highlighted in Control Panel
  1. Wybierz Zmienne środowiskowe...

Windows System Properties Advanced tab with Environment Variables button highlighted
  1. Wybierz Nowa… w sekcji zmiennych użytkownika (u góry). Dodaj parę nazwa/wartość klucza, zastępując <yourkey> swoim kluczem API.

Nazwa zmiennej: OPENAI_API_KEY
Wartość zmiennej: <yourkey>

Konfiguracja w systemach Linux i macOS

Opcja 1: Ustaw zmienną środowiskową „OPENAI_API_KEY” za pomocą zsh

  1. Uruchom poniższe polecenie w terminalu, zastępując yourkey swoim kluczem API.

echo "export OPENAI_API_KEY='yourkey'" >> ~/.zshrc
  1. Zaktualizuj powłokę za pomocą nowej zmiennej:

source ~/.zshrc
  1. Potwierdź, że zmienna środowiskowa została ustawiona, używając następującego polecenia.

echo $OPENAI_API_KEY

Wartością Twojego klucza API będzie wynikowe wyjście.


Opcja 2: Ustaw zmienną środowiskową „OPENAI_API_KEY” za pomocą bash

Postępuj zgodnie z instrukcjami z Opcji 1, zastępując .zshrc przez .bash_profile.

Gotowe! Możesz teraz odwoływać się do klucza w curl lub wczytać go w Pythonie:

import os
import openai

openai.api_key = os.environ["OPENAI_API_KEY"]

6. Korzystaj z usługi zarządzania kluczami

Dostępnych jest wiele produktów do bezpiecznego zarządzania tajnymi kluczami API. Narzędzia te pozwalają kontrolować dostęp do kluczy i zwiększać ogólny poziom bezpieczeństwa danych. W razie naruszenia bezpieczeństwa danych w aplikacji twoje klucze pozostałyby bezpieczne, ponieważ byłyby zaszyfrowane i zarządzane w zupełnie innej lokalizacji.

Zespołom wdrażającym aplikacje w środowisku produkcyjnym zalecamy rozważenie jednej z takich usług.

7. Monitoruj wykorzystanie konta i w razie potrzeby wymieniaj klucze

Ustaw miesięczne limity wydatków dla organizacji lub projektów i włącz ich ścisłe egzekwowanie, aby ograniczyć nieoczekiwane koszty w razie wycieku klucza. Same alerty o wydatkach nie zatrzymują ruchu API. Ścisłe egzekwowanie limitu może blokować prawidłowe żądania. Wydatki mogą też nieznacznie przekroczyć limit, ponieważ jego egzekwowanie nie następuje natychmiast.

Przejęty klucz API pozwala innej osobie korzystać z limitu przypisanego do twojego konta bez twojej zgody. Może to prowadzić do utraty danych, nieoczekiwanych opłat, wyczerpania miesięcznego limitu oraz przerwy w dostępie do API.

Wykorzystanie API przez zespoły można śledzić na stronie Wykorzystanie. Jeśli podejrzewasz nadużycie, możesz podjąć kilka działań, aby chronić swoje konto:

  • Sprawdź, czy wykorzystanie API odpowiada pracy twojego zespołu. W przypadku użytkowników należących do wielu organizacji (np. firmowej i osobistej) upewnij się, że każdy z nich włączył śledzenie i ustawił domyślną organizację na potrzeby korzystania z API i śledzenia jego wykorzystania.

  • Jeśli podejrzewasz wyciek klucza, natychmiast wymień go na stronie Klucze API. Jeśli masz aplikacje działające w środowisku produkcyjnym, musisz odpowiednio zaktualizować w nich wartości kluczy.

  • Skontaktuj się z nami przez help.openai.com, aby dokładniej zbadać sprawę.

8. Chroń dostęp do API za pomocą zabezpieczeń sieciowych

Lista dozwolonych adresów IP pozwala ograniczyć dostęp do API OpenAI do wybranych adresów IP. Po jej włączeniu dozwolone są tylko żądania ze skonfigurowanych adresów IP lub ich zakresów. Wszystkie pozostałe są odrzucane — nawet jeśli zawierają prawidłowy klucz API.

Zapewnia to dodatkową warstwę ochrony: dostęp do API jest możliwy tylko z zaufanej infrastruktury, takiej jak serwery zaplecza lub środowisko chmurowe.

Więcej informacji znajdziesz w artykule o liście dozwolonych adresów IP dla API OpenAI.

Private Link to kolejna opcja dla organizacji, które potrzebują dostępu przez sieć prywatną. Umożliwia aplikacjom i usługom działającym w Azure łączenie się z regionalnymi punktami końcowymi API OpenAI przez Azure Private Link. Aby uzyskać dostęp, skontaktuj się ze swoim przedstawicielem OpenAI lub działem sprzedaży. Uwierzytelnianie w API nadal jest wymagane, a Private Link nie można używać razem z listą dozwolonych adresów IP ani wzajemnym uwierzytelnianiem TLS (mTLS). Szczegóły konfiguracji znajdziesz w przewodniku po Private Link.

Czy ten artykuł był pomocny?