Skip to content

如何使用 TypeScript 管理 Azure Key Vault 加密密钥

解决应用安全存储与加密痛点:通过集成 Azure Key Vault Keys SDK,让 AI 帮助开发者快速实现企业级密钥管理,避免将敏感密钥硬编码在代码中,并实现安全的加密、解密与签名工作流。

为什么需要这个技能

在构建生产级应用时,直接在代码或配置文件中存储加密密钥(Encryption Keys)存在极大的安全风险。Azure Key Vault 提供了一个集中化的安全存储库,能够确保密钥在硬件安全模块(HSM)中受到保护。

掌握此技能后,你可以通过 TypeScript 自动化地管理密钥的生命周期,而无需手动在 Azure 门户中操作。这不仅提升了部署效率,还通过实现密钥轮转(Rotation)和权限细分,增强了系统的整体安全性。

适用场景

  • 敏感数据加密:需要对用户隐私数据进行对称或非对称加密存储。
  • 数字签名验证:在 API 交互或文档传输中,需要对消息进行签名以确保不可否认性。
  • 密钥生命周期管理:需要定期更换密钥(轮转)或在不同环境(开发/生产)间迁移密钥备份。
  • 自动化安全基建:在 CI/CD 过程中自动创建和配置所需的服务密钥。

核心工作流

  1. 环境初始化与认证:安装 @azure/keyvault-keys@azure/identity,使用 DefaultAzureCredential 实现无密码认证,自动适配本地开发环境和云端托管身份。
  2. 密钥生命周期管理
    • 使用 KeyClient 创建 RSA 或椭圆曲线(EC)密钥。
    • 配置过期时间与标签,通过 rotateKey 或设置轮转策略实现自动化更新。
  3. 执行加密操作
    • 实例化 CryptographyClient
    • 调用 encrypt/decrypt 进行数据加密,或调用 sign/verify 进行数字签名。
  4. 容灾与恢复:利用 backupKeyrestoreKeyBackup 实现密钥的跨区域备份与快速恢复。
typescript
// 快速示例:创建加密客户端并加密数据
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();
const vaultUrl = `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`;
const keyClient = new KeyClient(vaultUrl, credential);

// 1. 获取密钥
const key = await keyClient.getKey("MyEncryptionKey");
const cryptoClient = new CryptographyClient(key.id!, credential);

// 2. 加密
const encryptResult = await cryptoClient.encrypt({
  algorithm: "RSA-OAEP",
  plaintext: Buffer.from("Hello World")
});

// 3. 解密
const decryptResult = await cryptoClient.decrypt({
  algorithm: "RSA-OAEP",
  ciphertext: encryptResult.result
});

下载和安装

下载 azure-keyvault-keys-ts 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐