New to Claude Skills? Learn how to install them →

sickn33 on GitHub

Azure Key Vault Certificates SDK for Rust

Free

Manage your certificates securely with Rust.

Get this skill

Free · Opens the source repo

What Azure Key Vault Certificates SDK for Rust does

The Azure Key Vault Certificates SDK for Rust provides a comprehensive client library for managing certificates within Azure Key Vault. This SDK allows developers to create, import, retrieve, update, and delete certificates while ensuring secure storage and management. It is particularly useful for applications that require the handling of sensitive information and need to maintain compliance with security standards.

With this SDK, you can easily integrate certificate management into your Rust applications. You can create new certificates with specified policies, import existing certificates, and manage their lifecycle efficiently. The SDK supports operations such as retrieving certificate details, updating policies, and listing all certificates stored in a vault. This functionality is crucial for developers looking to automate certificate management tasks and enhance their application's security posture.

The SDK utilizes Azure's robust authentication mechanisms, allowing you to authenticate using the DeveloperToolsCredential. This makes it easier to connect to your Azure Key Vault securely without hardcoding sensitive credentials. The provided examples in the documentation demonstrate how to perform common operations, making it straightforward for developers to implement certificate management in their projects.

This skill is designed for Rust developers who are working with Azure services and need a reliable way to manage certificates. Whether you are building a new application or maintaining an existing one, this SDK can streamline your certificate management processes and enhance the security of your applications.

When to use it

Use this SDK when you need to programmatically manage certificates in Azure Key Vault from your Rust applications.

When not to use it

Avoid using this SDK if your project does not involve Azure Key Vault or if you require features not supported by the SDK, such as advanced certificate analytics.

What you can build with it

Creating a New Certificate

Use the SDK to generate a new certificate with a specified policy, ensuring compliance with your security requirements.

Importing Existing Certificates

Import existing certificates into Azure Key Vault from your Rust application, facilitating a seamless transition to managed storage.

Listing All Certificates

Efficiently retrieve and display all certificates stored in your Azure Key Vault, allowing for better management and oversight.

How to install Azure Key Vault Certificates SDK for Rust

View source

1. Install with the skills CLI

npx skills add sickn33/agentic-awesome-skills/azure-keyvault-certificates-rust --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by sickn33

Azure Key Vault Certificates SDK for Rust

Client library for Azure Key Vault Certificates — secure storage and management of certificates.

Installation

cargo add azure_security_keyvault_certificates azure_identity

Environment Variables

AZURE_KEYVAULT_URL=https://<vault-name>.vault.azure.net/

Authentication

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,
)?;

Core Operations

Get Certificate

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)
);

Create Certificate

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?;

Import Certificate

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()?;

Delete Certificate

client.delete_certificate("certificate-name", None).await?;

List Certificates

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);
}

Get Certificate Policy

let policy = client
    .get_certificate_policy("certificate-name", None)
    .await?
    .into_model()?;

Update Certificate Policy

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?;

Certificate Lifecycle

  1. Create — generates new certificate with policy
  2. Import — import existing PFX/PEM certificate
  3. Get — retrieve certificate (public key only)
  4. Update — modify certificate properties
  5. Delete — soft delete (recoverable)
  6. Purge — permanent deletion

Best Practices

  1. Use Entra ID authDeveloperToolsCredential for dev
  2. Use managed certificates — auto-renewal with supported issuers
  3. Set proper validity period — balance security and maintenance
  4. Use certificate policies — define renewal and key properties
  5. Monitor expiration — set up alerts for expiring certificates
  6. Enable soft delete — required for production vaults

RBAC Permissions

Assign these Key Vault roles:

  • Key Vault Certificates Officer — full CRUD on certificates
  • Key Vault Reader — read certificate metadata

Reference Links

ResourceLink
API Referencehttps://docs.rs/azure_security_keyvault_certificates
Source Codehttps://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/keyvault/azure_security_keyvault_certificates
crates.iohttps://crates.io/crates/azure_security_keyvault_certificates

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Frequently asked questions about Azure Key Vault Certificates SDK for Rust

Similar skills