Azure Key Vault 密钥 .NET 技能
帮助 .NET 开发者安全管理 Azure Key Vault 密钥并执行加密操作。
文档建议使用托管身份、限制 KeyOperations、启用软删除和设置过期时间,且提供 RBAC 与错误处理示例;但删除、清除、轮换以及备份到本地文件等操作可能产生重大外部或敏感数据影响,没有明确的用户确认、最小权限配置、备份文件保护、数据流说明或回滚流程,因此扣分。
客户端层次、认证、密钥管理、加密操作、轮换和错误处理覆盖较广,错误示例区分了 404、403 和一般 Key Vault 错误;但未提供针对该技能的测试、版本兼容验证、异常输入处理、重试策略或可复现的关键路径证据,静态审查下仅给出中低分。
名称、描述、触发词和 .NET 使用场景较明确,覆盖密钥管理与密码学操作;但未声明不适用场景、服务端前置条件、权限边界或中文使用指导,且核心功能依赖可访问 Azure Key Vault/Managed HSM,国内网络可达性未说明,因此扣分。
文档有安装命令、目录式结构、代码示例、算法和 RBAC 表格,并声明 MIT、作者和版本 1.0.0;但缺少变更日志、维护责任与更新路径、明确的 SDK/API 兼容矩阵、故障排查和已知限制,且版本信息未给出核验日期,因此扣分。
内容覆盖创建、读取、更新、删除、恢复、备份、加解密、签名、验证和轮换,能支持常见实现起点;但示例缺少完整项目上下文、权限配置、生产安全处理和验证结果,部分输出仍需人工核查,静态校准限制有效性分数不超过 7。
技能提供 NuGet、API、快速入门和 GitHub 源码引用,具有一定可追溯性;但没有技能专属测试、CI 覆盖或第三方执行证据,外部链接内容未在本次静态审查中核验,因此只能给有限分数。
- 不要在未确认且未配置恢复流程的情况下执行 PurgeDeletedKeyAsync、删除或轮换操作。
- 示例将密钥备份写入本地 key-backup.bin;生产环境应明确加密、访问控制、生命周期和安全删除策略。
- ClientSecretCredential 示例涉及高敏感凭据,不能将 clientSecret 硬编码或写入日志。
- 使用前应核对 Azure.Security.KeyVault.Keys 4.7.0 与 Azure.Identity 的实际 API、权限和服务能力,并确认国内网络可访问 Azure 端点。
它能做什么 & 适用场景
该技能面向使用 Azure.Security.KeyVault.Keys SDK 的 .NET 开发者,覆盖 Azure Key Vault 和 Managed HSM 中的密码学密钥管理。它提供 RSA、EC 和对称密钥的创建、读取、更新、删除、备份、恢复与轮换示例。它还指导使用 CryptographyClient 进行加密、解密、密钥封装、签名和验证。技能包含 Microsoft Entra 凭据、服务主体、RBAC 角色及错误处理示例。
指导安装 Azure.Security.KeyVault.Keys 和 Azure.Identity,读取 Key Vault 环境变量,创建 KeyClient 和 CryptographyClient,并调用 Azure Key Vault API。它展示密钥创建、版本读取、属性更新、软删除与恢复、备份与还原、自动轮换策略,以及 RSA、EC 和 AES 相关加密、解密、封装、解封、签名和验证操作。示例还展示将密钥备份写入文件、从文件读取备份,以及处理 404、403 和其他 RequestFailedException。
- 负责 Azure 安全开发的 .NET 工程师需要创建 RSA、EC 或 HSM-backed 密钥时,可使用该技能生成 KeyClient 代码。
- 需要在 .NET 服务中执行加密、解密、签名或验证的开发者,可参考 CryptographyClient 示例。
- 需要定期轮换生产密钥的团队,可使用其中的轮换 API 和轮换策略配置示例。
- 需要迁移或恢复密钥的运维和平台工程师,可参考备份、还原、软删除和恢复流程。
优缺点一览
- 覆盖密钥生命周期管理、密码学操作、轮换、备份恢复和错误处理。
- 提供可复制的 C# 异步代码示例,涉及 KeyClient、CryptographyClient 和 KeyResolver。
- 明确说明 DefaultAzureCredential、Managed Identity、HSM-backed keys、软删除和 RBAC 等实践。
- 采用 MIT 许可证,且属于可通过 skills.sh 安装的 Microsoft 技能集合。
- 需要可访问的 Azure Key Vault 或 Managed HSM、有效凭据和相应 RBAC 权限。
- 技能内容依赖 Azure 服务网络调用,不能单独完成本地密钥托管。
- 源材料没有提供该特定技能的独立测试结果或平台兼容性验证。
- README 声明仓库仍在积极开发中,技能内容可能继续更新。
如何安装
安装技能集合:运行 npx skills add microsoft/skills,然后在向导中选择该技能;README 未提供该技能的单独安装命令。安装 .NET SDK 依赖:dotnet add package Azure.Security.KeyVault.Keys 和 dotnet add package Azure.Identity。SKILL.md 标明 Azure.Security.KeyVault.Keys 稳定版本为 4.7.0。
如何使用
在已安装该技能的编码代理中输入例如:为我的 .NET 项目创建一个使用 DefaultAzureCredential 的 Azure Key Vault RSA 密钥加密、解密和轮换示例。配置 KEY_VAULT_NAME;若使用 DefaultAzureCredential 生产环境,再设置 AZURE_TOKEN_CREDENTIALS=prod 或指定凭据。根据需要授予 Key Vault Crypto Officer、Key Vault Crypto User 或 Key Vault Reader RBAC 角色。