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
参考链接
适用场景
本技能适用于执行概述中描述的工作流或操作。
限制
- 仅当任务明确匹配上述范围时才使用本技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少所需输入、权限、安全边界或成功标准,请停下来请求澄清。