Skip to content

如何在 .NET 项目中集成 Azure Key Vault 密钥管理

通过集成 Azure Key Vault Keys SDK,帮助开发者在 .NET 应用中安全地管理密码学密钥,实现硬件级(HSM)密钥保护及自动化密钥轮转,无需在代码中硬编码敏感密钥。

为什么需要这个技能

在企业级应用中,将加密密钥直接存储在配置文件或代码中存在极大的安全风险。Azure Key Vault 提供了一个中心化的安全存储库,支持通过硬件安全模块(HSM)保护密钥。

掌握此技能可以让你在不接触密钥明文的情况下,调用云端接口完成数据的加密、解密、签名和验证,并能通过定义轮转策略(Rotation Policy)降低密钥泄露带来的长期风险,符合行业合规性要求。

适用场景

  • 敏感数据保护:需要对数据库字段、配置文件进行非对称加密。
  • 数字签名:在 API 响应或文档传输中需要实现身份验证和防篡改签名。
  • 密钥生命周期管理:需要定期自动更换密钥(轮转)且不影响业务连续性。
  • 高安全等级需求:要求密钥必须存储在 FIPS 140-2 Level 2 或 Level 3 认证的 HSM 中。

核心工作流

  1. 环境配置与鉴权:安装 Azure.Security.KeyVault.KeysAzure.Identity 包,推荐使用 DefaultAzureCredential 实现无密码认证。
  2. 密钥生命周期管理:使用 KeyClient 创建(Create)、获取(Get)、更新(Update)或删除(Delete)RSA、EC 或对称密钥。
  3. 执行密码学操作:通过 KeyClient 获取 CryptographyClient 实例,调用其 EncryptAsyncDecryptAsyncSignDataAsync 等方法执行具体加解密或签名任务。
  4. 密钥解析与轮转:使用 KeyResolver 根据密钥 ID 动态解析客户端,并配置 KeyRotationPolicy 实现自动化更新。

快速上手代码

csharp
// 初始化客户端
var kvUri = $"https://{Environment.GetEnvironmentVariable("KEY_VAULT_NAME")}.vault.azure.net";
var client = new KeyClient(new Uri(kvUri), new DefaultAzureCredential());

// 创建 RSA 密钥
KeyVaultKey rsaKey = await client.CreateKeyAsync("my-rsa-key", KeyType.Rsa);

// 获取加密客户端并执行加密
CryptographyClient cryptoClient = client.GetCryptographyClient(rsaKey.Name, rsaKey.Properties.Version);
byte[] plaintext = Encoding.UTF8.GetBytes("Secret message");
EncryptResult encryptResult = await cryptoClient.EncryptAsync(EncryptionAlgorithm.RsaOaep256, plaintext);

Console.WriteLine($"Encrypted: {Convert.ToBase64String(encryptResult.Ciphertext)}");

下载和安装

下载 azure-security-keyvault-keys-dotnet 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐