1. Завжди використовуйте унікальний ключ API для кожного учасника команди у вашому обліковому записі.
Ключ API — це унікальний код, який ідентифікує ваші запити до API. Ваш ключ API призначений для використання саме вами. Спільне використання ключів API суперечить Умовам використання.
Коли ви почнете експериментувати, можливо, захочете розширити доступ до API для своєї команди. OpenAI не підтримує спільне використання ключів API. Запросіть нових учасників до свого облікового запису зі сторінки Учасники, і після входу вони швидко отримають власний унікальний ключ. Ви також можете призначати дозволи для окремих API ключів.
2. Створюйте ключі API зі строком дії та запровадьте процедуру їх ротації
Для ключів проєкту можна встановити дату завершення строку дії, після якої всі запити з цими ключами відхилятимуться. Ми наполегливо рекомендуємо створювати ключі зі строком дії та запровадити процедуру їх регулярної ротації. До завершення строку дії ключа створіть новий, налаштуйте свої застосунки на його використання та відкличте старий ключ, переконавшись, що новий працює. Ці заходи можуть суттєво зменшити наслідки витоку ключів API.
Адміністратори можуть установити максимальний строк дії ключів API на рівні організації або проєкту в налаштуваннях платформи. Нові ключі потрібно налаштовувати в межах дозволених обмежень, щоб вони не залишалися дійсними безстроково. Обмеження проєкту не можуть перевищувати обмеження організації.
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» через Панель керування
Відкрийте Властивості системи та виберіть Додаткові параметри системи
Виберіть Змінні середовища...
У розділі змінних користувача (угорі) виберіть Створити…. Додайте пару з назви й значення ключа, замінивши <yourkey> на свій ключ API.
Назва змінної: OPENAI_API_KEY
Значення змінної: <yourkey>Налаштування Linux / macOS
Варіант 1. Установіть змінну середовища «OPENAI_API_KEY» за допомогою zsh
Виконайте наведену нижче команду в терміналі, замінивши yourkey на свій ключ API.
echo "export OPENAI_API_KEY='yourkey'" >> ~/.zshrcОновіть оболонку новою змінною:
source ~/.zshrcПідтвердьте, що ви задали змінну середовища, за допомогою такої команди.
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». Якщо ваші застосунки вже використовуються в робочому середовищі, необхідно відповідно оновити значення ключів.
Щоб провести подальше розслідування, зв’яжіться з нами через help.openai.com.
8. Обмежте доступ до API за допомогою списку дозволених IP-адрес
Список дозволених IP-адрес дає змогу визначити, з яких IP-адрес можна отримувати доступ до API OpenAI. Якщо цю функцію ввімкнено, дозволяються лише запити з налаштованих IP-адрес або діапазонів, а всі інші відхиляються, навіть якщо вони містять дійсний ключ API.
Це створює додатковий рівень захисту, оскільки доступ до вашого API можна отримати лише з надійної інфраструктури, наприклад із ваших серверів бекенду або хмарного середовища.
Докладніше див. у статті «Список дозволених IP-адрес для API OpenAI».
