{"library":"azure-keyvault-keys","title":"Azure Key Vault Keys Client Library for Python","type":"library","description":"The `azure-keyvault-keys` library is the Microsoft Azure Key Vault client library for Python, enabling developers to manage cryptographic keys within Azure Key Vault. It facilitates operations such as creating, retrieving, updating, deleting, and listing RSA and Elliptic Curve (EC) keys, including those backed by Hardware Security Modules (HSMs). The library is part of the broader Azure SDK for Python, currently at version 4.11.0, and typically sees a few stable releases per year while being actively maintained.","language":"python","status":"active","last_verified":"Wed May 20","install":{"commands":["pip install azure-keyvault-keys azure-identity"],"cli":null},"imports":["from azure.keyvault.keys import KeyClient","from azure.keyvault.keys import KeyVaultKey","from azure.identity import DefaultAzureCredential"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":"https://azure.microsoft.com/products/key-vault/","github":"https://github.com/Azure/azure-sdk-for-python","docs":null,"changelog":null,"pypi":"https://pypi.org/project/azure-keyvault-keys/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import os\nfrom azure.keyvault.keys import KeyClient\nfrom azure.identity import DefaultAzureCredential\nfrom azure.core.exceptions import ResourceNotFoundError\n\n# Retrieve the Key Vault URI from environment variable\n# Ensure 'KEY_VAULT_NAME' environment variable is set\n# e.g., export KEY_VAULT_NAME=\"your-unique-keyvault-name\"\nkey_vault_name = os.environ.get(\"KEY_VAULT_NAME\", None)\nif not key_vault_name:\n    raise ValueError(\"Please set the KEY_VAULT_NAME environment variable.\")\n\nKV_URI = f\"https://{key_vault_name}.vault.azure.net/\"\n\n# Authenticate with DefaultAzureCredential\n# This credential type is suitable for most scenarios, including local development and production.\n# It attempts to authenticate via environment variables (e.g., AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID),\n# managed identity, Azure CLI, etc.\ncredential = DefaultAzureCredential()\n\n# Create a KeyClient\nkey_client = KeyClient(vault_url=KV_URI, credential=credential)\n\nkey_name = \"MyTestKeyPython\"\n\ntry:\n    print(f\"Creating an RSA key named '{key_name}'...\")\n    # Create an RSA key with a specified size\n    key = key_client.create_rsa_key(key_name, size=2048)\n    print(f\"Key created: {key.name}, Version: {key.properties.version}\")\n\n    print(f\"Retrieving the key named '{key_name}'...\")\n    retrieved_key = key_client.get_key(key_name)\n    print(f\"Key retrieved: {retrieved_key.name}, Type: {retrieved_key.key_type}\")\n\n    print(f\"Deleting the key named '{key_name}'...\")\n    # begin_delete_key starts a long-running operation, .wait() waits for completion\n    deleted_key = key_client.begin_delete_key(key_name).wait()\n    print(f\"Key deletion initiated: {deleted_key.name} (Recovery ID: {deleted_key.recovery_id})\")\n\nexcept ResourceNotFoundError:\n    print(f\"Key '{key_name}' not found. It might have been deleted or never existed.\")\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\nfinally:\n    # Always close the credential and client when no longer needed\n    credential.close()\n    key_client.close() # KeyClient is not explicitly closeable, but credential should be.\n    print(\"Credential closed.\")","lang":"python","description":"This quickstart demonstrates how to authenticate to Azure Key Vault using `DefaultAzureCredential`, create an RSA key, retrieve it, and then initiate its deletion. Ensure your environment variables for Azure authentication (e.g., `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`, `AZURE_TENANT_ID`) are set or that you are logged in via Azure CLI, and `KEY_VAULT_NAME` is configured to point to your Key Vault instance.","tag":null,"tag_description":null,"last_tested":"2026-04-24","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]},"compatibility":{"tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","last_tested":"2026-05-20","installed_version":"4.11.1","pypi_latest":"4.11.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.7,"avg_import_s":0.51,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.49,"mem_mb":12.1,"disk_size":"44.3M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.49,"mem_mb":12.1,"disk_size":"43.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.8,"import_time_s":0.35,"mem_mb":12.1,"disk_size":"45M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.34,"mem_mb":12.1,"disk_size":"43M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.6,"mem_mb":12.8,"disk_size":"47.9M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.68,"mem_mb":12.8,"disk_size":"46.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.8,"import_time_s":0.53,"mem_mb":12.8,"disk_size":"48M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.51,"mem_mb":12.8,"disk_size":"47M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.54,"mem_mb":12.8,"disk_size":"39.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.59,"mem_mb":12.7,"disk_size":"38.2M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.3,"import_time_s":0.54,"mem_mb":12.8,"disk_size":"40M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.56,"mem_mb":12.7,"disk_size":"39M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.55,"mem_mb":12.9,"disk_size":"39.1M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.57,"mem_mb":12.9,"disk_size":"37.8M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.3,"import_time_s":0.51,"mem_mb":12.9,"disk_size":"40M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.55,"mem_mb":12.9,"disk_size":"38M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.45,"mem_mb":11.8,"disk_size":"44.3M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.48,"mem_mb":11.8,"disk_size":"43.2M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.4,"import_time_s":0.43,"mem_mb":11.8,"disk_size":"45M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"azure-keyvault-keys","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.41,"mem_mb":11.8,"disk_size":"44M"}]}}