AZ

azure-keyvault-certificates-rust

Rust library interface for managing Azure Key Vault certificates.

Install

mkdir -p .claude/skills/azure-keyvault-certificates-rust-benjaminastera && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11257" && unzip -o skill.zip -d .claude/skills/azure-keyvault-certificates-rust-benjaminastera && rm skill.zip

Installs to .claude/skills/azure-keyvault-certificates-rust-benjaminastera

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

|
1 chars · catalog descriptionno explicit “when” trigger
Intermediate

Key capabilities

  • Creates certificates in Azure Key Vault
  • Retrieves certificate thumbprints
  • Imports existing certificates
  • Manages certificate policies
  • Authenticates with Azure Identity

How it works

The tool provides a Rust SDK interface to perform CRUD operations on Azure Key Vault certificates using Azure Identity for authentication.

Inputs & outputs

You give it
Certificate parameters
You get back
Azure Key Vault certificate object

When to use azure-keyvault-certificates-rust

  • Create new certificate in Key Vault
  • Retrieve certificate thumbprints
  • Authenticate with Azure Identity

About this skill

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.

When not to use it

  • Managing non-certificate Key Vault secrets

Prerequisites

AZURE_KEYVAULT_URL

Limitations

  • Requires Azure environment configuration
  • Limited to certificate management

How it compares

It is a Rust-specific SDK for Azure Key Vault, offering type-safe certificate management.

Compared to similar skills

azure-keyvault-certificates-rust side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
azure-keyvault-certificates-rust (this skill)05moReviewIntermediate
file-uploads46moNo flagsAdvanced
stellar-dev03moNo flagsAdvanced
solana-dev03moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

file-uploads

davila7

Expert at handling file uploads and cloud storage. Covers S3, Cloudflare R2, presigned URLs, multipart uploads, and image optimization. Knows how to handle large files without blocking. Use when: file upload, S3, R2, presigned URL, multipart.

438

stellar-dev

Carts1024

End-to-end Stellar development playbook. Covers Soroban smart contracts (Rust SDK), Stellar CLI, JavaScript/Python/Go SDKs for client apps, Stellar RPC (preferred) and Horizon API (legacy), Stellar Assets vs Soroban tokens (SAC bridge), wallet integration (Freighter, Stellar Wallets Kit), smart acco

00

solana-dev

mashharuki

Use when user asks to "build a Solana dapp", "write an Anchor program", "create a token", "debug Solana errors", "set up wallet connection", "test my Solana program", "deploy to devnet", or "explain Solana concepts" (rent, accounts, PDAs, CPIs, etc.). End-to-end Solana development playbook covering

00

solana-dev

solanabr

Unified skill hub for Solana development. Routes to external submodule skills (solana-foundation, sendai, solana-game, trailofbits, cloudflare, qedgen, colosseum) and local skills. Progressive disclosure — read only what you need.

00

azure-keyvault-keys-rust

ricardoaevt

|

00

azure-partner-solutions

RobGibbens

Expert knowledge for Azure Partner Solutions development including troubleshooting, decision making, architecture & design patterns, security, configuration, and integrations & coding patterns. Use when building, debugging, or optimizing Azure Partner Solutions applications. Not for Azure Industry (

00

Search skills

Search the agent skills registry