azure - 如何使用 bicep 为我的 azure 函数创建访问策略?

标签 azure azure-functions azure-keyvault azure-managed-identity azure-bicep

我的二头肌文件中定义了一个资源,如下所示,这是我的文件中的两个资源,我使用下面的 test_resource 部署了一个 azure 函数,效果很好。

resource test_resource 'Microsoft.Web/sites@2021-03-01' = {
  name: resourceName
  location: location
  kind: 'functionapp'
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    httpsOnly: true
    serverFarmId: appServicePlan_ResourceId
  }
}

并且我正在尝试创建如下所示的访问策略,但是我收到关于 objectId 的错误,有没有办法为上述资源配置访问策略,perharps 我正在传递错误的 ID

"Invalid value found at accessPolicies[0].ObjectId: 

但我正在传递 test_resource.id,如 keyvault_access_policy 资源定义中所示。

resource devops_keyvault 'Microsoft.KeyVault/vaults@2021-10-01' existing = {
  name: keyVaultName
}

resource keyvault_access_policy 'Microsoft.KeyVault/vaults/accessPolicies@2021-10-01' = {
  name: 'add'
  parent: devops_keyvault
  properties: {
    accessPolicies: [
      {
        objectId: test_resource.id 
        permissions: {
          'keys': []
          'secrets': [
            'list'
            'get'
          ]
          'certificates': [
            'list'
            'get'
          ]
        }
        tenantId: subscription().tenantId
      }
    ]
  }
}

最佳答案

查看documentation :

objectId: The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies.

在您的情况下,它应该是托管身份的主体 ID:

objectId: test_resource.identity.principalId

关于azure - 如何使用 bicep 为我的 azure 函数创建访问策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72638334/

相关文章:

powershell - Azure AD - 以应用程序管理员身份启用服务主体

在Linux容器上触发了Azure函数HTTP-函数无法正常工作404

azure - 通过 MSI token 获取访问权限时出现 Key Vault 403

sql-server - 如何在 SQL 连接字符串中使用 Azure KeyVault secret ?

c# - 尝试激活图形 API 时无法解析类型 'Microsoft.Identity.Web.ITokenAcquisition' 的服务

Azure SDK 2.4 更新 "broke"开发存储 Blob

c# - 大字典的递归函数导致堆栈溢出问题

azure - Visual Studio 2017 - 部署到 Azure Function v2 (.NetCore v2.1) 错误 : required process (“Web Management Service” ) is started

spring-boot - 将证书从 Azure KeyVault 获取到 Kotlin/SpringBoot 中的 Keystore 以用于传出请求

c# - Azure 托管标识 : Passwordless connection string to Azure SQL database connection error