Azure Key Vault 密钥 Rust 技能
指导 Rust 应用安全创建、管理并使用 Azure Key Vault 中的 RSA、EC 和 HSM 密钥。
文档限定官方 crate,建议生产使用托管身份并禁止硬编码凭据,且说明私钥留在服务端;但删除操作无确认、保留或恢复流程,未充分披露敏感明文 DEK 的生命周期,并使用随机 u32 生成 DEK,安全性不足,因此扣分。
安装、认证、创建、更新、删除、分页及加解包路径说明较连贯;但技能文件没有专属测试、版本锁定、异常输入处理或可诊断错误示例,若 API 细节变化或配置缺失,反馈主要依赖 SDK 错误,因此受静态上限限制并扣分。
触发词、Rust 用户群体和 Key Vault 密钥管理、包装、签名、HSM 场景较清楚;但未明确非适用边界、所需 Azure 资源配置、权限前置条件的完整范围,也未提供中文支持或中国大陆网络可达性说明,因此扣分。
结构包含安装、环境变量、认证、核心流程、类型、RBAC、最佳实践和参考链接,许可证及作者元数据清楚;但没有 crate 版本策略、变更记录、维护责任或故障排查说明,且示例依赖若干未展示的上下文,因此扣分。
文档覆盖常见 Key Vault Keys 操作,代码片段对熟悉 Azure Rust SDK 的用户有直接参考价值;但没有静态可验证的完整项目输出,DEK 示例不适合生产密码学,轮换、恢复、错误处理和签名示例也不完整,因此仅给中等偏低分。
提供 docs.rs、crates.io 和 Azure SDK 源码引用,仓库还展示了通用 CI、评估和测试基础设施;但给定材料没有该技能专属测试或第三方执行结果,无法独立复现关键路径,因此保持低分。
- 不要将示例中的随机 u32 生成方式用于生产 DEK;应采用经审查的密码学随机数生成器和明确的密钥生命周期设计。
- 执行 delete_key 前应加入用户确认、软删除/恢复策略和权限审查;文档未说明这些安全前置条件。
- 示例依赖 Azure Key Vault、Entra ID、RBAC 和外网服务;未提供中国大陆网络可达性或离线替代方案。
- 使用前应针对锁定的 crate 版本编译并运行项目级测试;本次审查未执行代码。
它能做什么 & 适用场景
该技能面向使用 Rust Azure SDK 操作 Azure Key Vault 密钥的开发者。它涵盖密钥创建、属性更新、删除、分页列举,以及服务器端加密操作。技能支持 RSA、EC、对称密钥和 HSM 保护密钥,并提供封装与解封数据加密密钥的示例。它要求使用官方 azure_security_keyvault_keys crate,并说明了本地开发、生产身份验证及 Entra ID RBAC 角色。
指导安装 azure_security_keyvault_keys、azure_identity、tokio 和 futures;使用 DeveloperToolsCredential 创建 KeyClient;从 AZURE_KEYVAULT_URL 连接 Key Vault;创建 EC 或 RSA 密钥,更新标签等属性,删除密钥并分页列举密钥;调用 Key Vault 的 wrap_key 和 unwrap_key 完成信封加密;使用 ResourceExt 提取密钥名称和版本;说明使用 Key Vault 密钥进行签名或验证的适用场景。
- 使用 Rust 开发 Azure 应用、需要在 Key Vault 中创建或管理 RSA/EC 密钥的开发者。
- 需要用密钥加密密钥并在 Key Vault 服务器端完成封装与解封的应用团队。
- 需要使用 Key Vault 密钥执行签名或验证的数据安全开发者。
- 需要使用 HSM 保护的 RSA、EC 或对称密钥的安全工程团队。
优缺点一览
- 覆盖 Rust 中 Key Vault 密钥的完整基础操作,包括创建、更新、删除和列举。
- 提供 RSA、EC、Oct、EC-HSM 和 RSA-HSM 类型说明。
- 明确要求使用官方 crate,并给出可复制的 Cargo 和 Rust 示例。
- 解释密钥版本保留、ResourceExt、客户端复用和本地/生产身份验证实践。
- 内容专注于 Key Vault Keys,不覆盖 Key Vault secrets 或 certificates。
- 示例依赖 Azure Key Vault、身份验证和相应 RBAC 配置;缺少这些条件时无法完成实际操作。
- README 提供的测试覆盖摘要没有明确列出该 Rust 技能的专属测试证据。
- 源材料没有提供定价、性能基准或故障排查指南。
如何安装
先安装该仓库的技能集合:运行 npx skills add microsoft/skills,在向导中选择需要的技能;技能会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/。Rust 项目依赖使用 cargo add azure_security_keyvault_keys azure_identity tokio futures 添加;只有直接导入 azure_core 类型时,才额外添加 azure_core。
如何使用
可使用触发提示:keyvault keys rust、KeyClient rust、create key rust、encrypt rust、wrap key rust 或 sign rust。设置必需环境变量 AZURE_KEYVAULT_URL=https://<vault-name>.vault.azure.net/,然后按技能示例使用 DeveloperToolsCredential 创建 KeyClient;生产环境应使用 ManagedIdentityCredential。Entra ID 访问需要分配 Key Vault Crypto User 或 Key Vault Crypto Officer 角色。