Azure Key Vault 密钥保管库技能
为 TypeScript 应用安全存取 Azure Key Vault 中的机密,并管理密钥生命周期。
文档建议托管身份、最小 RBAC、软删除和恢复,并明确标注 purge 不可逆;但示例包含读取、导出、备份、删除和密码学操作,未要求用户确认,批量导出可能暴露全部秘密,也未充分说明数据流、日志和备份存储风险,因此扣分。
常见 CRUD、轮询和部分错误处理路径有示例,但主文档使用未导入的 KeyClient,安装命令遗漏 @azure/keyvault-keys,而引用文档又扩大到密钥和密码学功能;未见针对该技能的提交测试或可复现执行证据,因此按静态上限低于 10 分。
目标场景基本明确,为 Node.js/TypeScript 中管理 Azure Key Vault 秘密;同时覆盖密钥和密码学,边界不够精准,浏览器限制虽已声明,但输入约束、触发条件、非适用场景及中文/中国大陆网络适配说明不足,因此扣分。
具有 front matter、MIT 许可证、版本号、安装说明、分主题参考文档、错误处理和最佳实践;但缺少该技能专属维护责任、变更记录、SDK 版本约束、FAQ 和已知 API 兼容性说明,且主文档与引用文档的范围和依赖不完全一致,因此扣分。
提供了秘密、密钥、轮换、恢复、备份及加密操作的可直接改写示例,核心任务价值明确;但依赖遗漏、导入错误和若干生产安全前置条件未落实,示例仍需较多人工核验,故静态评估不超过 7 分。
技能文件包含较多具体 API、权限表和错误码,仓库也提供通用 CI/评估基础设施;但未提供该路径专属测试、固定 SDK 版本、执行结果或第三方交叉验证,因此仅给有限静态可审计分数。
- 安装命令应补充 @azure/keyvault-keys,并修正 KeyClient 等导入;否则主示例可能无法编译。
- 将批量导出、备份、删除和 purge 视为高风险操作,实施最小权限、用户确认、审计和可恢复流程,避免打印或持久化秘密值。
- 在生产使用前核对当前 Azure SDK API、RBAC 权限、软删除/清除保护要求及网络可达性;本评估未执行代码。
它能做什么 & 适用场景
该技能面向使用 Azure Key Vault Secrets JavaScript SDK 的 TypeScript 或 Node.js 开发者。它提供机密的创建、读取、列举、删除、恢复、永久清除以及备份恢复指导,也涵盖密钥创建、轮换和加密操作。认证示例使用 DefaultAzureCredential 或托管身份凭据。技能明确面向 Node.js,不支持浏览器。
指导安装 @azure/keyvault-secrets 和 @azure/identity,配置 Key Vault URL 或名称及认证环境变量;使用 SecretClient 创建、读取、列举、删除、恢复、清除和备份机密;使用 KeyClient 创建、读取、列举、轮换、删除和备份密钥;使用 CryptographyClient 执行加密、解密、签名、验证、密钥封装与解封;展示错误码处理、过期时间、软删除、密钥轮换策略和最小化密钥操作权限。
- 正在开发 Node.js 后端,需要从 Azure Key Vault 读取应用密码、API 密钥或配置值的 TypeScript 开发者。
- 需要为生产环境配置托管身份或 DefaultAzureCredential 的 Azure 应用团队。
- 需要创建 RSA 或椭圆曲线密钥并设置过期时间、标签和允许操作的开发者。
- 需要实现密钥轮换、软删除、恢复或跨保管库备份恢复流程的运维与平台工程师。
- 需要通过 Azure Key Vault 完成加密、解密、签名、验证或密钥封装的 Node.js 开发者。
优缺点一览
- 覆盖机密存取、密钥生命周期、密码学操作及备份恢复等具体 SDK 模式。
- 提供 DefaultAzureCredential、ManagedIdentityCredential、环境变量和错误处理示例。
- 包含软删除、过期时间、轮换策略和限制密钥操作等生产实践建议。
- MIT 许可,且所在仓库持续开发并通过测试流程维护。
- 技能明确仅支持 Node.js,浏览器环境不支持。
- 源文档没有提供该单个技能的测试覆盖或验收场景证据。
- 密钥和 CryptographyClient 示例依赖 `@azure/keyvault-keys`,但给出的安装命令没有安装它。
- 示例中使用了 KeyClient,但认证代码片段未展示对应的 KeyClient 导入。
如何安装
安装技能集合:运行 npx skills add microsoft/skills,在向导中选择该技能;README 说明技能会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/。安装 SDK:运行 npm install @azure/keyvault-secrets @azure/identity。源文档未提供该技能单独安装包或完整的项目目录配置步骤。
如何使用
在已安装该技能的编码 Agent 中提出具体请求,例如:“请用 TypeScript 和 Azure Key Vault Secrets SDK,通过 DefaultAzureCredential 读取名为 MySecret 的最新版本,并处理 SecretNotFound 错误。”配置 KEY_VAULT_URL 或 AZURE_KEYVAULT_NAME;若生产环境使用 DefaultAzureCredential,还需设置 AZURE_TOKEN_CREDENTIALS=prod 或指定凭据名称。密钥和加密示例还使用 @azure/keyvault-keys,但安装命令未列出该包。