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

Рекомендації щодо безпеки ключів API

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

Оновлено: 2 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

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

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


Варіант 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-адрес дає змогу обмежити доступ до вашого API OpenAI лише певними IP-адресами. Коли цю функцію ввімкнено, дозволяються лише запити з указаних IP-адрес або діапазонів, а всі інші відхиляються, навіть якщо містять дійсний ключ API.

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

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

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

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