You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Terraform使用现有托管身份为Web App实现访问认证的方法

配置方法
  • 第一步:读取已有的托管身份信息
    若托管身份不是在当前Terraform项目中创建,可通过data源获取资源属性:
    data "azurerm_user_assigned_identity" "existing_umi" {
      name                = "提前创建的托管身份名称"
      resource_group_name = "托管身份所在资源组名称"
    }
    
    若托管身份在当前项目中创建,直接引用对应资源的id属性即可,无需额外配置data源。
  • 第二步:修改Web App的身份配置
    在azurerm_app_service的identity块中补充identity_ids参数绑定托管身份,修改后代码如下:
    resource "azurerm_app_service" "app-hri-stg-eur-configurations-api" {
      name                = "app-hri-${var.env}-${var.reg-name}-webapp-testing"
      app_service_plan_id = azurerm_app_service_plan.ASP-hri-stg-eur-webapp.id
      location            = var.location
      resource_group_name = azurerm_resource_group.rg-hri-stg-eur-webapp.name
      app_settings = {
        "secret"        = "@Microsoft.KeyVault(SecretUri=https://mykeyvault.vault.azure.net/secrets/test)"
        # 其余原有配置保持不变
      }
      identity {
        type         = "UserAssigned"
        identity_ids = [data.azurerm_user_assigned_identity.existing_umi.id]
        # 若托管身份在当前项目创建,替换为[azurerm_user_assigned_identity.你的资源名.id]
      }
    }
    
  • 第三步:提前配置Key Vault访问策略
    提前为该托管身份配置Key Vault的机密读取权限,无需每次重建Web App重复操作:
    • 权限项选择机密分类下的Get权限即可满足读取需求
    • 访问策略的主体选择你提前创建的托管身份
  • 可选配置:若你需要同时使用系统分配托管身份和该用户分配托管身份,将identity.type修改为SystemAssigned, UserAssigned即可,不影响现有功能。

内容的提问来源于stack exchange,提问作者Nayden Van

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:15:08