用途
Azure Key Vault Certificates SDK for Rust 是 Azure Key Vault 证书服务的客户端库,用于证书的安全存储与管理。适用于在 Rust 项目中创建、导入和管理证书,以及维护证书策略与生命周期。
安装
使用 cargo 添加依赖:
cargo add azure_security_keyvault_certificates azure_identity
环境变量
需配置 Key Vault 地址:
AZURE_KEYVAULT_URL=https://<vault-name>.vault.azure.net/
认证
通过 Azure Entra ID 凭证进行认证,开发环境可使用 DeveloperToolsCredential:
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, )?;
主要能力
- 获取证书(Get Certificate):获取证书信息,可读取 X.509 指纹等属性。
- 创建证书(Create Certificate):基于证书策略(包含颁发者参数、X.509 证书属性如主题)生成新证书。
- 导入证书(Import Certificate):导入现有的 PFX/PEM 证书,支持可选密码。
- 删除证书(Delete Certificate):删除指定证书。
- 列出证书(List Certificates):分页遍历证书属性列表。
- 获取证书策略(Get Certificate Policy):读取指定证书的策略。
- 更新证书策略(Update Certificate Policy):修改证书策略属性。
- 证书生命周期:创建、导入、获取(仅公钥)、更新、删除(软删除,可恢复)、清除(永久删除)。
使用方式
核心操作示例使用异步(await)调用,客户端方法均返回可转换为模型的响应。获取证书时可输出经 URL 安全 base64 编码的指纹;创建证书需构造 CertificatePolicy 与 CreateCertificateParameters;导入证书需提供 base64 编码的证书数据;列出证书使用 ResourceExt 与 futures 的 TryStreamExt 进行流式分页。
最佳实践
- 使用 Entra ID 认证,开发环境可用 DeveloperToolsCredential。
- 使用托管证书,配合受支持的颁发者实现自动续期。
- 设置合理的有效期,兼顾安全与维护成本。
- 使用证书策略定义续期与密钥属性。
- 监控过期情况,为即将过期的证书设置告警。
- 启用软删除,生产环境保管库必需。
RBAC 权限
需分配以下 Key Vault 角色:
- Key Vault Certificates Officer:证书的完整增删改查权限。
- Key Vault Reader:读取证书元数据。
参考链接
- API 参考:https://docs.rs/azure_security_keyvault_certificates
- 源代码:https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/keyvault/azure_security_keyvault_certificates
- crates.io:https://crates.io/crates/azure_security_keyvault_certificates
适用场景
当任务明确符合上述范围时适用,例如在 Rust 应用中集成 Azure Key Vault 证书的创建、导入、查询与管理流程。
限制
- 仅在任务明确匹配上述范围时使用。
- 不应将输出视为针对特定环境的验证、测试或专家评审的替代。
- 若缺少必要的输入、权限、安全边界或成功标准,应停止并请求澄清。