Para Azure Functions y WebJobs, ¿hay algún beneficio al colocar cadenas de conexión como Secretos en Key Vault en lugar de ponerlas directamente en la Configuración de la aplicación (y hacer referencia a ellas usando ConfigurationManager.ConnectionStrings)? ¿Los secretos de Azure Key Vault están destinados principalmente a máquinas virtuales y similares en lugar de Azure Functions y WebJobs?
Parece que solo está agregando un paso adicional en el desarrollo (actualizar el secreto en Key Vault y el identificador secreto en la configuración de la aplicación) y un paso adicional en tiempo de ejecución (una recuperación adicional de Key Vault), con el único beneficio de que el secreto en la Configuración de la aplicación hay un identificador en lugar del secreto real. No veo el beneficio de seguridad aquí, mientras que hay perjuicios.
Respuestas:
Los beneficios tal como los veo son las razones generales para usar Azure Key Vault
fuente
Tengo la misma opinión que usted, no veo ningún punto en usar Key Vault en tales escenarios.
En su lugar, utilizo la Configuración de la aplicación de Azure https://docs.microsoft.com/en-us/azure/azure-app-configuration/overview , donde simplemente almaceno toda la configuración de la aplicación. Y la única cadena que almaceno en el servicio de la aplicación / func / trabajo web real sería la cadena de conexión para acceder a la Configuración de la aplicación de Azure.
En mi Startup, donde se aplican los ajustes de configuración, leo de ... settings.json y, si no está presente (que no debería estar ejecutándose en Azure), busco la cadena de conexión a la Configuración de la aplicación de Azure.
Si se encuentra ..settings.json, significa que me estoy ejecutando localmente.
..settings.json se cifra si no está en el archivo gitignore.
Se ve algo como esto:
fuente
La recuperación de la bóveda de claves puede ser un problema de rendimiento. Leer desde la bóveda de claves lleva varios segundos. El SLA de Azure solo dice que tomará menos de 5 segundos el 99.9% del tiempo. No garantiza el tiempo promedio, pero según mi experiencia y rumores, el promedio es de aproximadamente 2 segundos.
A menos que su aplicación web esté "siempre activa", se descargará si está inactiva durante 5-20 minutos. Eso significa que, a menos que tenga mucho tráfico, los tiempos de respuesta de su sitio con frecuencia serán malos.
fuente
Estamos planeando usar a continuación
Secretos - Azure Key-Vault
Configuraciones : configuraciones de aplicaciones de Azure (todavía en versión preliminar)
fuente