在Azure ML Notebook中如何读取其他资源组内指定Azure Key Vault的密钥?
解决方案
不能直接通过Azure ML Workspace对象(ws)传入实例名称来连接其他资源组中的指定Key Vault,ws.get_default_keyvault()方法仅能获取当前ML工作区关联的默认密钥保管库。
由于你使用的是Azure RBAC权限而非Vault访问策略,可以通过Azure Identity和Azure Key Vault SDK直接访问目标Key Vault,步骤如下:
- 安装必要的依赖包:
pip install azure-identity azure-keyvault-secrets
- 使用以下代码连接目标Key Vault并读取密钥:
from azure.identity import DefaultAzureCredential from azure.keyvault.secrets import SecretClient # 替换为你的目标Key Vault URI,格式为 https://<密钥保管库名称>.vault.azure.net/ target_keyvault_uri = "https://your-target-kv.vault.azure.net/" # 复用当前交互式登录的凭据上下文(适配RBAC权限) credential = DefaultAzureCredential() secret_client = SecretClient(vault_url=target_keyvault_uri, credential=credential) # 替换为你要读取的密钥名称 secret_value = secret_client.get_secret("your-secret-name").value print(f"读取到的密钥值:{secret_value}")
注意:确保当前登录的账号已被授予目标Key Vault的「密钥读取者」或更高权限的RBAC角色,否则会出现权限不足的错误。
内容的提问来源于stack exchange,提问作者Sheetal Lomate
相关产品推荐
相关产品推荐

