Всегда используйте уникальный API-ключ для каждого участника вашей учетной записи.
API-ключ представляет собой уникальный код для идентификации ваших API-запросов. API-ключ предоставляется для индивидуального использования. Передача API-ключей другим лицам запрещена Условиями использования.
По мере начала работы с API может потребоваться расширение доступа для членов команды. OpenAI не поддерживает совместное использование API-ключей. Пригласите новых участников через страницу «Участники». После входа в систему им будет автоматически выдан собственный уникальный ключ. Также доступна возможность назначения разрешений для отдельных API-ключей.
2. Создайте API-ключи с датой истечения срока действия и настройте процесс их регулярной смены
Для ключей проекта можно задать срок действия, по истечении которого любые запросы с использованием этих ключей будут отклоняться. Мы настоятельно рекомендуем создавать ключи со сроком действия и внедрить регулярный процесс смены ключей. До истечения срока действия ключа создайте новый ключ взамен него, обновите свои приложения для его использования и аннулируйте старый ключ после того, как убедитесь, что новый ключ работает. Эти рекомендации могут значительно снизить риск утечки API-ключей.
Администраторы могут установить максимальный срок действия API-ключа на уровне организации или проекта в настройках платформы. Новые ключи должны быть настроены в пределах допустимых значений, что не позволяет им оставаться действительными неограниченно долго. Лимиты проекта не могут превышать лимит организации.
Для поддерживаемых рабочих нагрузок используйте федерацию удостоверений рабочих нагрузок вместо хранения долгосрочного ключа API OpenAI. Рабочая нагрузка обменивает удостоверение, полученное от доверенного поставщика, на краткосрочный токен доступа OpenAI. Настройте отдельную учетную запись службы, предоставив ей только те разрешения, которые необходимы рабочей нагрузке.
3. Никогда не размещайте API-ключ в клиентских средах, таких как браузеры или мобильные приложения.
Размещение API-ключа OpenAI в клиентских средах, таких как браузеры или мобильные приложения, позволяет злоумышленникам получить этот ключ и выполнять запросы от вашего имени, что может привести к непредвиденным расходам или компрометации данных учетной записи. Запросы всегда должны направляться через вашу собственную серверную часть, обеспечивающую безопасное хранение API-ключа.
4. Никогда не добавляйте API-ключ в репозиторий
Хранение API-ключа в исходном коде создаёт высокий риск компрометации учетных данных. Для пользователей с публичными репозиториями это один из самых распространенных способов непреднамеренно раскрыть API-ключ в интернете. Приватные репозитории более безопасны, однако утечка данных также может привести к раскрытию ваших ключей. Поэтому мы настоятельно рекомендуем использовать переменные окружения как превентивную меру безопасности.
5. Используйте переменные окружения вместо API-ключа
Настройка Windows
Переменная окружения — это переменная, которая задается в операционной системе, а не внутри приложения. Она состоит из имени и значения. Рекомендуется использовать имя OPENAI_API_KEY. Единое имя переменной, используемое всей командой, позволяет коммитить и распространять код без риска компрометации API-ключа.
Вариант 1: Задайте переменную среды OPENAI_API_KEY через cmd
Выполните следующую команду через cmd, заменив <yourkey> своим API-ключом:
setx OPENAI_API_KEY "<yourkey>"Эта настройка будет применяться к будущим окнам командной строки, поэтому для использования этой переменной с 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.
Мониторинг использования командой осуществляется через страницу «Использование». Если у вас возникнут подозрения в отношении неправомерного использования, вы можете предпринять несколько действий для защиты своей учетной записи:
Проанализируйте показатели использования на предмет их соответствия деятельности команды. Если пользователь состоит в нескольких организациях (например, корпоративной и личной), убедитесь, что для него включено отслеживание и выбрана организация по умолчанию для использования и мониторинга.
Если есть подозрение, что 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».
