Skip to content

如何使用 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/identity

2. 身份验证与客户端创建

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

你可能还需要

暂无推荐