How to Secure Azure OpenAI Keys Using Environment Variables, Azure Vault, and Streamlit Secrets(open
I. OpenAI API介绍
A. OpenAI API安装方法
要使用OpenAI API,您需要先安装OpenAI API Python库。
- 通过以下命令使用pip install openai安装OpenAI API:
pip install openai
- 安装成功后,为了使用API,需要设置环境变量OPENAI_API_KEY。
II. 设置OpenAI API密钥环境变量
A. Windows系统设置
在Windows系统上,可使用Anaconda3 PowerShell运行环境来设置OpenAI API密钥环境变量。
- 打开Anaconda3 PowerShell。
- 在命令行中使用以下命令设置密钥环境变量:
$Env:OPENAI_API_KEY=”your_api_key”
B. Linux/Mac系统设置
在Linux/Mac系统上,可使用Terminal或命令行界面来设置OpenAI API密钥环境变量。
- 打开Terminal或命令行界面。
- 使用以下命令设置OPENAI_API_KEY环境变量:
export OPENAI_API_KEY=”your_api_key”
III. 密钥环境变量的作用与优势
A. 安全性
设置OpenAI API密钥环境变量可以提高代码的安全性。
- 不需要直接在代码中暴露API密钥,避免泄漏风险。
- 可使用系统环境变量来存储密钥,保证密钥的安全性。
B. 灵活性
设置OpenAI API密钥环境变量可以提供灵活性。
- 可以在区别的运行环境中轻松配置和更改密钥。
- 可以方便地切换API密钥而无需修改代码。
IV. 其他设置API密钥方法
A. 直接在代码中设置API密钥
虽然不推荐,在代码中设置API密钥也是可能的。
- 使用以下代码即将API密钥设置为变量:
import openai
openai.api_key = "your_api_key"
- 但是,这类硬编码方式不安全,容易致使密钥泄漏和修改麻烦。
B. 使用配置文件或JSON文件存储API密钥
将API密钥存储在配置文件或JSON文件中也是一种选择。
- 将API密钥存储在配置文件或JSON文件中。
- 在代码中读取配置文件或JSON文件来获得API密钥。
V. 如何获得OpenAI API密钥
A. 在OpenAI平台上创建账号
要获得OpenAI API密钥,您需要在OpenAI平台上创建一个账号。
B. 登录账号并进入API Keys页面
登录您的账号后,进入API Keys页面。
C. 在API Keys页面中获得API密钥
在API Keys页面中,您可以直接复制API密钥或从环境变量或密钥文件中读取。
- 直接复制API密钥。
- 从环境变量或密钥文件中获得API密钥。
总结
本文介绍了怎样设置OpenAI API密钥环境变量,并提供了Windows和Linux/Mac系统下的具体设置方法。同时,还探讨了密钥环境变量的作用和优势,和其他设置API密钥的方法。最后,还给出了获得OpenAI API密钥的步骤,并提供了多种获得密钥的方式。
通过正确设置API密钥环境变量,可以提高代码的安全性和灵活性,方便地使用和管理OpenAI API。
openai api key env的进一步展开说明
怎样使用环境变量、Azure Vault和Streamlit Secrets来保护Azure OpenAI密钥
摘要:
在当前快节奏的世界中,保护敏感数据和凭据相当重要。在使用Azure和OpenAI时,确保API密钥和其他凭据的安全存储是相当重要的。一种常见的方法是使用环境变量。但是,环境变量其实不总是最安全的选择,也存在更好的替换方案。
在本博客文章中,我们将探讨怎样使用环境变量、Azure Key Vault和Streamlit Secrets来保护Azure OpenAI密钥。我们还将介绍保护API密钥的最好实践,并提供示例,以帮助您在自己的项目中实行这些技术。
介绍:
Azure OpenAI是一个强大的平台,允许开发人员以范围构建和部署AI模型。但是,与任何平台一样,确保数据和凭据的安全非常重要。其中一种方式是使用环境变量存储API密钥。但是,环境变量可以被具有服务器访问权限的任何人访问,使其不太安全。
为解决这个问题,可使用Azure Key Vault来安全存储和管理API密钥。另外,环境变量允许您在代码以外存储敏感数据,Azure Vault提供了安全的密钥存储,而Streamlit Secrets则允许您在Streamlit利用程序中安全访问密钥。
安装:
在开始之前,您需要进行一些设置:
创建一个Azure账户并定阅Azure OpenAI。
在本地机器上安装Azure CLI。
安装Streamlit库。(pip install streamlit)
设置完成后:
挑战:
保护密钥的最大挑战之一是确保它们不会心外暴露。如果将它们硬编码到代码中或存储在不安全的位置,便可能产生这类情况。通过使用环境变量、Azure Vault和Streamlit Secrets,我们可以确保我们的密钥安全存储,并且只能被授权的用户访问。
以下是使用环境变量、Azure Vault和Streamlit Secrets保护Azure OpenAI密钥的步骤:
将Azure OpenAI密钥存储在环境变量中:
打开命令提示符或终端,输入以下命令:
export OPENAI_KEY=
这将将您的密钥存储在名为OPENAI_KEY的环境变量中。
最好实践:使用唯一且复杂的名称为您的环境变量,避免意外暴露。
创建Azure Key Vault:
登录Azure门户,创建一个新的Key Vault。
为Key Vault生成一个新的访问密钥。
2a> # 创建一个新的Key Vault实例
az keyvault create –name mykeyvault –resource-group myresourcegroup –location westus2
最好实践:使用诸如多因素身份验证之类的强身份验证方法来保护您的Azure账户。
2b> # 向Key Vault添加一个密钥
az keyvault secret set –name myapikey –vault-name mykeyvault –value
将Azure OpenAI密钥存储在Azure Key Vault中:
使用Azure CLI,输入以下命令:
az keyvault secret set –vault-name
这将您的Azure OpenAI密钥存储在Azure Key Vault中。
最好实践:使用基于角色的访问控制确保只有授权用户可以访问Key Vault。
在Streamlit利用程序中使用Streamlit Secrets访问Azure OpenAI密钥:
在您的Streamlit利用程序中,导入Streamlit Secrets库。
使用Azure CLI从Key Vault中检索您的Azure OpenAI密钥:
az keyvault secret show –vault-name
使用Streamlit Secrets安全访问您的密钥:
st.secrets[‘openai-key’]
示例1:
接下来,让我们创建一个Streamlit利用程序,使用Azure SDK从Key Vault检索我们的API密钥:
import os
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
# 设置Key Vault客户端
credential = DefaultAzureCredential()
client = SecretClient(vault_url=os.environ[“AZURE_KEYVAULT_URL”], credential=credential)
# 从Key Vault中检索API密钥
在此示例中,Azure OpenAI密钥从Streamlit secret中加载,并用于向Azure OpenAI API发送要求。密钥不会在代码中暴露,使其更安全。
api_key = client.get_secret(“myapikey”).value
示例2:使用Streamlit Secrets保护您的Azure OpenAI密钥:
import streamlit as st
import os
# 从Streamlit secret中加载Azure OpenAI密钥
key = st.secrets[“azure_openai_key”]
# 使用该密钥向Azure OpenAI API发送要求
response = requests.get(“https://api.openai.com/v1/engines/davinci-codex/completions”, headers={“Authorization”: f”Bearer {key}”})
# 在利用程序中使用API密钥
最好实践:将您的Streamlit利用程序的范围限制在只有需要访问密钥的用户。
示例3:使用Streamlit “secrets”
这是使用Streamlit Secrets的最简单方法:
1.在您的代码所在的目录中创建一个名为“.streamlit”的文件夹。
2.在“.streamlit”文件夹下创建一个名为“secrets.toml”的文件。
3.在“secrets.toml”中指定密钥路径。
路径= ‘363e5eaaaaaabbbbbccccc’
流程以下:projectfolder.streamlit
当您在代码中调用密钥时,请使用以下代码:openai.api_key = st.secrets[‘path’]
确保添加其他凭据。将以下所示:
# 设置OpenAI API凭据
openai.api_type = “azure”
openai.api_base = ‘https://xxxxxx.openai.azure.com/’
openai.api_version = “2023-03⑴5-preview”
openai.api_key = st.secrets[‘path’]
示例4:使用环境变量
为了说明如何安全存储Azure OpenAI密钥,让我们斟酌一个使用GPT⑶语言模型生成文本的示例利用程序。首先,我们将API密钥存储为环境变量,可以通过将以下行添加到您的代码中来实现:
import os
os.environ[“OPENAI_API_KEY”] = “your_api_key_here”
虽然这是一个简单的解决方案,但不是最安全的,由于任何具有对您的代码访问权限的人都可以轻松查看您的API密钥。相反,我们可使用Azure Vault来安全地存储密钥,并在代码中以编程方式检索它。可以通过在Azure Vault中创建一个密钥,并使用Azure Key Vault库在代码中检索它来实现:
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
client = SecretClient(vault_url=”https://yourvaultname.vault.azure.net/”, credential=credential)
key = client.get_secret(“openai-api-key”)
os.environ[“OPENAI_API_KEY”] = key.value
整体最好实践:
为确保您的Azure OpenAI密钥的安全性和机密性,以下是一些最好实践:
永久不要将密钥硬编码到代码中或以纯文本文件存储。
使用安全的密钥管理解决方案,如Azure Key Vault或Streamlit Secrets来保护您的密钥。
定期更换您的密钥并撤消未使用的密钥。
使用Azure AD身份验证来控制对您的密钥的访问。
监控和审计密钥使用情况,以检测任何未经授权的访问。
结论:
保护Azure OpenAI密钥对避免未经授权的访问和滥用相当重要。通过使用Azure Key Vault和Streamlit Secrets,您可以安全地存储和使用密钥在您的利用程序中。请记住遵守密钥保护的最好实践,以确保您的利用程序的安全性。
参考资料:
Azure Key Vault文档:https://docs.microsoft.com/zh-cn/azure/key-vault/
openai api key env的常见问答Q&A
问题1:OpenAI API keys如何申请和测试?
答案:要申请和测试OpenAI API keys,您可以依照以下步骤进行操作:
- 访问https://platform.openai.com,如果您还没有账号,请先创建一个账号。
- 登录后,点击Personal(个人)并选择View API keys(查看API密钥)。
- 在API密钥页面,点击Create New Key(创建新密钥)。
- 生成的API密钥将显示在屏幕上,将其保存到安全的地方。
- 现在,您可使用这个API密钥进行OpenAI API的测试。
问题2:怎样设置OpenAI API key的环境变量?
答案:要设置OpenAI API key的环境变量,您可以依照以下步骤进行操作:
- 打开命令行终端。
- 运行以下命令,将您的API密钥添加为环境变量,将your_key替换为您自己的API密钥:
- 对Windows系统:setx OPENAI_API_KEY “your_key”
- 对Mac和Linux系统:export OPENAI_API_KEY=”your_key”
- 现在,您已成功设置OpenAI API key的环境变量。
问题3:OpenAI API提供了哪些参考文档?
答案:OpenAI API提供了以下参考文档(均为英文文档):
- API Reference(API参考文档):提供了OpenAI API的详细技术规范和使用说明。
- Best Practices for API Key Safety(API密钥安全最好实践):介绍了保护OpenAI API密钥安全的最好实践方法。
- openai-python/README.md at main(openai-python在主要分支的README.md):提供了使用Python语言访问OpenAI API的详细文档。
- 8 tips for securely using API keys(安全使用API密钥的8个提示):介绍了使用API密钥时的安全注意事项。
- How to Secure Azure OpenAI Keys Using Environment(怎样使用环境变量来保护Azure OpenAI密钥):介绍了怎样使用环境变量来保护Azure OpenAI密钥。