OpenAI

Рекомендации по безопасному использованию API-ключей

Обновлено: 3 days ago

Всегда используйте уникальный API-ключ для каждого участника вашей учетной записи.

API-ключ представляет собой уникальный код для идентификации ваших API-запросов. API-ключ предоставляется для индивидуального использования. Передача API-ключей другим лицам запрещена Условиями использования.

По мере начала работы с API может потребоваться расширение доступа для членов команды. OpenAI не поддерживает совместное использование API-ключей. Пригласите новых участников через страницу «Участники». После входа в систему им будет автоматически выдан собственный уникальный ключ. Также доступна возможность назначения разрешений для отдельных API-ключей.

Никогда не размещайте API-ключ в клиентских средах, таких как браузеры или мобильные приложения.

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

3. Никогда не добавляйте API-ключ в репозиторий

Хранение API-ключа в исходном коде создаёт высокий риск компрометации учетных данных. Для пользователей с публичными репозиториями это один из самых распространенных способов непреднамеренно раскрыть API-ключ в интернете. Приватные репозитории более безопасны, однако утечка данных также может привести к раскрытию ваших ключей. Поэтому мы настоятельно рекомендуем использовать переменные окружения как превентивную меру безопасности.

4. Используйте переменные окружения вместо API-ключа

Переменная окружения — это переменная, которая задается в операционной системе, а не внутри приложения. Она состоит из имени и значения. Рекомендуется использовать имя OPENAI_API_KEY. Единое имя переменной, используемое всей командой, позволяет коммитить и распространять код без риска компрометации API-ключа.

Настройка Windows

Вариант 1: задайте переменную окружения OPENAI_API_KEY через командную строку (cmd)

Выполните следующую команду в командной строке, заменив <yourkey> на ваш API-ключ:

setx OPENAI_API_KEY "<yourkey>"

Эта настройка будет применяться ко всем будущим окнам командной строки, поэтому для использования переменной с curl потребуется открыть новое окно. Вы можете проверить, что переменная задана, открыв новое окно cmd и введя

echo %OPENAI_API_KEY%

Вариант 2: задайте переменную окружения OPENAI_API_KEY через Панель управления

Откройте свойства «Система» и выберите «Дополнительные параметры системы»

Windows 10 System settings with Advanced system settings highlighted in Control Panel

2. Выберите «Переменные среды...»

Windows System Properties Advanced tab with Environment Variables button highlighted

3. В разделе пользовательских переменных (вверху) нажмите «Создать…». Добавьте пару «имя/значение», заменив <yourkey> на ваш API-ключ.

Имя переменной: OPENAI_API_KEY
Значение переменной: <yourkey>

Настройка Linux / MacOS

Вариант 1: задайте переменную окружения OPENAI_API_KEY через командную строку в zsh

1. Выполните следующую команду в терминале, заменив yourkey на ваш API-ключ.

echo "export OPENAI_API_KEY='yourkey'" >> ~/.zshrc

2. Обновите оболочку, чтобы применить новую переменную:

source ~/.zshrc

3. Убедитесь, что переменная окружения установлена, с помощью следующей команды.

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"]

5. Используйте сервис управления ключами

Существует множество решений для безопасного управления секретными API-ключами. Эти инструменты позволяют контролировать доступ к ключам и повышать общий уровень безопасности данных. Даже при утечке данных в приложении ваши ключи останутся защищенными, так как они зашифрованы и хранятся в отдельном, изолированном хранилище.

Для команд, разворачивающих приложения в среде промышленной эксплуатации, мы рекомендуем рассмотреть использование одного из таких сервисов.

6. Отслеживайте использование учетной записи и при необходимости регулярно обновляйте ключи

Скомпрометированный API-ключ позволяет постороннему лицу получить доступ к доступному лимиту вашей учетной записи без вашего согласия. Это может привести к потере данных, неожиданным расходам, исчерпанию месячного лимита и перебоям в доступе к API.

Мониторинг использования командой осуществляется через страницу «Использование». Если у вас возникнут подозрения в отношении неправомерного использования, вы можете предпринять несколько действий для защиты своей учетной записи:

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

  • Если есть подозрение, что API-ключ был скомпрометирован, сразу же замените его на странице «API-ключи». Для клиентов с приложениями в среде промышленной эксплуатации потребуется соответствующим образом обновить значения ключей.

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

7. Ограничьте доступ к API с помощью списка разрешенных IP-адресов

Список разрешённых IP-адресов позволяет ограничить доступ к вашему API OpenAI только для определённых IP-адресов. Если этот параметр включён, разрешаются только запросы с настроенных IP-адресов или диапазонов, а все остальные отклоняются — даже если они содержат действительный API-ключ.

Это обеспечивает дополнительный уровень защиты, гарантируя, что доступ к вашему API возможен только из доверенной инфраструктуры, например, с серверов серверной части или из облачной среды.

Дополнительные сведения см. в статье «Список разрешённых IP-адресов для API OpenAI».

Была ли эта статья полезной?