es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Azure terraform: Usar la identidad administrada existente para autenticar la aplicación web.

Espero que alguien pueda ayudarme a resolver este problema.

Usando Terraform, he creado algunos grupos de recursos y aplicaciones web. Esas aplicaciones web tienen algunas configuraciones que necesitan acceder a un Key Vault para obtener algunas claves secretas.
Pero para hacer esto, necesito activar la identidad de Azure en la aplicación web.
Hasta ahora todo funciona correctamente sin ningún problema. Pero como todavía estoy aprendiendo a usar Terraform con Azure, necesito seguir destruyendo y creando las aplicaciones web, lo que significa que cada vez necesito activar la identidad y agregar la política de acceso en el key vault.

Así que lo que hice fue crear un recurso de identidad administrada de Azure en el mismo grupo de recursos donde tengo el key vault. Ahora me gustaría utilizar esta identidad administrada para autenticar mi aplicación web cada vez que la cree.

Mi código de aplicación web se ve así:


resource "azurermappservice" "app-hri-stg-eur-configurations-api" { name = "app-hri-${var.env}-${var.reg-name}-webapp-testing" appserviceplanid = azurermappserviceplan.ASP-hri-stg-eur-webapp.id location = var.location resourcegroupname = azurermresourcegroup.rg-hri-stg-eur-webapp.name app_settings = { "secret" = "@Microsoft.KeyVault(SecretUri=https://mykeyvault.vault.azure.net/secrets/test)" ...... <my configuration=""> } identity { type = "UserAssigned" } }

Y aquí es donde me estoy confundiendo, ¿cómo puedo hacer referencia a la identidad administrada de Azure que ya he creado para otorgar acceso a mi aplicación web y leer las claves secretas?

Espero haber hecho mi pregunta lo suficientemente clara, y por favor si no es así, solo pida más información.

Muchas gracias por cualquier ayuda que pueda brindar.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando usar una Identidad Gestionada de Azure para autenticar tu aplicación web y acceder a los secretos de un Vault. Ya has creado la Identidad Gestionada de Azure en el mismo grupo de recursos que el Vault.

    Para hacer referencia a la Identidad Gestionada de Azure en el código de tu aplicación web, puedes utilizar el bloque identity en el recurso azurerm_app_service. El type debe estar configurado en UserAssigned y los identity_ids deben estar configurados en el id de la Identidad Gestionada de Azure.

    Por ejemplo:

    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)"
        ...... <my configuration="">
      }
      identity {
        type = "UserAssigned"
        identity_ids = [azurerm_user_assigned_identity.my_identity.id]
      }
    }
    

    Puedes encontrar más información sobre cómo utilizar Identidades Gestionadas de Azure con Terraform aquí.

Comments are closed.