From azure-sdk-rust
Manages Azure Key Vault certificates in Rust using official SDK: create, import, retrieve, delete, list, and configure policies.
npx claudepluginhub microsoft/skills --plugin azure-sdk-rustThis skill uses the workspace's default tool permissions.
Client library for Azure Key Vault Certificates — secure storage and management of certificates.
Manages Azure Key Vault certificates in Rust: create, import, get, delete, list, and update policies. Use for secure certificate storage and operations.
Manages Azure Key Vault secrets in Rust: authenticate with Entra ID, get/set/update/delete/list using SecretClient. Includes best practices.
Manages Azure Key Vault secrets, keys, and certificates in Python apps with SDK examples for setup, CRUD operations, versioning, deletion, and recovery.
Share bugs, ideas, or general feedback.
Client library for Azure Key Vault Certificates — secure storage and management of certificates.
cargo add azure_security_keyvault_certificates azure_identity
AZURE_KEYVAULT_URL=https://<vault-name>.vault.azure.net/
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,
)?;
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)
);
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?;
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()?;
client.delete_certificate("certificate-name", None).await?;
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);
}
let policy = client
.get_certificate_policy("certificate-name", None)
.await?
.into_model()?;
use azure_security_keyvault_certificates::models::UpdateCertificatePolicyParameters;
let params = UpdateCertificatePolicyParameters {
// Update policy properties
..Default::default()
};
client
.update_certificate_policy("cert-name", params.try_into()?, None)
.await?;
DeveloperToolsCredential for devAssign these Key Vault roles:
Key Vault Certificates Officer — full CRUD on certificatesKey Vault Reader — read certificate metadata