Archiviazione dei segreti del servizio app di Azure nell'insieme di credenziali delle chiavi di Azure

Contenuti

Oggi vi mostrerò come memorizzare i segreti di configurazione di Servizio app di Azure Su Azure Key Vault. In questo esempio, Userò un Piattaforma DNN sito web basato su Azure App Service utilizzando una Banca dati SQL, che memorizza la stringa di connessione del database SQL in Azure Key Vault. Non modificherò il codice dell'applicazione per accedere ad Azure Key Vault in alcun modo. Sfrutteremo la funzione di identità gestita di App Service per recuperare automaticamente i segreti da Key Vault.

Provisionare Azure Key Vault

  1. Provisionare Azure Key Vault

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

  2. Per questa dimostrazione, cambieremo il modello di autorizzazioni al nuovo controllo degli accessi basato sui ruoli di 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. Per questa dimostrazione, 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. Clicca sul Revisar + Creare botón para iniciar la implementación
  5. Una vez creado, agréguese a la función “Administrador 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 “Manuale”, assegna un nome e imposta il valore nella stringa di connessione del database SQL attualmente memorizzata in web.config dell'applicazione

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

  3. Fai clic su Crea. Una vez creado, fai clic sul segreto per vedere i dettagli del segreto e poi fai di nuovo clic sulla versione corrente
  4. Accanto all'ID segreto, fai clic sul pulsante Copia negli appunti

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

Aggiungi il riferimento all'ID segreto nella configurazione di Azure App Service

  1. Apri le impostazioni di App Service e aggiungi una nuova impostazione di Stringa di connessione
  2. Digita il nome della stringa di connessione (“SiteSqlServer” per la piattaforma DNN) e imposta il valore “@ Microsoft.KeyVault (SecretUri = VALORE_DA_APPUNTI)”, 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 “attivato” lo stato

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

  3. Fare clic sul pulsante “Asignaciones de roles” e quindi fare clic su “Agregar asignación de roles (anteprima)”

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

  4. En la asignación de roles, elija el alcance “Key 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, basta selezionare “Usuario de Key Vault Secrets (anteprima)”

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

  5. Finalmente, vai al file web.config del sito web della tua piattaforma DNN e cancella il contenuto della stringa di connessione.

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

  6. Visita il sito web e verifica che venga caricato correttamente. Ora, La stringa di connessione viene memorizzata in modo sicuro in Azure Key Vault e non viene più conservata nel file system.

Problemi noti

  1. ERRORE: Comparirà un errore “Parola chiave non supportata: ‘@ microsoft.keyvault (secreturi'”. Ho notato che i permessi RBAC possono richiedere uno o due minuti per essere applicati, quindi prova dopo qualche minuto. Prova anche a riavviare l'applicazione tramite il portale di App Service, così non viene memorizzato nulla nella cache.

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

  2. Controllando i log di 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

Spero che questo aiuti!

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.

Altoparlante dati