OpenAI
Для перекладу цієї сторінки виконано машинний переклад. Ви можете переглянути оригінальну статтю англійською.

Найкращі практики безпеки API-ключів

Захистіть ключі API за допомогою безпечного зберігання, контролю доступу, моніторингу, ротації та обмежень за IP-адресами.

Оновлено: 5 days ago

1. Завжди використовуйте унікальний ключ API для кожного учасника команди у вашому обліковому записі.

Ключ API — це унікальний код, який ідентифікує ваші запити до API. Ваш ключ API призначений для використання саме вами. Спільне використання ключів API суперечить Умовам використання.

Коли ви почнете експериментувати, можливо, захочете розширити доступ до API для своєї команди. OpenAI не підтримує спільне використання ключів API. Запросіть нових учасників до свого облікового запису зі сторінки Учасники, і після входу вони швидко отримають власний унікальний ключ. Ви також можете призначати дозволи для окремих API ключів.

2. Створюйте ключі API з датою закінчення терміну дії та запровадьте процес їх регулярної заміни

Ключі проєкту можна створювати з датою закінчення терміну дії, після якої всі запити з використанням цих ключів відхилятимуться. Ми наполегливо рекомендуємо створювати ключі з датою закінчення терміну дії та запровадити процес їх регулярної заміни. Перш ніж термін дії ключа закінчиться, створіть новий ключ, налаштуйте свої застосунки на його використання та відкличте старий ключ, переконавшись, що новий працює. Ці заходи можуть значно зменшити наслідки витоку ключів API.

Адміністратори можуть установити обов’язковий максимальний термін дії ключів API на рівні організації або проєкту в налаштуваннях платформи. Термін дії нових ключів має відповідати встановленим обмеженням, тож вони не зможуть залишатися дійсними безстроково. Обмеження для проєкту не можуть перевищувати обмеження організації.

Для робочих навантажень, які це підтримують, використовуйте федерацію ідентичностей робочих навантажень замість зберігання довгострокового ключа API OpenAI. Ваше робоче навантаження обмінює посвідчення від довіреного постачальника на короткостроковий токен доступу OpenAI. Налаштуйте окремий службовий обліковий запис лише з тими дозволами, які потрібні робочому навантаженню.

3. Ніколи не розміщуйте ключ у клієнтських середовищах, як-от браузерах або мобільних застосунках.

Розміщуючи ключ API OpenAI у клієнтських середовищах, як-от браузерах або мобільних застосунках, ви даєте зловмисникам змогу отримати цей ключ і надсилати запити від вашого імені. Це може призвести до неочікуваних нарахувань або компрометації певних даних облікового запису. Запити слід завжди спрямовувати через власний сервер бекенду, де ви можете безпечно зберігати ключ API.

4. Ніколи не додавайте свій ключ до репозиторію

Додавання ключа API до вихідного коду — поширений спосіб компрометації облікових даних. Якщо ваші репозиторії загальнодоступні, ви можете таким чином несвідомо оприлюднити свій ключ в інтернеті. Приватні репозиторії безпечніші, але витік даних також може призвести до розголошення ваших ключів. Тому як превентивний захід для безпеки ключів ми наполегливо рекомендуємо використовувати змінні середовища.

5. Використовуйте змінні середовища замість ключа API

Змінна середовища — це змінна, яку задають в операційній системі, а не в застосунку. Вона складається з імені та значення. Рекомендуємо назвати цю змінну OPENAI_API_KEY. Якщо вся команда використовуватиме однакове ім’я змінної, ви зможете додавати код до репозиторію та ділитися ним без ризику розкрити ключ API.


Налаштування у Windows

Варіант 1. Налаштуйте змінну середовища «OPENAI_API_KEY» через командний рядок cmd

Виконайте в командному рядку cmd наведену нижче команду, замінивши <yourkey> на свій ключ API:

setx OPENAI_API_KEY "<yourkey>"

Це налаштування застосовуватиметься до нових вікон командного рядка cmd, тому, щоб використовувати цю змінну з curl, потрібно відкрити нове вікно. Щоб перевірити, чи встановлено цю змінну, відкрийте нове вікно командного рядка cmd і введіть

echo %OPENAI_API_KEY%

Варіант 2. Установіть змінну середовища «OPENAI_API_KEY» через Панель керування

  1. Відкрийте Властивості системи та виберіть Додаткові параметри системи

Windows 10 System settings with Advanced system settings highlighted in Control Panel
  1. Виберіть Змінні середовища...

Windows System Properties Advanced tab with Environment Variables button highlighted
  1. У розділі змінних користувача (угорі) виберіть Створити…. Додайте пару з назви й значення ключа, замінивши <yourkey> на свій ключ API.

Назва змінної: OPENAI_API_KEY
Значення змінної: <yourkey>

Налаштування Linux / macOS

Варіант 1. Установіть змінну середовища «OPENAI_API_KEY» за допомогою zsh

  1. Виконайте наведену нижче команду в терміналі, замінивши yourkey на свій ключ API.

echo "export OPENAI_API_KEY='yourkey'" >> ~/.zshrc
  1. Оновіть оболонку новою змінною:

source ~/.zshrc
  1. Підтвердьте, що ви задали змінну середовища, за допомогою такої команди.

echo $OPENAI_API_KEY

У результаті буде виведено значення вашого ключа API.


Варіант 2: Задайте змінну середовища ‘OPENAI_API_KEY’ за допомогою bash

Дотримуйтесь інструкцій із Варіанта 1, замінивши .zshrc на .bash_profile.

Усе готово! Тепер ви можете посилатися на ключ у curl або завантажити його у Python:

import os
import openai

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

6. Використовуйте службу керування ключами

Існує чимало продуктів для безпечного керування секретними ключами API. Ці інструменти дають змогу контролювати доступ до ключів і підвищувати загальний рівень захисту даних. У разі витоку даних із вашого застосунку ключі не буде скомпрометовано, оскільки вони зберігатимуться в зашифрованому вигляді й керуватимуться в цілком окремому розташуванні.

Командам, які розгортають свої застосунки в робочому середовищі, рекомендуємо розглянути можливість використання однієї з таких служб.

7. Стежте за використанням ресурсів свого облікового запису та за потреби замінюйте ключі

Установіть щомісячні ліміти витрат для своєї організації або проєктів і ввімкніть їх примусове застосування, щоб обмежити неочікувані витрати в разі витоку ключа. Самі лише сповіщення про витрати не зупиняють трафік API. Примусове застосування лімітів може блокувати правомірні запити. Водночас витрати можуть дещо перевищити ліміт, оскільки обмеження спрацьовує не миттєво.

Скомпрометований ключ API дає сторонній особі змогу використовувати квоту вашого облікового запису без вашої згоди. Це може призвести до втрати даних, неочікуваних нарахувань, вичерпання щомісячної квоти та переривання доступу до API.

Використання ресурсів вашими командами можна відстежувати на сторінці «Використання». Якщо у вас виникнуть підозри щодо зловживань, ви можете вжити кількох заходів для захисту свого облікового запису:

  • Перегляньте дані про використання ресурсів, щоб перевірити, чи відповідають вони роботі вашої команди. Для користувачів, які належать до кількох організацій (наприклад, корпоративної та особистої), переконайтеся, що вони ввімкнули відстеження та вибрали організацію за замовчуванням для використання ресурсів і його відстеження.

  • Якщо ви підозрюєте витік ключа, негайно замініть його на сторінці «Ключі API». Якщо ваші застосунки працюють у виробничому середовищі, у них також потрібно оновити значення ключів.

  • Для подальшого розслідування зверніться до нас через help.openai.com.

8. Захистіть доступ до API за допомогою мережевих обмежень

Список дозволених IP-адрес дає змогу обмежити коло IP-адрес, з яких можна отримати доступ до вашого API OpenAI. Коли цю функцію ввімкнено, дозволяються лише запити з указаних IP-адрес або діапазонів, а всі інші відхиляються — навіть якщо містять дійсний ключ API.

Це забезпечує додатковий рівень захисту: доступ до вашого API можна отримати лише з довіреної інфраструктури, як-от ваших серверів бекенду чи хмарного середовища.

Докладніше див. у статті про список дозволених IP-адрес для API OpenAI.

Private Link — ще один варіант для організацій, яким потрібен доступ через приватну мережу. Він дає змогу робочим навантаженням Azure підключатися до регіональних кінцевих точок API OpenAI через Azure Private Link. Щоб отримати доступ, зверніться до свого представника OpenAI або відділу продажів. Автентифікація API залишається обов’язковою, а Private Link несумісний зі списком дозволених IP-адрес і взаємною автентифікацією TLS (mTLS). Докладні відомості про налаштування див. у посібнику з Private Link.

Чи була ця стаття корисною?