Appearance
如何使用 TypeScript 在 Azure Key Vault 中管理密钥和机密
解决敏感信息泄露风险:通过集成 Azure Key Vault SDK,将 API 密钥、数据库密码等敏感配置从代码中抽离,实现中心化、加密且可审计的机密管理。
为什么需要这个技能
在现代软件开发中,将 API 密钥或数据库密码直接写在 .env 文件或代码中具有极高的安全风险。一旦源代码泄露,所有凭据将全部暴露。
Azure Key Vault 提供了云端硬件级安全存储。通过本技能,开发者可以利用 TypeScript SDK 实现:
- 机密解耦:代码仅通过名称请求机密,无需接触实际值。
- 动态更新:无需重启应用即可在云端更新密钥。
- 权限细粒度控制:利用 Azure RBAC 限制仅特定服务能读取特定机密。
适用场景
- 生产环境配置:需要安全存储第三方服务 API Key 或数据库连接字符串。
- 加密签名需求:需要使用 RSA 或椭圆曲线(EC)密钥对数据进行加密、解密或签名。
- 密钥轮转策略:需要定期自动更换密钥以符合企业安全合规要求。
- 备份与恢复:需要对关键加密密钥进行备份以防止意外删除。
核心工作流
1. 环境初始化
安装核心 SDK 并配置 Vault URL。
bash
npm install @azure/keyvault-secrets @azure/identity2. 身份验证与客户端创建
使用 DefaultAzureCredential 实现环境自适应认证(开发环境用 Azure CLI,生产环境用托管身份)。
typescript
import { DefaultAzureCredential } from "@azure/identity";
import { SecretClient } from "@azure/keyvault-secrets";
const credential = new DefaultAzureCredential();
const vaultUrl = `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`;
const secretClient = new SecretClient(vaultUrl, credential);3. 机密与密钥操作
- 存储与读取:使用
setSecret创建机密,通过getSecret获取最新值。 - 加密运算:通过
CryptographyClient实现不离开 Key Vault 的云端加密/解密,确保私钥永不泄露。 - 生命周期管理:利用
beginDeleteSecret进行软删除,或配置updateKeyRotationPolicy实现自动轮转。
下载和安装
下载 azure-keyvault-secrets-ts 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐