如何用原生Azure Python客户端列出所有Key Vault?
列出所有Azure Key Vault的Python实现途径
首先明确:Azure Key Vault官方的azure-keyvault-admin、azure-keyvault-keys等专属Python库,确实只封装单个Vault内部的资源操作(密钥、证书、机密管理等),不支持列出订阅下所有Key Vault的功能——因为这个操作属于Azure Resource Manager(ARM)的订阅级资源管理范畴,而非单个Key Vault的内部操作。
可行方案:使用Azure ARM原生Python客户端
你可以直接用azure-mgmt-keyvault库,这是Azure官方推出的、专门用于通过ARM管理Key Vault资源的原生Python客户端,完全支持列出订阅下所有Vault的操作,符合你的需求。
实现步骤及代码示例
- 安装依赖库
pip install azure-mgmt-keyvault azure-identity
- 编写代码列出所有Key Vault
from azure.identity import DefaultAzureCredential from azure.mgmt.keyvault import KeyVaultManagementClient # 替换为你的Azure订阅ID SUBSCRIPTION_ID = "your-subscription-id" # 使用默认凭据认证(支持Azure CLI登录、托管标识、服务主体等多种场景) credential = DefaultAzureCredential() client = KeyVaultManagementClient(credential, SUBSCRIPTION_ID) # 拉取订阅下所有Key Vault实例 vaults = client.vaults.list() # 遍历输出Vault信息 for vault in vaults: print(f"Vault名称: {vault.name}, 访问URL: {vault.properties.vault_uri}, 区域: {vault.location}")
补充说明
- 这个库属于Azure官方原生生态,完全满足你“全程使用原生Python客户端”的要求。
DefaultAzureCredential会自动适配不同环境的认证方式:本地开发时用Azure CLI登录即可认证,生产环境可配置服务主体或托管标识。- 除了列出Vault,该库还支持创建、删除、更新Key Vault等全量ARM层面的管理操作。
为什么专属库不支持该操作?
Key Vault专属库的设计定位是聚焦单个Vault内部的资源生命周期管理,而列出所有Vault是订阅级别的资源枚举操作,属于ARM的管辖范围,因此官方将这类功能封装在专门的ARM管理库中。
内容的提问来源于stack exchange,提问作者koleS
相关产品推荐
相关产品推荐

