1. 始终为账户中的每位团队成员使用唯一的 API 密钥。
API 密钥是一段唯一代码,用于标识你向 API 发出的请求。你的 API 密钥仅供你本人使用。共享 API 密钥违反了我们的《使用条款》。
在开始进行试用/探索时,你可能希望将 API 访问权限扩展给团队成员。OpenAI 不支持共享 API 密钥。请在成员页面邀请新成员加入你的账户,他们登录后会很快获得各自的唯一密钥。你也可以为每个 API 密钥分别分配权限。
2. 切勿在浏览器或移动应用等客户端环境中部署您的密钥。
在浏览器或移动应用等客户端环境中暴露您的 OpenAI API 密钥,可能会让恶意用户有机会获取该密钥并以您的身份发起请求,从而导致意外扣费或某些账户数据泄露。请求应始终通过您自己的后端服务器进行路由,以确保 API 密钥的安全。
3. 切勿将密钥提交至您的代码仓库
将 API 密钥提交到源代码是一种常见的凭据泄露途径。对于拥有公开仓库的用户,这是在不知不觉中将密钥暴露给互联网的常见方式。私有仓库相对更安全,但数据泄露同样可能导致密钥泄漏。因此,我们强烈建议使用环境变量作为主动的密钥安全措施。
4. 使用环境变量替代您的 API 密钥
环境变量是在操作系统层面设置的变量,而非在应用程序内部。此变量由名称和值组成。我们建议将变量名称设置为 OPENAI_API_KEY。通过在团队中保持此变量名称一致,您可以提交和共享代码,而无需承担暴露 API 密钥的风险。
Windows 设置
选项 1:通过命令提示符设置 ‘OPENAI_API_KEY’ 环境变量
在命令提示符中运行以下命令,将 <yourkey> 替换为你的 API 密钥:
setx OPENAI_API_KEY "<yourkey>"该设置会在之后新打开的命令提示符窗口中生效,因此您需要打开一个新窗口,才能在 curl 中使用该变量。您可以通过打开新的命令提示符窗口并输入以下命令来验证变量是否已设置:
echo %OPENAI_API_KEY%选项 2: 通过控制面板设置 ‘OPENAI_API_KEY’ 环境变量
1. 打开系统属性,并选择高级系统设置。
2. 选择环境变量...
3. 在用户变量部分(顶部)选择新建…。添加变量名和值,并将 <yourkey> 替换为你的 API 密钥。
变量名称:OPENAI_API_KEY
变量值:<yourkey>Linux / macOS 设置
选项 1:使用 zsh 设置 ‘OPENAI_API_KEY’ 环境变量
1. 在终端中运行以下命令,将 yourkey 替换为你的 API 密钥。
echo "export OPENAI_API_KEY='yourkey'" >> ~/.zshrc2. 更新 shell 以加载新变量:
source ~/.zshrc3. 使用以下命令确认您已设置环境变量:
echo $OPENAI_API_KEY您的 API 密钥值将显示为输出结果。
选项 2:使用 bash 设置 OPENAI_API_KEY 环境变量
遵循选项 1 的指示,将 .zshrc 替换为 .bash_profile。
全部设置完成!您现在可以在 curl 中引用该密钥,或在您的 Python 代码中加载它:
import os
import openai
openai.api_key= os.environ["OPENAI_API_KEY"]5. 使用密钥管理服务
市场上有多种可用于安全管理机密 API 密钥的产品。这些工具允许您控制对密钥的访问,并提升整体数据安全性。即使您的应用发生数据泄露,您的密钥也不会因此泄露,因为它们会被加密并在完全独立的位置进行管理。
对于将应用部署到生产环境的团队,我们建议您考虑使用此类服务。
6. 监控账户用量并在需要时轮换密钥
一旦 API 密钥泄露或被盗用,他人便可能在未经您同意的情况下访问您的账户配额。这可能导致数据丢失、意外扣费、月度配额耗尽以及 API 访问中断。
可通过用量页面跟踪你团队的用量。如果你担心密钥被滥用,可以采取以下措施保护你的账户:
检查用量是否与团队的工作相符。对于属于多个组织(例如公司账户和个人账户)的用户,请确保已启用跟踪,并为其用量和跟踪设置了默认归属组织。
如果你认为密钥已泄露,请立即在 API 密钥页面轮换密钥。对于拥有生产环境应用程序的客户,你需要相应地更新所有相关配置中的密钥值。
如需进一步调查,请通过 help.openai.com 联系我们。
7. 使用 IP 允许列表限制 API 访问
借助 IP 允许列表,你可以限制哪些 IP 地址能够访问你的 OpenAI API。启用后,仅允许来自已配置 IP 地址或范围的请求;所有其他请求都会被拒绝,即使这些请求包含有效的 API 密钥也不例外。
这为你的 API 增加了一层安全保障,确保只有受信任的基础设施(例如你的后端服务器或云环境)能够访问你的 API。
如需了解更多信息,请参阅《OpenAI API 的 IP 允许列表》。
