2
votes

La valeur du coffre-fort de clés n'est pas mise à jour si la valeur change dans le secret car elle génère une nouvelle version pour le secret

Voici le problème Key-Vault auquel je suis confronté. J'ai un Key-Vault qui stocke certaines clés utilisées dans l'application Web et les fonctions utilisant @ Microsoft.KeyVault (SecretUri =) La valeur du secret changera tous les trois jours à l'aide d'une automatisation. Cela modifiera également le numéro de version (GUID), puis la valeur de paramètre de l'application (au moins un dans le cas de primaire et secondaire) deviendra invalide. Existe-t-il un moyen de faire référence à la dernière valeur de KeyVault dans les paramètres de l'application. La mise à jour des paramètres de l'application sur tout le site Web sera un processus fastidieux.


1 commentaires

À partir de cette question, vous ne pouvez pas spécifier le numéro de version pour obtenir le secret. Vous pourriez essayer. stackoverflow.com/questions/48432376/...


3 Réponses :


0
votes

Avec le SDK Azure Python, vous pouvez faire quelque chose comme ceci:

kv_client.get_secret("https://%kvname%.vault.azure.net/", name, KeyVaultId.version_none)
# or this
kv_client.get_secret("https://%kvname%.vault.azure.net/", name, "")

les deux extrairont la dernière version du secret. donc je suppose que faire cela dans le code en c # serait plus ou moins identique (ou au moins possible). Pas si sûr des paramètres des applications Web = \.

Vous pouvez probablement utiliser une sorte d'automatisation (comme PowerShell) pour les mettre à jour.


6 commentaires

C’est ce que je ne veux pas faire.


essayez de passer une chaîne vide à la version secrète, aussi, si vous ne voulez pas le faire - cela ne signifie pas que vous avez d'autres options;)


La raison en est: il y aura n nombre de sites Web et d'applications de fonction au sein de l'organisation utilisant la même logique pour autoriser les demandes en fonction de ces clés dans les paramètres de l'application. Si j'utilise le code .net pour accéder au coffre-fort au lieu des paramètres de l'application, cela augmentera le temps de traitement de la demande


transmettez-le aux paramètres de l'application


S'il y a un moyen que le numéro de version reste le même, ce serait idéal pour mon cas


non, si vous mettez à jour le secret cela générera une nouvelle version



2
votes

Les références de Key Vault sont actuellement en préversion.

Une référence Key Vault est de la forme @ Microsoft.KeyVault ({referenceString}), où {referenceString} est remplacé par l'une des options suivantes:

  1. SecretUri = secretUri

SecretUri doit être l'URI du plan de données complet d'un secret dans Key Vault, y compris une version, par exemple https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931

  1. VaultName = vaultName; SecretName = secretName; SecretVersion = secretVersion

VaultName doit être le nom de votre ressource Key Vault. Le SecretName doit être le nom du secret cible. La SecretVersion doit être la version du secret à utiliser.

Par exemple, une référence complète ressemblerait à ce qui suit:

@ Microsoft.KeyVault (SecretUri = https://myvault.vault.azure. net / secrets / mysecret / ec96f02080254f109c51a1f14cdb1931 )

Alternativement:

@ Microsoft.KeyVault (VaultName = myvault; SecretName = mysecret; SecretVersion = ec96f02080254f109c51a1f14cdb1931)

Dans l'aperçu actuel, des versions sont requises. Lors de la rotation de secrets , vous devrez mettre à jour la version dans la configuration de votre application.


2 commentaires

Ensuite, je devrai peut-être créer un livre d'exécution pour mettre à jour la version dans tous les paramètres d'application des sites Web et des fonctions et déclencher ce livre d'exécution à l'aide de l'automatisation qui change la valeur secrète.


Exactement !, Cela pourrait être un runbook ou un appel de repos. docs.microsoft.com/en-us/rest/api/ appservice / webapps /…



4
votes

Pour mon App Service, j'ai réussi à utiliser une référence Key Vault dans le formulaire ci-dessous sans version:

@Microsoft.KeyVault(SecretUri=https://<vault_name>.vault.azure.net/secrets/<secret_name>/)

Cependant, j'ai dû arrêter et démarrer (pas redémarrer) le App Service pour extraire la nouvelle valeur secrète du coffre de clés.


2 commentaires

Cette barre oblique à la fin " /" a résolu mon problème. Le simple redémarrage du service d'application a fonctionné pour moi


Merci. Cela n'a fonctionné qu'après avoir arrêté et redémarré mon application Web. C'est tellement mauvais Microsoft :(. Redémarrer n'a pas fonctionné pour moi non plus.