Azure Key Vault 密钥开发技能
为 TypeScript 应用提供 Azure Key Vault 密钥创建、加密签名与轮换指导。
文档使用 Azure 身份凭据并建议生产环境采用托管身份、限制 keyOps、软删除和备份,显示出部分最小权限与恢复意识;但示例包含永久 purge、批量导出秘密和写入本地备份,却没有用户确认、敏感数据流披露、权限清单或安全存储约束,因此扣分。未见恶意、凭据窃取或隐蔽外传红线。
覆盖创建、读取、轮换、加解密、删除恢复和错误处理,但主 SKILL.md 使用 SecretClient 却未导入,也未安装 @azure/keyvault-secrets;其标题称 Keys 技能却包含大量 Secrets 内容,示例之间还存在认证和配置不一致。没有针对该技能的提交测试或可复现执行证据,故静态评分受限。
目标场景和 TypeScript/Node.js 边界基本明确,且列出密钥管理、密码操作和轮换用途;但实际范围混入秘密管理,未说明不适用场景、输入输出约束、权限前提、算法限制或触发排除条件,也未提供中文或中国大陆网络可达性说明,因此扣分。
有 YAML 元数据、MIT 许可证、安装段落、分层 references、示例、最佳实践和错误处理,且仓库提供 Microsoft provenance、许可证和 CI/维护背景;但版本仅为 1.0.0,没有变更日志、维护责任或更新路径,依赖说明不完整,已知限制和故障排查不足,内容边界也不够稳定。
对常见 Key Vault keys 操作提供了可直接改写的 TypeScript 片段,覆盖面较广;但缺少完整可运行项目、权限配置、输入校验和验证步骤,关键示例存在未导入 SecretClient 和缺少 secrets SDK 依赖等问题,批量秘密导出及 purge 等高风险模式还需要人工审查,因此只能部分完成任务。
文件包含大量 API 示例、类型名、错误状态和仓库 CI/测试基础设施,具备一定审计线索;但提供的 CI 与通用 harness 未显示覆盖此技能的专门测试,文件内没有锁定 SDK 版本、测试结果或第三方执行证据,关键声明无法仅凭静态材料独立复现。
- 主技能路径声明为 Keys,但示例和 references 大量涉及 Secrets;若保留 Secrets 内容,应显式添加 @azure/keyvault-secrets 依赖并修正 SecretClient 导入。
- purge、批量导出秘密和本地写入备份均可能造成不可逆或敏感数据暴露,应增加明确确认、最小权限、安全存储和恢复说明。
- 建议补充针对该技能的锁版本依赖、权限前提、可运行测试、错误场景和中国大陆网络/服务可达性说明。
它能做什么 & 适用场景
这是 Microsoft Agent Skills 集合中的一个 TypeScript 技能,面向 Azure Key Vault Keys SDK(@azure/keyvault-keys)。它提供密钥创建、查询、列出、删除、备份、恢复和轮换的示例,也涵盖加密、解密、签名、验证以及密钥包装和解包。内容还涉及凭据配置、软删除、过期时间、密钥操作限制和 Node.js 运行环境。该技能同时包含 SecretClient 的机密操作示例,但安装命令未列出 @azure/keyvault-secrets,采用前应补充核对依赖与示例完整性。
指导开发者安装 Azure SDK 包并配置 KEY_VAULT_URL 或 AZURE_KEYVAULT_NAME 等环境变量;使用 DefaultAzureCredential 或 ManagedIdentityCredential 创建 KeyClient 和 CryptographyClient;创建 RSA、椭圆曲线或通用密钥,读取、列出、轮换、删除、清除和恢复密钥;设置轮换策略、备份并恢复密钥;使用 RSA-OAEP 加密和解密数据,使用 RS256 签名和验证摘要,并包装或解包密钥材料;示例还展示了机密的设置、读取、列出、删除、清除、恢复和错误处理。
- 使用 TypeScript 构建 Azure 后端,需要创建和管理 RSA 或椭圆曲线密钥时。
- 需要在 Key Vault 中执行 RSA-OAEP 加密解密或 RS256 签名验证的 Node.js 开发者。
- 希望通过轮换策略和过期时间管理生产密钥生命周期的团队。
- 需要备份密钥并恢复到同一或其他 Key Vault 的运维或平台工程师。
- 需要将本地开发凭据切换为托管身份凭据的 Azure 应用开发者。
优缺点一览
- 覆盖密钥创建、轮换、加密、签名、备份和恢复等完整生命周期操作。
- 提供 DefaultAzureCredential、ManagedIdentityCredential 和生产环境凭据配置示例。
- 明确提出软删除、过期时间、最小化 keyOps 和自动轮换等安全实践。
- 包含可直接参考的 TypeScript SDK 调用代码。
- 明确限定为 Node.js,浏览器不受支持。
- SKILL.md 使用 SecretClient 示例,但前置导入和安装命令未完整展示 @azure/keyvault-secrets。
- 来源未提供该单项技能的测试覆盖、版本兼容矩阵或故障排查清单。
- 示例中的过期日期为 2025-12-31,采用时需要按实际生命周期调整。
如何安装
在支持 Agent Skills 的客户端中,将技能目录放入所用 agent 的技能目录;该技能路径为 .github/plugins/azure-sdk-typescript/skills/azure-keyvault-keys-ts/SKILL.md。安装整个集合可运行:npx skills add microsoft/skills,然后在向导中选择需要的技能。项目依赖示例为:npm install @azure/keyvault-keys @azure/identity。SKILL.md 未提供独立的单技能安装命令。
如何使用
触发示例:请使用 azure-keyvault-keys-ts 指导我在 TypeScript Node.js 应用中创建一个 P-256 密钥,并配置 Azure 身份认证和轮换策略。随后按技能中的 KeyClient、CryptographyClient、DefaultAzureCredential 或 ManagedIdentityCredential 示例实现所需操作。浏览器环境不受支持。