Appearance
如何在 Python 中使用 Azure Key Vault 管理敏感密钥
解决代码中硬编码密码或 API 密钥的安全风险:通过集成 Azure Key Vault SDK,将敏感信息集中存储在云端,并在运行时动态获取。
为什么需要这个技能
在开发企业级应用时,将数据库密码、API 密钥或私钥直接写在代码或 .env 文件中是非常危险的,容易导致凭据泄露。
Azure Key Vault 提供了一个中心化的安全存储库。通过本技能,开发者可以将敏感数据(Secrets)、加密密钥(Keys)和证书(Certificates)托管在 Azure 云端,并利用 DefaultAzureCredential 实现无需手动管理凭据的身份验证,确保生产环境的最高安全性。
适用场景
- 敏感信息脱敏:将数据库连接字符串、第三方服务 Token 从代码中移除。
- 加密操作:需要进行 RSA/EC 密钥对生成、数据加密/解密或数字签名。
- 证书管理:自动化管理 SSL/TLS 证书的生命周期,避免证书过期导致的服务中断。
- 高并发异步调用:在 FastAPI 或 Sanic 等异步框架中高效获取配置。
核心工作流
1. 环境准备与安装
根据需要安装对应的 SDK 模块:
bash
# 安装机密管理、密钥管理、证书管理及身份验证库
pip install azure-keyvault-secrets azure-keyvault-keys azure-keyvault-certificates azure-identity2. 身份验证与客户端初始化
使用 DefaultAzureCredential 自动处理本地开发与云端部署的身份验证切换。
python
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
credential = DefaultAzureCredential()
vault_url = "https://<vault-name>.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)3. 核心操作实现
- 机密管理:通过
set_secret存储,get_secret读取。 - 加密操作:利用
CryptographyClient对数据进行加密或签名。 - 证书维护:使用
CertificateClient创建和获取自签名证书。
4. 异步处理(针对高性能场景)
使用 azure.keyvault.secrets.aio 下的异步客户端,结合 async with 语法确保连接正确关闭。
下载和安装
下载 azure-keyvault-py 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐