相关疑难解决方法(0)

Terraform 授予 azure 函数应用程序,具有对 azure keyvault 的 msi 访问权限

我正在尝试使用 Terraform 在 Azure 中设置一个场景,其中 Terraform 创建:
- 具有托管服务标识的 Azure 函数应用
- Azure 密钥保管库
- 允许函数应用访问密钥保管库中的机密的密钥保管库访问策略

我的问题是在密钥保管库访问策略的定义中使用为函数应用程序设置的 MSI 的对象 ID(原则 ID),我怀疑我做错了什么(和/或愚蠢)......

我从 Terraform 应用中得到的错误是:

azurerm_key_vault_access_policy.msi-test-to-keyvault-test: "object_id" is an invalid UUUID: uuid: UUID string too short: 1
Run Code Online (Sandbox Code Playgroud)

我怀疑问题可能出在我尝试引用访问策略定义中的 msi 标识创建的服务原则的对象 id 的方式上:

object_id = "${azurerm_function_app.rg-func-app__funcapp.identity.principal_id}"
Run Code Online (Sandbox Code Playgroud)

(azurerm 函数应用程序属性部分的 doco 说身份导出原则 id,但是我不知道引用此属性的正确语法是什么:()

Terraform 模板是:

resource "azurerm_function_app" "rg-func-app__funcapp" {
  name = "${local.deployed-func-app-name}"
  location                  = "${azurerm_resource_group.rg-func-app.location}"
  resource_group_name       = "${azurerm_resource_group.rg-func-app.name}"
  app_service_plan_id       = "${azurerm_app_service_plan.rg-func-app__appsvcpln.id}"
  storage_connection_string = "${azurerm_storage_account.rg-func-app__sa.primary_connection_string}"

  version = "~1"

  app_settings {
    "TEST_KEYVAULT_URL" = "${azurerm_key_vault.test.vault_uri}"
  }

  identity …
Run Code Online (Sandbox Code Playgroud)

azure terraform

4
推荐指数
1
解决办法
1797
查看次数

标签 统计

azure ×1

terraform ×1