用途:该技能用于在 Azure Key Vault 中管理加密密钥,并执行相关密码学操作。适用于创建、加密/解密、签名、轮换密钥等任务。
安装:
Keys SDK
npm install @azure/keyvault-keys @azure/identity
环境变量: KEY_VAULT_URL=https://<vault-name>.vault.azure.net
或
AZURE_KEYVAULT_NAME=<vault-name>
认证: 使用 DefaultAzureCredential 与 KeyClient、SecretClient 构造客户端。
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); const secretClient = new SecretClient(vaultUrl, credential);
主要能力:
- 机密(Secrets)操作:创建/设置机密(可带 enabled、expiresOn、contentType、tags 属性)、获取最新或指定版本机密、列出机密及其版本、软删除与永久清除、恢复已删除机密。
- 密钥(Keys)操作:创建通用密钥、RSA 密钥(可指定 keySize)、椭圆曲线密钥(可指定 curve)、带属性与 keyOps 的密钥;获取与列出密钥;手动轮换密钥及设置轮换策略(lifetimeActions、expiresIn);删除与清除密钥。
- 密码学操作:基于密钥对象或密钥 ID 创建 CryptographyClient;加密/解密(如 RSA-OAEP);签名/验证(如 RS256,需先用 node:crypto 生成摘要);密钥包装/解包(wrapKey/unwrapKey)。
- 备份与恢复:备份密钥与机密,并可恢复到不同保管库。
- 类型与错误处理:导入 KeyClient、KeyVaultKey、KeyProperties、DeletedKey、CryptographyClient、KnownEncryptionAlgorithms、KnownSignatureAlgorithms,以及 SecretClient、KeyVaultSecret、SecretProperties、DeletedSecret;通过 error.code(如 SecretNotFound)进行错误处理。
使用方式: 在 Node.js 项目中安装依赖并配置环境变量,通过 DefaultAzureCredential 完成认证,随后调用 KeyClient / SecretClient / CryptographyClient 的方法完成密钥与机密的生命周期管理及密码学运算。文档提供了各类操作的代码示例,包括创建、获取、列出、轮换、删除、备份/恢复、加密/解密、签名/验证、包装/解包。
适用场景: 需要在 Azure Key Vault 中以编程方式管理加密密钥、机密并执行加密、签名、轮换、备份恢复等操作的 TypeScript/JavaScript 应用。
限制与最佳实践:
- 文档标注这些 SDK 仅支持 Node.js,不支持浏览器。
- 建议使用 DefaultAzureCredential,以便在开发与生产环境通用。
- 建议启用软删除(生产保管库必需)、为密钥与机密设置过期日期、使用密钥轮换策略自动轮换、限制密钥操作仅授予所需权限。
- 仅当任务与上述范围明确匹配时使用本技能;不应将输出视为环境特定验证、测试或专家评审的替代;若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。