无法将Azure Key Vault密钥设为可导出,求CLI自定义策略创建方法
Azure Key Vault自定义导出权限策略配置方法
一、直接通过Azure CLI命令设置自定义权限
无需使用all权限,直接指定包含export在内的所需权限即可,命令格式如下:
az keyvault set-policy --name <你的密钥库名称> --object-id <用户/服务主体的Object ID> --key-permissions create get export
- 说明:
--key-permissions后可通过空格分隔多个权限,必须包含export才能允许私钥导出;其他权限按需添加,比如create用于生成密钥、get用于查看密钥信息、import用于导入密钥等。
二、使用JSON配置文件加载自定义策略
1. 编写JSON策略文件
创建一个JSON文件(例如key-export-policy.json),格式如下:
{ "keyPermissions": [ "create", "get", "export" ], "objectId": "<你的用户/服务主体Object ID>", "tenantId": "<你的Azure租户ID>" }
- 字段说明:
keyPermissions:权限数组,必填export以支持私钥导出,其余权限根据需求添加objectId:需要赋予权限的用户或服务主体的唯一IDtenantId:你的Azure租户ID,可通过az account show --query tenantId -o tsv命令获取
2. 通过CLI加载JSON文件
执行以下命令将JSON策略应用到密钥库:
az keyvault set-policy --name <你的密钥库名称> --policy @<JSON文件路径>
示例(若JSON文件在当前目录):
az keyvault set-policy --name testvault1 --policy @key-export-policy.json
关键注意事项
- 密钥本身需允许导出:生成或导入密钥时,必须指定
--exportable true参数,例如创建可导出的RSA密钥:az keyvault key create --name my-exportable-key --vault-name testvault1 --kty RSA --size 2048 --exportable true - 权限生效延迟:策略设置后可能需要等待1-2分钟才能生效,之后可通过以下命令导出私钥:
az keyvault key download --name my-exportable-key --vault-name testvault1 --file private-key.pem --encoding PEM --private-key
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

