mcpField
A
azure-keyvault-certificates-rust

azure-keyvault-certificates-rust

github.com/sickn33セキュリティ48.7k56 回インストール今日更新
リポジトリ

azure-keyvault-certificates-rust について

Azure Key Vault の証明書を保存、管理する Rust クライアントライブラリです。証明書のライフサイクル操作やポリシー管理を行う Rust 開発者向けです。

主な機能

  1. 01証明書の取得と一覧表示
  2. 02証明書の作成とインポート
  3. 03証明書ポリシーの更新
  4. 04復元可能な証明書の削除

活用シーン

  1. 01保管庫から証明書を取得
  2. 02PFX または PEM 証明書をインポート
  3. 03証明書の更新ポリシーを設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill azure-keyvault-certificates-rust

インストール後、Claude Code で/azure-keyvault-certificates-rustを入力して読み込まれたか確認します。

詳細

Azure Key Vault Certificates SDK for Rust

Azure Key Vault Certificates 用のクライアントライブラリです。証明書を安全に保管および管理できます。

バージョンと実行範囲

サンプルは API のスケッチです。シグネチャや機能、非同期ランタイム、レスポンスモデルについては、まず Cargo.lock と対応する SDK ドキュメントを確認してください。テスト用のボールトと最小権限を使用してください。PFX/秘密鍵のインポートや証明書ポリシーの変更・削除には、対応する権限が必要です。インポートパスワードや秘密鍵はシークレットストアに保管し、ソースコードやログには決して含めないでください。削除レスポンスがあっても、パージや関連するすべてのキー/シークレットのバージョンが削除されたことを証明するものではありません。実際のライフサイクル状態を確認してください。

インストール

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

証明書のライフサイクル

  1. 作成 — ポリシーに基づいて新しい証明書を生成します
  2. インポート — 既存の PFX/PEM 証明書をインポートします
  3. 取得 — 証明書を取得します(公開鍵のみ)
  4. 更新 — 証明書のプロパティを変更します
  5. 削除 — 論理削除します(復元可能)
  6. パージ — 完全に削除します

ベストプラクティス

  1. Entra ID 認証を使用する — 開発時には DeveloperToolsCredential を使用します
  2. マネージド証明書を使用する — 対応する発行者で自動更新します
  3. 適切な有効期間を設定する — セキュリティとメンテナンスのバランスを取ります
  4. 証明書ポリシーを使用する — 更新とキーのプロパティを定義します
  5. 有効期限を監視する — 有効期限が近い証明書のアラートを設定します
  6. 論理削除を有効にする — 本番環境のボールトでは必須です

RBAC のアクセス許可

次の Key Vault ロールを割り当てます。

  • Key Vault Certificates Officer — 証明書に対する完全な CRUD 権限
  • 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.iohttps://crates.io/crates/azure_security_keyvault_certificates

使用する場面

このスキルは、概要で説明されているワークフローまたは操作を実行する場合に適用できます。

制限事項

  • 上記の説明にある範囲とタスクが明確に一致する場合に限り、このスキルを使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、アクセス許可、安全上の境界、または成功基準が不足している場合は、停止して確認してください。

コメント