Skip to content

如何在 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-identity

2. 身份验证与客户端初始化

使用 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

你可能还需要

暂无推荐