如何查找Azure Key Vault中密钥的作用域以配置应用服务角色权限
Azure Key Vault密钥作用域获取与Terraform配置
1. 单个密钥的作用域格式
Azure中针对Key Vault单个密钥的权限作用域是固定格式:/subscriptions/<订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.KeyVault/vaults/<密钥库名>/secrets/<密钥名>
2. 快速获取各部分信息
- 订阅ID: 登录Azure门户后,在「订阅」页面查看;或者用Azure CLI执行
az account show --query id -o tsv直接输出 - 资源组名: 打开目标Key Vault的「概述」页面,顶部就能看到所属资源组
- 密钥库名: 就是你创建的Key Vault实例名称
- 密钥名: 在Key Vault的「密钥」菜单里,找到要授权的目标密钥名称
3. Terraform配置优化写法
如果你的Key Vault是通过Terraform部署的(比如资源名为azurerm_key_vault.this),可以直接引用资源属性动态生成作用域,避免硬编码:
resource "azurerm_role_assignment" "GetKey" { scope = "${azurerm_key_vault.this.id}/secrets/your-secret-name" # 替换成实际密钥名 principal_id = azurerm_web_app.this.identity.0.principal_id role_definition_name = "Key Vault Secrets User" # 注意:内置的读取密钥角色是这个,不是"Get" }
重要提醒:Azure没有名为"Get"的内置角色,要实现密钥读取权限,建议使用官方内置的
Key Vault Secrets User角色,它包含了获取密钥的必要权限。
4. 验证作用域有效性
可以先用Azure CLI测试作用域是否正确,命令如下:az role assignment create --scope "<完整作用域路径>" --assignee "<应用服务主体ID>" --role "Key Vault Secrets User"
内容的提问来源于stack exchange,提问作者SLN
相关产品推荐
相关产品推荐

