Azure Key Vault Certificates SDK for Rust。用于创建、导入和管理证书。
📥 下载地址:
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-keyvault-certificates-rust
技能概述
azure-keyvault-certificates-rust 技能是一个专门用于Rust开发的Azure Key Vault Certificates SDK技能包。它提供了Azure Key Vault证书的客户端库,用于安全存储和管理证书。该技能包适用于需要在Rust应用中管理SSL/TLS证书、实现证书生命周期管理的开发者。
主要功能
- 证书获取:从Key Vault获取证书及其属性
- 证书创建:使用策略创建新证书
- 证书导入:导入现有的PFX/PEM证书
- 证书删除:软删除证书(可恢复)
- 证书列表:列出Key Vault中的所有证书
- 策略管理:获取和更新证书策略
触发条件
在以下情况下应该调用此技能:
- 用户需要在Rust应用中管理Azure Key Vault证书
- 需要创建或导入SSL/TLS证书
- 需要实现证书生命周期管理
- 需要获取或更新证书策略
证书生命周期
| 操作 | 说明 |
|---|---|
| Create(创建) | 使用策略生成新证书 |
| Import(导入) | 导入现有的PFX/PEM证书 |
| Get(获取) | 检索证书(仅公钥) |
| Update(更新) | 修改证书属性 |
| Delete(删除) | 软删除(可恢复) |
| Purge(清除) | 永久删除 |
处理过程
1. 添加依赖
在Cargo.toml中添加依赖:
cargo add azure_security_keyvault_certificates azure_identity
2. 创建客户端
使用DeveloperToolsCredential创建CertificateClient:
use azure_identity::DeveloperToolsCredential;
use azure_security_keyvault_certificates::CertificateClient;let credential = DeveloperToolsCredential::new(None)?;
let client = CertificateClient::new(
"https://<vault-name>.vault.azure.net/",
credential.clone(),
None,
)?;
3. 获取证书
从Key Vault获取证书:
use azure_core::base64;
let certificate = client
.get_certificate("certificate-name", None)
.await?
.into_model()?;println!(
"Thumbprint: {:?}",
certificate.x509_thumbprint.map(base64::encode_url_safe)
);
4. 创建证书
使用策略创建新证书:
use azure_security_keyvault_certificates::models::{
CreateCertificateParameters,
CertificatePolicy,
IssuerParameters,
X509CertificateProperties,
};let policy = CertificatePolicy {
issuer_parameters: Some(IssuerParameters {
name: Some("Self".into()),
..Default::default()
}),
x509_certificate_properties: Some(X509CertificateProperties {
subject: Some("CN=example.com".into()),
..Default::default()
}),
..Default::default()
};let params = CreateCertificateParameters {
certificate_policy: Some(policy),
..Default::default()
};let operation = client
.create_certificate("cert-name", params.try_into()?, None)
.await?;
输入要求
使用此技能时,用户需要提供:
- Key Vault URL:Key Vault的URL地址
- 身份认证凭据:DeveloperToolsCredential或其他Azure凭据
- 证书名称:要操作的证书名称
- 证书策略:创建证书时需要的策略配置
输出说明
技能将提供:
- 完整的Rust代码示例:包含证书CRUD操作的实现
- 策略配置示例:创建证书的策略配置代码
- 配置指南:环境变量和连接配置的详细说明
- 最佳实践建议:关于证书管理的安全建议
使用示例
示例1:导入证书
use azure_security_keyvault_certificates::models::ImportCertificateParameters;
let params = ImportCertificateParameters {
base64_encoded_certificate: Some(base64_cert_data),
password: Some("optional-password".into()),
..Default::default()
};let certificate = client
.import_certificate("cert-name", params.try_into()?, None)
.await?
.into_model()?;
示例2:列出证书
use azure_security_keyvault_certificates::ResourceExt;
use futures::TryStreamExt;let mut pager = client.list_certificate_properties(None)?.into_stream();
while let Some(cert) = pager.try_next().await? {
let name = cert.resource_id()?.name;
println!("Certificate: {}", name);
}
示例3:获取和更新证书策略
// 获取策略
let policy = client
.get_certificate_policy("certificate-name", None)
.await?
.into_model()?;// 更新策略
use azure_security_keyvault_certificates::models::UpdateCertificatePolicyParameters;let params = UpdateCertificatePolicyParameters {
..Default::default()
};client
.update_certificate_policy("cert-name", params.try_into()?, None)
.await?;
最佳实践
- 使用Entra ID认证:开发环境使用DeveloperToolsCredential
- 使用托管证书:支持的颁发者可自动续订
- 设置适当的有效期:平衡安全性和维护成本
- 使用证书策略:定义续订和密钥属性
- 监控过期:为即将过期的证书设置警报
- 启用软删除:生产环境保管库必须启用
RBAC权限
需要分配以下Key Vault角色:
- Key Vault Certificates Officer:证书的完整CRUD权限
- Key Vault Reader:读取证书元数据
参考链接
| 资源 | 链接 |
|---|---|
| API参考文档 | https://docs.rs/azure_security_keyvault_certificates |
| 源代码 | GitHub |
| crates.io | https://crates.io/crates/azure_security_keyvault_certificates |
注意事项
- 此技能仅适用于任务明确匹配上述范围的情况
- 输出不应替代环境特定的验证、测试或专家审查
- 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清