Armazenar segredos do Serviço de Aplicativo do Azure no Cofre da Chave do Azure

Conteúdo

Hoy voy a mostrar cómo almacenar los secretos de configuración de Azure App Service sobre Azure Key Vault. Neste exemplo, Vou usar um Plataforma DNN sitio web basado en Azure App Service utilizando una base de dados SQL, que almacena la cadena de conexión de la base de datos SQL en Azure Key Vault. No cambiaré la base de código de la aplicación para acceder a Azure Key Vault de ninguna manera. Aprovecharemos la función de identidad administrada de App Service para recuperar automáticamente los secretos de Key Vault.

Aprovisionar Azure Key Vault

  1. Aprovisionar Azure Key Vault

    779b7662-4e66-4a9c-8d08-2dd70a18e22d-7834662

  2. Para esta demonstração, cambiaremos el modelo de permisos al nuevo control de acceso basado en roles de Azure (RBAC). Actualmente está en versión preliminar.

    cce042e2-835a-4acd-9650-f923cb854031-4931459

  3. Dependiendo de su implementación, cambie la Red como desee. Para esta demonstração, lo dejaremos como punto de conexión público para que coincida con la configuración de App Service.

    8c23c374-cf92-4753-a008-124d32807146-5503519

  4. Clique no Revisar + Crio botón para iniciar la implementación
  5. Una vez creado, agréguese a la funciónAdministrador de Key Vault (versión preliminar)” a través del Control de acceso (IAM). Ahora puedes empezar a gestionar secretos.

    1a101595-cb28-436b-950d-bcf70c2635cd-4661991

Agregar la cadena de conexión a los secretos de Key Vault

  1. Agregar un nuevo secreto a Key Vault

    afc018f4-afea-421e-ad81-62b90c1713a3-1233213

  2. Especifique el secreto de tipo “Manual”, asígnele un nombre y establezca el valor en la cadena de conexión de la Base de datos SQL actual almacenada en la aplicación web.config

    a886528a-32b1-41a0-8a7a-0d5d99e0ac70-9724989

  3. Haga clic en Crear. Una vez creado, haga clic en el secreto para ver los detalles del secreto y luego haga clic nuevamente en la versión actual
  4. Junto al Identificador secreto, haga clic en el botón Copiar al portapapeles

    5f9c0428-1949-42e4-a87f-abc7b372229a-5831097

Agregar la referencia del identificador secreto a la configuración de Azure App Service

  1. Abra la configuración de App Service y agregue una nueva configuración de Cadena de conexión
  2. Escriba el nombre de la cadena de conexión (“SiteSqlServerpara la plataforma DNN) y establezca el valor@ Microsoft.KeyVault (SecretUri = VALUE_FROM_CLIPBOARD)”, donde VALUE_FROM_CLIPBOARD es el del paso 4 de la sección anterior.
  3. Haga clic en Guardar para guardar la configuración de la aplicación.

    7de603cd-e42f-4106-93e0-059da43c379c-6346505

Permitir que App Service acceda a Key Vault

  1. En App Service nuevamente, haga clic en Identidad para habilitar la identidad asignada por el sistema.
  2. Haga clic en guardar después de activar “ativado” O estado

    5025f05c-fe64-42d1-9b2d-5f640ec697b8-3897923

  3. Clique no botão “Asignaciones de roles” install-pbi-2-5252226 “Agregar asignación de roles (vista prévia)”

    49c47071-6213-43b0-bb74-506bb4119cd7-6049316

  4. En la asignación de roles, elija el alcanceKey Vault”, suscriba la suscripción donde creó el Key Vault en los pasos anteriores y el nombre del recurso de Key Vault. Para el rol, apenas selecione “Usuario de Key Vault Secrets (vista prévia)”

    52e833c4-2ef6-49ce-bd20-f6a16a9df816-5718828

  5. Finalmente, vaya al archivo web.config del sitio web de su plataforma DNN y borre el contenido de la cadena de conexión.

    92e072cf-b7f0-4e59-9b9e-f3c306ee5805-3350173

  6. Visite el sitio web y verifique que se cargue correctamente. Agora, la cadena de conexión se almacena de forma segura en Azure Key Vault y ya no se almacena en el sistema de archivos.

Problemas conocidos

  1. ERRO: Aparece un errorPalabra clave no admitida: ‘@ microsoft.keyvault (secreturi'”. He experimentado que los permisos de RBAC pueden tardar uno o dos minutos en aplicarse, así que intente después de unos minutos. También intente reiniciar el La aplicación pensó en el portal de App Service, por lo que no se almacena nada en caché.

    d31c9fb1-4cb2-4410-adb8-95917c3d8a15-1079568

  2. Al verificar los registros de DNN log4net, ve muchos errores de un proceso que intenta inicializar una conexión de base de datos con una cadena de conexión no válida durante el proceso de inicialización de DNN. Este error está ocurriendo actualmente en las versiones 9.7.2 o anteriores con una solicitud de extracción pendiente para solucionarlo https://github.com/dnnsoftware/Dnn.Platform/issues/4227
  3. IMPORTANTE: si planea usar la función de copia de seguridad de Azure App Service, no use este método para almacenar cadenas de conexión de la base de datos SQL en Azure Key Vault, ya que la función de copia de seguridad de App Service no las admite. https://stackoverflow.com/questions/56101504/backingup-azure-webapp-when-connection-string-is-injected-through-keyvault

Eu espero que isso ajude!

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.