
关于
适用于 Rust 的 Azure Key Vault Secrets SDK。用于存储和检索密钥、密码和 API 密钥。
name: azure-keyvault-secrets-rust description: 'Azure Key Vault Secrets SDK for Rust。用于存储和检索密钥、密码和 API 密钥。触发词:"keyvault secrets rust"、"SecretClient rust"、"get secret rust"、"set secret rust"。' risk: unknown source: community date_added: '2026-02-27'
Azure Key Vault Secrets SDK for Rust
用于 Azure Key Vault Secrets 的客户端库——安全存储密码、API 密钥和其他密钥。
安装
cargo add azure_security_keyvault_secrets azure_identity
环境变量
AZURE_KEYVAULT_URL=https://<vault-name>.vault.azure.net/
认证
use azure_identity::DeveloperToolsCredential;
use azure_security_keyvault_secrets::SecretClient;
let credential = DeveloperToolsCredential::new(None)?;
let client = SecretClient::new(
"https://<vault-name>.vault.azure.net/",
credential.clone(),
None,
)?;
核心操作
获取密钥
let secret = client
.get_secret("secret-name", None)
.await?
.into_model()?;
println!("Secret value: {:?}", secret.value);
设置密钥
use azure_security_keyvault_secrets::models::SetSecretParameters;
let params = SetSecretParameters {
value: Some("secret-value".into()),
..Default::default()
};
let secret = client
.set_secret("secret-name", params.try_into()?, None)
.await?
.into_model()?;
更新密钥属性
use azure_security_keyvault_secrets::models::UpdateSecretPropertiesParameters;
use std::collections::HashMap;
let params = UpdateSecretPropertiesParameters {
content_type: Some("text/plain".into()),
tags: Some(HashMap::from([("env".into(), "prod".into())])),
..Default::default()
};
client
.update_secret_properties("secret-name", params.try_into()?, None)
.await?;
删除密钥
client.delete_secret("secret-name", None).await?;
列出密钥
use azure_security_keyvault_secrets::ResourceExt;
use futures::TryStreamExt;
let mut pager = client.list_secret_properties(None)?.into_stream();
while let Some(secret) = pager.try_next().await? {
let name = secret.resource_id()?.name;
println!("Secret: {}", name);
}
获取特定版本
use azure_security_keyvault_secrets::models::SecretClientGetSecretOptions;
let options = SecretClientGetSecretOptions {
secret_version: Some("version-id".into()),
..Default::default()
};
let secret = client
.get_secret("secret-name", Some(options))
.await?
.into_model()?;
最佳实践
- 使用 Entra ID 认证 — 开发环境使用
DeveloperToolsCredential,生产环境使用ManagedIdentityCredential - 使用
into_model()?— 反序列化响应 - 使用
ResourceExttrait — 从 ID 中提取名称 - 处理软删除 — 已删除的密钥可在保留期内恢复
- 设置内容类型 — 帮助识别密钥格式
- 使用标签 — 用于组织和过滤密钥
- 版本化密钥 — 新值会自动创建新版本
RBAC 权限
分配以下 Key Vault 角色:
Key Vault Secrets User— 获取和列出Key Vault Secrets Officer— 完整 CRUD
参考链接
| 资源 | 链接 | |------|------| | API 参考 | https://docs.rs/azure_security_keyvault_secrets | | 源代码 | https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/keyvault/azure_security_keyvault_secrets | | crates.io | https://crates.io/crates/azure_security_keyvault_secrets |
适用场景
当任务明确匹配上述概述中描述的工作流或操作时,适用此技能。
限制
- 仅在任务明确匹配上述范围时使用此技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少所需输入、权限、安全边界或成功标准,请停下来要求澄清。
兼容工具
Claude CodeCursor
标签
AI与机器学习