Appearance
如何在 .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 中。
核心工作流
- 环境配置与鉴权:安装
Azure.Security.KeyVault.Keys和Azure.Identity包,推荐使用DefaultAzureCredential实现无密码认证。 - 密钥生命周期管理:使用
KeyClient创建(Create)、获取(Get)、更新(Update)或删除(Delete)RSA、EC 或对称密钥。 - 执行密码学操作:通过
KeyClient获取CryptographyClient实例,调用其EncryptAsync、DecryptAsync、SignDataAsync等方法执行具体加解密或签名任务。 - 密钥解析与轮转:使用
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。
你可能还需要
暂无推荐